SVN 与硬链接

4

我在Ubuntu上使用Apache Subversion(SVN)。我有一个文件用于多个子项目。因此,我使用硬链接到同一文件。

svn commit之后,似乎硬链接变成了独立的文件(链接计数变为1)。

SVN是否可以保留硬链接?


它能处理符号链接吗?如果我没记错,svn是可以理解并保留它们的。 - tdammers
让我再试一次。也许我犯了一些错误。非常感谢! :-) - Anand
2个回答

4

自2004年1.1版本起,Subversion支持符号链接。

硬链接不被识别并且被处理为普通文件。

请参阅《使用Subversion进行版本控制》

对符号链接进行版本控制

在非Windows平台上,Subversion能够对特殊类型的文件——符号链接(或“symlink”)进行版本控制。符号链接是一种文件,它充当了文件系统中某个其他对象的透明引用,允许程序通过对符号链接本身执行操作来间接地读取和写入这些对象。

当一个符号链接被提交到Subversion仓库时,Subversion会记住该文件实际上是一个符号链接,以及该符号链接“指向”的对象。当该符号链接被检出到非Windows系统上的另一个工作副本时,Subversion会从版本化的符号链接重建一个真正的基于文件系统的符号链接。但这并不以任何方式限制了在不支持符号链接的系统上使用工作副本的可用性,例如Windows。在这样的系统上,Subversion只是创建一个常规文本文件,其内容是原始符号链接所指向的路径。虽然该文件不能在Windows系统上用作符号链接,但它也不会阻止Windows用户执行其他与Subversion相关的活动。


亲爱的H.-Dirk Schmitt,我将尝试使用符号链接来查看它是否适用于我的系统。 :-) 非常感谢! - Anand

2

硬链接是普通的文件。你只能通过链接计数大于1来知道它链接到了更多位置。

一个可以做到在每个项目中都拥有相同文件的方法是使用svn externals。这样,一个项目将拥有你想要共享的文件,而所有其他项目将使用该文件。

你可以在这里了解更多关于svn externals的信息。


亲爱的Augusto,你觉得我可以使用符号链接来解决问题,而不是使用svn:externals吗? - Anand
1
可以的,我唯一看到的问题是,你想要分享的文件必须在你部署应用程序的正确位置。如果你使用svn external,你就不需要担心,因为文件将在你想要的目录中。 - Augusto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接