更大的图片:
我正在使用SVN代码库,并且我希望为本地版本控件提供本地Mercurial存储库。在创建Mercurial存储库时,我想知道SVN忽略了哪些文件被忽略(例如,创建的临时文件等)。
我真正想要的是找到用于忽略的模式。因此,如果SVN被告知忽略* .sdf,我不想看到它忽略的所有sdf文件。我想看看* .sdf,以便我可以把它放在我的.hgignore文件中。
这可能吗?
感谢。
答案 0 :(得分:2)
hg svn genignore
从树中的svn:ignore
定义构建.hgignore 检查生成的文件的内容,修复可能的错误,不要忘记提交Mercurial
如果我在树中有这样的存储库(坏和丑,但适合测试)svn:ignore
WC>svn pg svn:ignore -v -R
Properties on '.':
svn:ignore
*.bak
*.tmp
Properties on '1':
svn:ignore
*.bak
*.tmp
*.dbg
*.raw
Properties on '1\2':
svn:ignore
*.bak
*.tmp
*.dbg
*.raw
*.1bg
生成的.hgignore
将是
.hgignore
syntax:glob
*.bak
*.tmp
1/*.bak
1/*.tmp
1/*.dbg
1/*.raw
1/2/*.bak
1/2/*.tmp
1/2/*.dbg
1/2/*.raw
1/2/*.1bg
显然,它可以而且必须进行优化和压缩。 Ñ
如果在SVN 1.8+ svn:global-ignores
中使用(首选且更具可读性)
WC>svn pg svn:global-ignores -v -R
Properties on '.':
svn:global-ignores
*.bak
*.tmp
Properties on '1':
svn:global-ignores
*.dbg
*.raw
Properties on '1\2':
svn:global-ignores
*.1bg
当前的Mercurial | HGSubversion在genignore中不使用和忽略此属性
至少Mercurial 2.11无法克隆本地(file:///
)Subversion 1.8+存储库,它们必须由httpd或svnserve提供
答案 1 :(得分:0)
您可以递归调用目录结构中的svn propget svn:ignore
。
第一遍hacky解决方案(在bash中)类似于:
svn list -R | xargs -I{} svn propget svn:ignore {}
但是这个:
<强>更新强>
一个更好的解决方案,但不如Lazy Badger的那样好:
#!/usr/bin/python
import os
import subprocess
# Run command and store output in variable, splitting into a list on newlines
paths = subprocess.check_output(['svn', 'list', '-R']).splitlines()
for path in paths:
# [-1] is Python notation for "the last character in the string", so...
# look for a trailing path separator to indicate a "directory"
if path[-1] == os.sep:
ignores = subprocess.check_output(['svn', 'propget', 'svn:ignore', path])
if ignores:
print path
print ignores