Gil*_*ean 751 svn directory version-control
我刚开始使用SVN,我有一个在源代码管理下不需要的缓存目录.如何忽略SVN的整个目录/文件夹?
Jas*_*hen 790
设置svn:ignore
父目录的属性:
svn propset svn:ignore dirname .
Run Code Online (Sandbox Code Playgroud)
如果您有多个要忽略的内容,请按属性值中的换行符分隔.在这种情况下,使用外部编辑器编辑属性值更容易:
svn propedit svn:ignore .
Run Code Online (Sandbox Code Playgroud)
cra*_*igb 406
这是一个示例目录结构:
\project
\source
\cache
\other
Run Code Online (Sandbox Code Playgroud)
在project
您看到您的缓存目录未添加并显示为这样.
> svn st
M source
? cache
Run Code Online (Sandbox Code Playgroud)
要设置ignore属性,请执行
svn propset svn:忽略缓存.
svn:ignore
您要设置的属性的名称在哪里,是属性cache
的值,并且.
是您要设置此属性的目录.它应该是cache
需要该属性的目录的父目录.
要检查设置了哪些属性:
> svn proplist
Properties on '.':
svn:ignore
Run Code Online (Sandbox Code Playgroud)
要查看以下内容的价值svn:ignore
:
> svn propget svn:ignore
cache
Run Code Online (Sandbox Code Playgroud)
要删除先前设置的属性:
svn propdel svn:ignore
Run Code Online (Sandbox Code Playgroud)
bin*_*nco 130
重要提一下:
在命令行上你不能使用
svn add *
Run Code Online (Sandbox Code Playgroud)
这也将添加被忽略的文件,因为命令行扩展*
,因此svn add
认为您希望添加所有文件.因此请改用:
svn add --force .
Run Code Online (Sandbox Code Playgroud)
Kai*_*Kai 80
由于我花了一段时间试图让它工作,应该注意的是,如果文件已经存在于SVN中,则需要svn delete
它们,然后编辑svn:ignore
属性.
我知道这似乎很明显,但是当我认为它会在本地忽略它们时,它们会一直显示?
在我的svn status
列表中.
Gre*_*reg 70
要略微扩展,如果您使用svn命令行工具执行此操作,则需要键入:
svn propedit svn:ignore path/to/dir
Run Code Online (Sandbox Code Playgroud)
这将打开您选择的文本编辑器,然后键入'*'忽略其中的所有内容,并保存+退出 - 这将包括svn中的目录本身,但忽略其中的所有文件,忽略该目录,使用父路径,然后键入文件中的目录名称.保存后,运行更新('svn up'),然后检查相应的路径.
Fra*_*rba 29
svn:ignore
在父目录上设置属性:
$ cd parentdir
$ svn ps svn:ignore . 'cachedir'
Run Code Online (Sandbox Code Playgroud)
这将覆盖任何当前值svn:ignore
.您可以使用以下命令编辑值:
$ svn pe svn:ignore .
Run Code Online (Sandbox Code Playgroud)
哪个会打开你的编辑器.您可以添加多个模式,每行一个.
您可以使用以下方法查看当前值:
$ svn pg svn:ignore .
Run Code Online (Sandbox Code Playgroud)
如果您使用的是GUI,则应该有一个菜单选项来执行此操作.
Ell*_*Yap 21
感谢上面的所有贡献.我想在忽略文件的同时从我的经验中分享一些额外的信息.
当文件夹已经在版本控制下
在svn导入和svn co文件后,我们通常第一次做什么.
所有运行时缓存,附件文件夹都将受版本控制.所以,在svn ps svn:ignore之前,我们需要从存储库中删除它.
我们可以使用上面的SVN 1.5版svn del --keep-local your_folder
,但对于早期版本,我的解决方案是:
.svn
隐藏文件夹)当我们需要忽略多个文件夹时
svn:ignore
svn pe
将需要编辑文本文件,如果需要使用vi设置文本编辑器,则可以使用此命令:
export SVN_EDITOR=vi
Run Code Online (Sandbox Code Playgroud)
该文件看起来像这样:
runtime
cache
attachments
assets
Run Code Online (Sandbox Code Playgroud)
mat*_*rns 20
如果您的目录foo
已经受版本控制,请先删除它:
svn rm --keep-local foo
Run Code Online (Sandbox Code Playgroud)
svn propset svn:ignore foo .
Run Code Online (Sandbox Code Playgroud)
Der*_*ike 12
...如果你想忽略多个目录(例如build/
temp/
和*.tmp
文件),你可以分两步完成(忽略第一个和编辑忽略属性(参见其他答案)或者可以写一些像
svn propset svn:ignore "build
temp
*.tmp" .
Run Code Online (Sandbox Code Playgroud)
在命令行上.
小智 8
忽略多个条目的命令有点棘手,需要反斜杠.
svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .
Run Code Online (Sandbox Code Playgroud)
此命令会忽略任何名字cache
,tmp
,null
,和and_so_on
在当前目录.
用于多次忽略的 Bash oneliner:
svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"
Run Code Online (Sandbox Code Playgroud)
小智 5
我有问题让嵌套目录被忽略; 我想忽略的顶级目录不会显示'svn status'但所有子目录都显示.这对其他人来说可能是不言而喻的,但我想我会分享它:
例:
/树干
/主干/缓存
/主干/缓存/ subdir1
/主干/缓存/ subdir2
cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci
Run Code Online (Sandbox Code Playgroud)