TFS的版本控制系统会自动按照下面的标准检测代码文件的编码格式:

1. 首先,如果代码文件包含了BOM部分,则使用BOM中制定的编码格式打开文档

什么是BOM (Byte order mark)? http://en.wikipedia.org/wiki/Byte_order_mark

2. 如果代码文件没有BOM部分,TFS检测第一个千字节中的不可打印ASCII字符(unprintable ASCII character)。如果第一个千字节中没有不可打印ASCII字符,则使用当前页面的编码设置打开代码文件。

3. 如果检测到有不可打印ASCII字符,TFS见文件标记为二进制文件,则不存在编码的问题。

这里有一个例外,就是PDF文件。这些文件通常被标记为二进制文件。PDF的文件头通常会出现“%PDF”的字符。

这样,如果你新建一个没有BOM部分的中文源文件,例如在MyEclipse中新增一个文件index.jsp,并将其添加到TFS的源代码库中,TFS将使用默认的编码格式Windows-1252来读取,在web access中打开该源代码,中文字符将出现乱码(以方框代替了中文)

出现上述问题的时候,可以采取以下两种方案纠正编码的问题

方案一: Visual Studio 团队资源管理器

在Visual Studio 2013的团队资源管理器中,你可以修改一个已经提交到源代码库的文件的编码格式。操作方式如下。

在源代码管理器中导航到需要修改编码的文件,使用鼠标右键点击该文件,选择高级>属性

在弹出的窗口的窗口中选择设置编码>检测,或者从下列选项中选择正确的编码格式,确定

代码的编码格式将被修改,TFS资源管理器会自动检测出变更,并标记为“【编码,编辑】”,这时可以点击“签入”按钮,将源代码的变更提交到TFS服务器上。

方案二: TFS命令行程序TF.exe

上面的方案比较适合修改单个文件的编码格式,如果需要批量修改这个代码库所有文件的编码格式,则可以使用TFS的命令行程序TF.exe。在安装了Visual Studio或者Visual Studio团队资源管理器的计算机上,可以通过这个路径找到这个程序:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

可以使用tf checkout命令的参数/recursive签出所有的文件,使用/encoding参数指定需要修改的编码格式,下面的列子需要将所有文件修改为GBK编码。执行完命令后,可以在团队资源管理器中看到所有文件已经在挂起的更改中自动检测出来,可以在这里点击签入,也可以使用tf checkin命令签入所有文件。tf的详细使用方法,可以参考MSDN的文档“Use Team Foundation version control commands ”https://msdn.microsoft.com/en-us/library/cc31bk2e.aspx

通过上述两种方案解决文件编码的问题,需要注意:

由于修改编码会产生新的变更集,所以需要在修改编码前,将代码文件下载到本地。不能修改没有下载的文件(显示灰色)或者被掩蔽的文件/文件夹的编码格式。

http://www.cnblogs.com/danzhang/

TFS文件编码检查机制和修改(Team Foundation Server 2013)的更多相关文章

  1. TFS (Team Foundation Server) 2013集成Maven构建

    Team Foundation Server原生就支持跨平台的构建,包括Ant和Maven两种构建方式.通过配置构建服务器,连接TFS源代码库,可以实现持续集成构建,自动检测代码库健康状况,进而实现自 ...

  2. Team Foundation Server 2013 KEY(密钥)

    isual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥): ...

  3. Visual Studio Team Foundation Server 2013

    下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=42308 Microsoft Visual Studio Team Foun ...

  4. Team Foundation Server 2013 with Update 3 Install LOG

    [Info   @10:14:58.155] ====================================================================[Info   @ ...

  5. Team Foundation Server 2013 Update 3 下载激活

    http://www.microsoft.com/zh-cn/download/details.aspx?id=43728 支持的操作系统 Windows 7 Service Pack 1, Wind ...

  6. 在Sublime中集成Team Foundation Server (TFS),实现版本管理

    Sublime是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,由于它开发的技术架构.丰富的插件,和轻盈而快速的编程响应,Sublime广受程序员的爱好.在C, C++, Javascri ...

  7. 【原创】Team Foundation Server 域环境迁移

    先说下此片博客的上下文:部门所在的业务被集团出售,因此我们所有的计算机和服务器都得重新命名,退出当前域加入新公司的域.对于PC和其他服务器,目前不存在太大问题.但是对于Team Foundation ...

  8. Team Foundation Server 开发流程管理管理研讨会

    这周,和微软公司的朋友一起,受北京某金融企业邀请,为企业软件部门一个70多人的软件团队提供了一场基于Team Foundation Server的软件软件流程的技术研讨会.在研讨会中,培训基于微软Te ...

  9. Integrate SharePoint 2013 with Team Foundation Server 2012

    Now that SharePoint 2013 is out I want to make sure that I can integrate SharePoint 2013 with Team F ...

随机推荐

  1. 记一次在 Ubutun16.04 LTS 系统的 python-environment 安装 MySQL-python 的心(苦)路(笑)旅程

    背景 之前项目需要准备线啦, 那么好了~~ 数据库也从测试时使用的 SQLITE 升级到了 MYSQL (高大上的免费且开源的关系型数据库,要不要了解一下!) 巧合的是,同事使用的是MySQL-pyt ...

  2. Spring框架中的单例Beans是线程安全的么

    Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和 ...

  3. Xenu Link Sleuth 简单好用的链接测试工具 使用说明

    XenuLink Sleuth 名词介绍 “Xenu链接检测侦探”是被广泛使用的死链接检测工具.可以检测到网页中的普通链接.图片.框架.插件.背景.样式表.脚本和java程序中的链接. 那么神马时候出 ...

  4. 使用MVC实现登录功能

    首先,从底层开始即Models: (1)通用数据访问类(封装数据访问类方法):SqlHelper类 使用命名空间:using System.Data; using System.Data.SqlCli ...

  5. Richview 首页 奇偶页 不同页眉页脚

    首页 奇偶页 不同页眉页脚 ScaleRichView v6.0 Different headers and footers for the first page, for odd and even ...

  6. Android 获取图片转bitmap

    1. Resources resources = mContext.getResources(); Drawable drawable = resources.getDrawable(R.drawab ...

  7. 基于HALCON的双目立体视觉系统实现

    双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法.双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得 ...

  8. tensorflow笔记 :常用函数说明

    常用函数说明,梯度.产生变量等 http://blog.csdn.net/c2a2o2/article/details/69061539

  9. springmvc web.xml配置之 -- ContextLoaderListener

    首先回归一下web.xml的常用配置,看一个示例: <context-param> <param-name>contextConfigLocation</param-na ...

  10. Vue SPA应用中使用Layer的iframe 弹出层,并且传值

    问题来源: BOOS 竟然说喜欢有可移动可最大化的弹出层,这!!! SPA 模式下就是这种引入Vue.js的写法 layer.open({ type: , area: ['840px', '550px ...