2012-03-19 69 views
5

TFS有一个混合文件夹大小写的有趣习惯。例如,一些开发者可能会检查$/FooBar/readme.txt,而其他人可能会检查$/Foobar/readme.txtTFS源代码管理大小写敏感

无论如何强迫TFS将文件/文件夹视为区分大小写?

例如,如果一个文件夹$/FooBar/已经存在,当有人将$/foobar/readme2.txt,文件夹套管将被更新为$/FooBar的/ readme2.txt自认为已经存在。

大部分用户不会注意到这一点,但在内部在TFS数据库中,这可能会导致其他工具(如git-tfs)混淆。

+2

在git-tfs中导致了什么样的问题? – 2012-03-19 20:32:57

+0

您将在Git中获取同一文件的重复条目。 'git ls-tree master'会显示'FooBar/readme.txt'和'Foobar/readme.txt'。这导致git总是认为某些东西已经发生了变化,而没有发生变化。 – syvex 2012-03-20 16:04:19

+0

这似乎是跟踪此问题的GIT-TFS中的错误跟踪程序问题:https://github.com/git-tfs/git-tfs/issues/104 – jessehouwing 2012-03-20 16:19:43

回答

6

不幸的是,一旦文件夹已经签入,它的大小写在TFS中仍然保留。

的解决方法是rename

tf rename $Project//FooBar $/Project/foobar/ 

来源: http://kb.teamprise.com/article/view/52

+0

这确实有用,但它有点怪异黑客攻击。我希望有一种方法来防止它首先发生。 – syvex 2012-03-20 13:53:28

3

有一个签入策略附带的Team Foundation Server的电动工具,这将允许您指定正则表达式模式允许或禁止。你可能可以用它来拼凑一些东西。

您可以在Visual Studio Power tools site找到登记入住政策。

有关如何指定此工具的模式can be found here的教程。另外,TFS在去年11月将TFS 11和Forward,Martin Woodward demonstrated this in his presentation on the ALM Summit中的文件和目录视为区分大小写,但在Windows中无关紧要,如果您位于Windows主机上,则不会发生抱怨。如果您使用Team Foundation Everywhere,您会看到在Linux文件系统上区分大小写是保留的。这是一个平台的事情..