[英]Symbolic link in svn working copy for a switched directory
我在单个存储库中处理了几个(2-20)个非共享祖先项目,这些项目仅在一个地方共享存储在资源库中的GB二进制数据的公共资源。 这些项目利用svn switch
将其适当的文件夹映射到共享二进制数据的单个svn URL。
当要签出多个副本时,我想在工作副本中执行相同的操作,从而避免重新下载已经拥有的相同GB的二进制数据。
(注意:另一个坏消息是,这些项目还利用svn 1.7可执行文件进行修改。)
我完成的工作是检出项目A ,执行-es键。 然后检出项目B ,而不是常规切换,而不是svn switch --set-depth=empty --ignore-ancestry http://foobar
,因此项目B的此工作副本知道应该指向何处。 然后,我做了mv foobar old_foobar
和mklink /D foobar ../project_A/foobar
。 (1)
现在的问题是,如果我做svn status
与符号链接的厕所,它会列出所有文件中的“foobar的”非版本(如?
状态)。
我也使用TortoiseSVN,它将图标叠加层显示为黄色三角形“!”。 (意味着可能已被混淆?),但我在svn status
没有实际冲突(也没有树冲突),如果我确实在“ foobar”中进行了svn up
攻击,则表示它是最新的。
二进制文件容器不会经常更改,即使它们发生更改,更改通常也是向后兼容的。 因此,工作副本对它们中的文件版本有错误的想法(至少对我而言)不是问题。
我不应该改变项目或回购的结构不允许我这样做,“正式”。
我使用的是svn 1.7 ,由于这些项目实际上是使用一个自包含的svn可执行二进制文件来进行自身的工作,因此,我尽可能地坚持这一点。
有没有一种方法可以利用符号链接(或其他方式)来避免在硬盘驱动器上复制相同的GB数据? (如果可能,也避免下载。)
(1):我在Windows上; 为了简便起见,假设在我的文件系统中 ,文件夹“ project_B”和“ project_A”是邻居。 共享一个共同的祖先,并且该文件夹foobar在两个项目中都是顶层。
我们遇到的情况是,多个项目可能相互嵌套。
我们使用的解决方案可能适合您;
svn:ignore
条目,并确保未跟踪该路径。 现在,您所有的项目都将忽略这些多余的文件,但是您仍然可以通过svn管理数据。
是的,这意味着您需要记住svn update && svn update data/
以确保您的项目是最新的,但这并没有什么麻烦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.