我目前正在开发iPhone应用程序,我公司使用TFS 2010进行源代码管理。
我们使用Team Explorer Everywhere作为Eclipse插件来处理Mac上的源代码控制以及其他项目(比如我们最近做过的C ++项目),它运行正常。
然而,它似乎不适用于此iPhone应用程序,主要原因似乎是别名。它要么根本不存储它们,要么将它们存储为常规文件或文件夹,这会破坏一切。
在尝试转移到TFS之前,我正在以即兴的方式使用Mercurial,而且一切正常。
有没有人知道如何在TFS中存储来自Mac OS X机器的Aliases等内容而不会破坏它们?
答案 0 :(得分:5)
Mac OS上的别名是sym链接的混合,也是指向源文件ID的指针。 (把它看作是指向inode的指针,以及指向传统unix文件系统上完整路径的sym链接)
实际上它比这更复杂,因为别名结构的实现取决于底层文件系统。这些都记录在Alias Manager Reference
概述中这真的归结为TFS 2010如何将它的文件存储暴露给Mac OS - 我的猜测是它是一个SMB共享,这就是为什么你的别名无法通过SMB API从HFS +转换到NTFS存储的原因。除非您可以将原始存储公开为HFS + / AFS并且TFA 2010可以智能地跟踪文件更改,否则您可能会失去运气并且必须一起避免别名。如果你想尝试,相对路径sym链接可能是一个更强大的解决方案。
您将放弃Mac端别名重新连接的所有稳健性,但对代码更改的控制可能更为重要。我还会研究一下 mercurial 或 git 与TFS 2010的桥梁,因为它们在Mac上运行得更好,可能是一个更容易接受的中间地带。
答案 1 :(得分:2)
是的,Team Explorer Everywhere可以保留HFS别名。 HFS将别名存储在文件的扩展属性中:
% ls -Flas alias
208 -rw-r--r--@ 1 ethomson staff 69936 May 30 15:19 alias
% xattr alias
com.apple.FinderInfo
com.apple.ResourceFork
Team Explorer Everywhere将在正确配置the .tpattributes
file时存储扩展属性。要存储扩展属性,您需要一行,例如:
filename:transform=apple
当应用此转换时,本地文件的数据和资源分叉将合并到an AppleSingle file,然后将其签入TFS。当您从另一台Mac计算机上的团队资源管理器执行该文件的获取时,将正确保留别名。在任何非Mac计算机上,此标志将被忽略,并且将下载实际的AppleSingle文件本身。
答案 2 :(得分:-1)
答案就像我能说的那样,不是。
答案 3 :(得分:-1)
至少在TFS 2011之前,根据this