我有一个subversion repo,目录中包含通常的源控制文件,但除此之外还包含作为执行依赖项的文件,但未检入源代码控制而是添加为svn:ignore(因为它们会如果他们被检入所有文件夹,请在回购周围保留一式两份)。 (相信我或不相信,但有一个原因,至少有一半的好处,因为重复被忽略的文件;-))
有时我想分支出来并制作目录的本地副本来执行某个已定义的开发任务,然后在几次签入后合并回主干。当我拿这个文件夹的副本/分支时,有没有办法让它复制所有文件,包括svn:被忽略的文件以及新创建的分支文件夹工作副本(我现在做的是将它们复制过来)用乌龟制作分支后的手) (但当然还是将:忽略的文件保留在回购中)
非常感谢您的帮助!
答案 0 :(得分:3)
不,没有办法做到这一点。 svn:ignore属性的主要目的是不在存储库中存储被忽略的文件。服务器怎么能猜出你的计算机上有哪些文件?
答案 1 :(得分:0)
我认为答案是否定的,因为Subversion对这些文件一无所知,它认为你真的希望它们总是被忽略。实际上,分支方法之一涉及从存储库中的一个点复制到另一个点(URL - &gt; URL,而您可能正在谈论从工作副本复制到分支),在这种情况下,是< / em>没有“被忽略”的文件,因为它直接在存储库的各个位之间进行复制。
虽然我不明白为什么Subversion开发人员无法添加新功能,以便在从复制工作副本时自动复制svn:ignore
'd文件(WC - &gt ; URL或WC - &gt; WC)。
编写一个检查svn:ignore属性的脚本,并匹配(就像svn那样)这些文件,然后将它们复制过来可能并不困难。
命令
svn status --no-ignore | grep '^I'
应该为您提供所有被忽略文件的列表。通过sed
管道清理该行,然后xargs
,您可以快速复制文件。虽然不是自动的,但这正是你要找的。 p>