2012-09-17 60 views
3

我在Ubuntu上使用Apache Subversion(SVN)。我有一个文件在几个子项目中使用。所以我使用硬链接到相同的文件。svn与硬链接

svn commit之后,看起来硬链接成为独立文件(链接数量变为1)。

SVN是否可以保留硬链接?

+0

它符合符号链接吗? IIRC,svn确实了解这些并将保留它们。 – tdammers

+0

让我再试一次。也许我犯了一些错误。非常感谢! :-) – Anand

回答

3

Subversion支持自1.1(2004)以来的符号链接。

硬链接无法识别并作为普通文件处理。

见这也Version Control with Subversion

版本化的符号链接

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

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

+0

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

1

硬链接是普通文件。你可以只知道它从更多的地方联系在一起,因为链接数大于1

人觉得你可以做,在每一个项目中的同一个文件,就是SVN的外部使用。通过这种方式,一个项目将拥有您想要共享的文件,其他所有人都将使用该文件。

您可以阅读更多关于svn externals here

+0

亲爱的奥古斯都,你认为我可以使用符号链接来解决问题,而不是使用svn:externals吗? – Anand

+1

是的,您可以,唯一的问题是您要共享的文件必须位于您部署应用程序的任何位置。如果你使用svn external,你不需要关心,因为这个文件将会在你想要的目录中。 – Augusto

+0

谢谢奥古斯托。 :-) – Anand