我可以在Team Foundation Server中存储Mac OS X Alias而不会破坏它吗?

时间:2011-07-01 16:04:14

标签: macos tfs tfs2010 alias team-explorer-everywhere

我目前正在开发iPhone应用程序,我公司使用TFS 2010进行源代码管理。

我们使用Team Explorer Everywhere作为Eclipse插件来处理Mac上的源代码控制以及其他项目(比如我们最近做过的C ++项目),它运行正常。

然而,它似乎不适用于此iPhone应用程序,主要原因似乎是别名。它要么根本不存储它们,要么将它们存储为常规文件或文件夹,这会破坏一切。

在尝试转移到TFS之前,我正在以即兴的方式使用Mercurial,而且一切正常。

有没有人知道如何在TFS中存储来自Mac OS X机器的Aliases等内容而不会破坏它们?

4 个答案:

答案 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