Subversion Linux

http://blog.csdn.net/hemingwang0902/article/details/6904205

从你的版本库中剔除文件

有时你会希望某种类型的文件或者目录不会保护到你的源代码库中,所有使用VisualStudio开发的人都会马上知道我想说的:VS自动创建bin和obj子文件夹来存放编译中间文件和最终结果,并会创建*.suo文件用于存放解决方案的个人设置。

如果能够将这些文件从我们的版本库中剔除不用每次升级项目的时候手动禁止对它们的检查将是很方便的。幸运的是,subversion允许我们这么作。实际上有2种手段可以做到。

全局排除

使用全局排除我们可以剔除指定文件类型加入到版本库中(只能对既定的用户连接有效)。我们需要作的只是编辑subversion的config文件,它可以在本地运用数据目录找到,比如Windows下的“C:\DocumentsandSettings\[username]\ApplicationData\Subversion”,或者Linux下的“~/.subversion”(原文只有windows相关配置译者加了Linux配置)。

打开这个文件,查找[miscellany]节点,在这个节点中找到有global-ignores的行,删除行首的“#”(假如你之前没有删掉),然后加上你想忽略的文件后缀。

比如你想忽略suo文件,你应当写

global-ignores=*.suo

局部排除

局部排除只能针对某个目录,就是说你可以告诉subversion客户端忽略指定的文件,文件类型或者目录,这是通过对指定目录设置svn:ignore属性来完成的。

比如,忽略解决方案目录下的suo文件,你可以在其目录下运行命令:

[TargetFolder]>svnpropsetsvn:ignore*.suo.

别忘记最后的点".",它指定作用的目标路径是当前路径。通过以上命令可以使得subversion忽略目标路径下所有扩展文件名为suo的文件

忽略文件夹也是相似的格式,忽略目标路径下名为bin的文件夹的命令为:

[TargetFolder]>svnpropsetsvn:ignorebin.

同样不要忘了最后的"."

要忽略多个文件文件夹时,需要使用换行符作为分隔标记的propset忽略列表,因为命令行下换行符没法输入(好吧,是我不知道怎么输入),因此需要创建一个文件来包含这些忽略列表。

ignore.txt文件内容如下:

obj

bin

执行如下命令

[TargetFolder]>svnpropsetsvn:ignore-Fignore.txt.

还是别忘了最后的".",命令表示忽略当前路径下obj和bin文件夹。
若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容:
 
$ svn mkdir spool 
$ svn propset svn:ignore '*' spool 
$ svn ci -m 'Adding "spool" and ignoring its contents.'
 
若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹:
 
$ mkdir spool 
$ svn propset svn:ignore 'spool' . 
$ svn ci -m 'Ignoring a directory called "spool".'
 
若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:
 
$ svn export spool spool-tmp 
$ svn rm spool 
$ svn ci -m 'Removing inadvertently added directory "spool".' 
$ mv spool-tmp spool 
$ svn propset svn:ignore 'spool' . 
$ svn ci -m 'Ignoring a directory called "spool".'