我想添加一个符号链接到subversion,当我做一个结帐时它所做的就是在我的结帐时添加相同的符号链接,但是我害怕添加它,如果不是这样的话.
Dav*_* W. 108
我想强调以上几点.太多人错误地认为Windows不支持符号链接.
这种错误信息是因为Windows 2000和Windows XP不支持符号链接.它们支持目录连接点,但不支持POSIX样式的符号链接.更奇怪的是,Windows 2000或Windows XP都没有提供linkd
创建这些目录连接点所需的命令.
这不再是真的.Windows Vista,Windows 7和Windows 8不仅支持符号链接,还附带必需的mklink
命令.这些符号链接与POSIX兼容的操作系统符号链接兼容(Mac OS X,Linux,Unix)
现在问题的核心:
虽然Windows现在支持符号链接,并且这些符号链接与Unix/Linux/Mac符号链接兼容,但Subversion本身不支持Windows上的符号链接.我不知道为什么会这样.
我不建议将符号链接放入存储库,即使您只在POSIX样式的OS系统而不是Windows中工作.相反,您应该让构建和/或部署步骤创建任何所需的符号链接.这为您提供了更大的灵活性,因为您可以在构建或部署期间测试操作系统并处理任何问题.
此外,在构建/部署阶段创建符号链接比在存储库中创建符号链接创建的维护难度更小.想象一下,如果我重命名,移动或删除在我的存储库中具有指向它的符号链接的文件.我还要记得寻找任何符号链接并修改它们 - 这是不太可能发生的事情.毕竟,不可能查看文件并知道可能指向该文件的所有符号链接.
所以作为回顾:
1.是的,我知道的是,FS在NTFS代表文件系统.
jgi*_*d25 12
当你检查它时,它会在基于Unix/Linux的平台上工作.祝Windows好运,因为它不支持符号链接.
有关详细信息,请参阅SVN Book中有关符号链接的本页说明.
Yan*_* Bo 10
如果从Linux或其他POSIX OS添加符号链接,则没有任何反应.它只是有效.
但是当你尝试从Windows添加符号链接时,你会看到
C:\repo>svn add test_link
svn: E200007: Symbolic links are not supported on this platform
Run Code Online (Sandbox Code Playgroud)
我想那是因为Windows要求UAC创建一个符号链接.如果Subversion在Windows上允许符号链接,则UAC将正常svn up
.
也许我在其他答案中错过了它,但我想我可能会补充一下.
Windows 7客户端:
TortoiseSVN 1.8.7,Build 25475 - 64 Bit,2014/05/05 20:52:12
Subversion 1.8.9,-release
Linux客户端:
svn,版本1.6.17(r1128011)
符号链接不仅"存活",而且可以在Windows的存储库中创建和编辑它们.您只需要创建一个包含以下内容且SVN属性为svn:special
=的文件*
.
link name_of_source_file
Run Code Online (Sandbox Code Playgroud)
当您使用知道如何创建符号链接的SVN客户端进行检查时,将为您创建符号链接.Windows 7客户端创建文本文件,但Linux客户端创建符号链接.
针对zb226的评论:
"知道如何创建符号链接的SVN客户端"是一个二进制文件,它是从源代码构建的,编写后使用的函数知道如何在具有符号链接概念的文件系统中创建符号链接. .
就让我们来看看在Subversion源的1.8.13显示了608线io.c中它使用符号链接功能,我不知道在现有标准的Windows库.
另一个答案指出,有一个名为mklink的程序可用于在Windows 1上创建符号链接.在C和C++中,通常你会包含一个库,而不是调用可能存在或不存在的程序.看起来微软有一个类似于CreateSymbolicLink的功能,但它看起来很不成熟.我无法看到它是否适用于NTFS,这是我希望在Windows上支持99.9%的SVN工作目录.它确实提到了ReFS,但我不认为它会在很长一段时间内被普遍使用.
总之,看起来Windows上带有NTFS的符号链接的可用性和稳定性不存在,因此Subversion开发人员还没有添加代码来使用Windows等效命令.
当(或如果)符号链接成为Windows的每一天时,我希望它们能够进入Windows版本的Subversion客户端.我认识的大多数只在Windows上工作的人甚至不知道什么是符号链接,而且我认识的那些使用非Windows操作系统的人很少知道微软正在试验它们.
1.在mklink的文档中,它指出这适用于"Windows Vista,Windows Server 2008,Windows Server 2012,Windows 8",并且奇怪地省略了Windows 7.我认为它实际上意味着它存在且仅适用于特定版本的Windows,有特定版本的NTFS支持符号链接.我不认为NTFS中一直存在符号链接.
我刚刚注意到Github的Git for Windows客户端支持Windows NTFS符号链接.他们甚至提供说明如何启用它!另一个钉子加入Subversion的棺材.
嗯......我不确定技术答案或后果可能是什么,但我只是尝试过.我在结账时创建了一个到目录的sym链接.添加并提交了它.Nuked整个结帐.重新检查它,sym链接仍然在那里有适当的链接.
希望能够满足您的后顾之忧;)
归档时间: |
|
查看次数: |
46553 次 |
最近记录: |