2008-12-18 58 views
2

我想在subversion中按模式排除子目录,因为我们使用的开发工具正在生成它们。获取工具来在别处生成目录不是一种选择。我们不想编辑〜/ .subversion/config中的全局忽略属性,因为难以保持一致性。我们试图排除的目录如下所示:在子版本中排除具有模式的子目录

rootdir 
    |-> dir1 
     |-> dirToExclude 
    |-> dir2 
     |-> dirToExclude 

我想排除dir1和dir2中的dirToExclude。可以在rootdir上使用svn:ignore来完成,而不必将svn:ignore添加到dir1和dir2中?

+0

当你发现你想对工具的行为做出如此激烈或广泛的改变时,你应该开始质疑你是否使用了正确的工具,或者你是否做错了。 – 2009-02-05 21:03:41

回答

3

可以使用SVN来完成:忽略ROOTDIR

svn:ignore号特别是应用递归,但只有在当前文件夹。由于每个文件夹都拥有自己的版本信息,因此没有任何内容会传播到子文件夹。见The Red Book, Chapter 7., Properties,脚注29.

这实际上很不幸;我宁愿自己有一个类似.htaccess的财产传播。

-3

你可能会考虑另一种方法。

通常,从源代码控制中排除子目录和/或文件的愿望是指示那些子目录和/或文件位于错误的位置 - 它们应该移出源代码树。例如,如果它们是构建输出,则重新配置构建工具/脚本以将它们放置在远离源的单独目录树中。如果它们是生成的文件,请告诉相关工具在其他地方生成它们。

无论这些文件/子目录的用途如何,您都可以重新配置以将它们移开。在此过程中,您可以简化您的生活,并可能解决/缓解一些其他问题。

如果您的特定工具很难实现,那么可能需要重新评估该工具。

祝福。