当前位置:  开发笔记 > 编程语言 > 正文

如何忽略SVN目录?

如何解决《如何忽略SVN目录?》经验,为你挑选了12个好方法。

我刚开始使用SVN,我有一个在源代码管理下不需要的缓存目录.如何忽略SVN的整个目录/文件夹?

我在OS X和命令行上使用Versions和TextMate.



1> Jason Cohen..:

设置svn:ignore父目录的属性:

svn propset svn:ignore dirname .

如果您有多个要忽略的内容,请按属性值中的换行符分隔.在这种情况下,使用外部编辑器编辑属性值更容易:

svn propedit svn:ignore .


注意:如果目录已经在"in"svn中,这将不起作用.首先是`svn rm --keep-local dirname`.(我的svn stat输出很大,我把头撞到了这一段时间.)
如果要忽略多个文件/文件夹,请将所有名称添加到txt文件中,每行一行,并使用以下变体:`svn propset svn:ignore -F file.txt.
谢谢你的回答.Pico作为编辑:svn propedit svn:忽略.--editor-cmd pico
@Kouber:你的问题是shell扩展不知道svn:ignore属性.因此,使用'*'作为参数explicityl将tmp传递给commit命令.尝试类似'svn commit -m"更多口音"."
小心你像我一样设置`svn:ignore`而不是`svn :: ignore`.您可以设置任意属性,因此后者将设置为OK,您可以查看和编辑该属性,但不会使SVN忽略您列出的文件.

2> craigb..:

这是一个示例目录结构:

\project
    \source
    \cache
    \other

project您看到您的缓存目录未添加并显示为这样.

> svn st
M  source
?  cache

要设置ignore属性,请执行

svn propset svn:忽略缓存.

svn:ignore您要设置的属性的名称在哪里,是属性cache的值,并且.是您要设置此属性的目录.它应该是cache需要该属性的目录的父目录.

要检查设置了哪些属性:

> svn proplist
Properties on '.':
  svn:ignore

要查看以下内容的价值svn:ignore:

> svn propget svn:ignore
cache

要删除先前设置的属性:

svn propdel svn:ignore


这里有一个棘手的问题,我偶然发现了.确保你没有向`dirname`添加一个尾部斜杠.例如,当键入`svn propset svn:ignore dirname`时,如果允许(bash)shell为你填写dirname,它将添加该尾部斜杠,让你使用命令`svn propset svn:ignore dirname/`,这不会导致文件夹被忽略.至少,那是我的经历.
'cache'目录仍将列在'svn st'中.有没有办法从视图中删除吗?(不删除从磁盘)

3> binco..:

重要提一下:

在命令行上你不能使用

svn add *

这也将添加被忽略的文件,因为命令行扩展*,因此svn add认为您希望添加所有文件.因此请改用:

svn add --force .



4> Kai..:

由于我花了一段时间试图让它工作,应该注意的是,如果文件已经存在于SVN中,则需要svn delete它们,然后编辑svn:ignore属性.

我知道这似乎很明显,但是当我认为它会在本地忽略它们时,它们会一直显示?在我的svn status列表中.


如果您只是想忽略它们而不是实际删除它们,请不要忘记在删除文件时使用--keep-local选项.

5> Greg..:

要略微扩展,如果您使用svn命令行工具执行此操作,则需要键入:

svn propedit svn:ignore path/to/dir

这将打开您选择的文本编辑器,然后键入'*'忽略其中的所有内容,并保存+退出 - 这将包括svn中的目录本身,但忽略其中的所有文件,忽略该目录,使用父路径,然后键入文件中的目录名称.保存后,运行更新('svn up'),然后检查相应的路径.


非常好点,谢谢.所有其他答案错过了嵌套目录的情况.所以上面的例子(工作)然后输入编辑器ignored_directory(假设在path/to/dir下面一级).这不会起作用:svn propedit svn:ignore.然后在编辑器中键入path/to/dir/ignored_directory.IOW:SVN一次将对象降低一级.

6> Frank Szczer..:

svn:ignore在父目录上设置属性:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

这将覆盖任何当前值svn:ignore.您可以使用以下命令编辑值:

$ svn pe svn:ignore .

哪个会打开你的编辑器.您可以添加多个模式,每行一个.

您可以使用以下方法查看当前值:

$ svn pg svn:ignore .

如果您使用的是GUI,则应该有一个菜单选项来执行此操作.


`svn ps svn:忽略."cachedir"导致"cachedir不受版本控制".改为`svn ps svn:忽略'cachedir'.`为我工作

7> Elliot Yap..:

感谢上面的所有贡献.我想在忽略文件的同时从我的经验中分享一些额外的信息.


当文件夹已经在版本控制下

svn导入svn co文件后,我们通常第一次做什么.

所有运行时缓存,附件文件夹都将受版本控制.所以,在svn ps svn:ignore之前,我们需要从存储库中删除它.

我们可以使用上面的SVN 1.5版svn del --keep-local your_folder,但对于早期版本,我的解决方案是:

    svn导出文件夹的干净副本(没有.svn隐藏文件夹)

    svn del the local和repository,

    svn ci

    复制文件夹

    SVN ST和确认文件夹被标记为"?"

    现在我们可以根据解决方案做svn ps


当我们需要忽略多个文件夹时

在一个目录中,我有两个需要设置为的文件夹 svn:ignore

如果我们设置一个,另一个将被删除.

然后我们想知道我们需要svn pe

svn pe将需要编辑文本文件,如果需要使用vi设置文本编辑器,则可以使用此命令:

export SVN_EDITOR=vi

    使用"o",您可以打开一个新行

    键入要忽略的所有文件夹名称

    点击'esc'键退出编辑模式

    输入":wq"然后点击Enter保存并退出

该文件看起来像这样:

runtime
cache
attachments
assets



8> matt burns..:

首先删除它...

如果您的目录foo已经受版本控制,请先删除它:

svn rm --keep-local foo

......然后忽略:

svn propset svn:ignore foo .



9> Michael Lang..:

如果您使用特定的SVN客户端TortoiseSVN,那么在提交时,您可以选择右键单击项目并选择"添加到忽略列表".



10> DerMike..:

...如果你想忽略多个目录(例如build/ temp/*.tmp文件),你可以分两步完成(忽略第一个和编辑忽略属性(参见其他答案)或者可以写一些像

svn propset svn:ignore "build
temp
*.tmp" .

在命令行上.



11> 小智..:

忽略多个条目的命令有点棘手,需要反斜杠.

svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .

此命令会忽略任何名字cache,tmp,null,和and_so_on在当前目录.


而且只是为了澄清:这里的反斜杠不是svn的特征; 它只是一种在shell上输入多行字符串的方法.您也可以使用编辑器,只需编写多行.

12> 小智..:

我有问题让嵌套目录被忽略; 我想忽略的顶级目录不会显示'svn status'但所有子目录都显示.这对其他人来说可能是不言而喻的,但我想我会分享它:

例:

/树干

/主干/缓存

/主干/缓存/ subdir1

/主干/缓存/ subdir2

cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有