2009-08-09 29 views

回答

1

据我所知,这是不可能的。 svn:ignore在文件实际版本化时不会执行任何操作。

它使这样做有点危险,因为人们可能有他们想要保留的本地变化。如果他们不注意,他们可能会失去他们。

+0

这并不危险。 Subversion永远不会在没有警告的情况下抛出本地修改。如果更新删除了本地修改的文件夹,则应该发生树冲突。 – 2009-08-09 17:29:29

+0

这就是我想的,直到我没有。我不是说它肯定会搞砸,但要小心。就在两天前,TortoiseSVN'消失了'一个新添加的文件,还没有提交,只是因为我svn移动了目录。 – Thorarin 2009-08-09 21:06:56

1

就像Thorarin说,看起来不太可能,因为无论svn:ignore属性如何,delete命令都会被传播。

而不是删除,更安全的迁移可能是重命名有问题的目录(类似dir.old,然后添加svn:忽略原始目录名称。然后,你可以告诉人们手动复制他们的目录回到原来的名字,然后你完全删除它

根据这个目录中的文件种类,你可能也想永久保留它作为开发者同步他们的改变的地方在这种情况下你可以通过调用它像dir.tmpl那样清楚地说明它是模板目录,因此它不会直接使用。

0

这里是另一个被盗的答案question(感谢Maciej Łebkowski!):

从我的经验:不要把该文件放在版本控制下,并使用svn:忽略它。

开始时有些困难,因为您不能忽略版本控制下的allready文件,并且无法从版本控制中删除文件而无需从硬盘驱动器中删除文件(以及在下次更新时从每个工作副本中删除文件...)。但是,当你最终设法正确设置回购时,它就像魅力一样。不要忘记添加一个通用模板来代替原来的配置文件(这样每个人都知道新的配置变量,等等)。

对于新的回购协议:

的mkdir配置
SVN添加配置
的svn propset命令的svn:忽略 '* .conf文件' 配置

对于现有回购协议:可以肯定的,有备份您的在每个工作副本中配置,然后从repo中删除(svn del)配置,提交(请注意:下次更新时将在每个工作副本中删除文件,必须进行备份),然后恢复文件并设置忽略财产。

另一种方式是锁定。它确保没有人提交该文件,但会导致每次提交时出错。不大好。

第三种方式 - 变更集,SVN 1.5客户端中的一项新功能。这很整洁,但它只涉及一个工作副本,而不是全局的存储库。你必须手动设置它们,添加每个新文件 - 这很难维护。

相关问题