如何从SVN获取所有未版本控制的文件列表?
有时你正在开发,你决定提交,忘了你在你的项目上创build了几个文件。 然后,几天后,你的好友从Subversion获得你的构build,并抱怨有些文件似乎丢失了。 你意识到,啊废话,我忘了添加这些文件!
我如何从Subversion获得不受版本控制的文件列表,所以我确定我已经将所有内容添加到了存储库中?
使用svn status
命令:
svn status | grep ^?
没有版本的文件用一个? 在线的开始。
如果您发现总是有一些不应该添加到存储库的特定文件(例如,生成的二进制文件),则应该在包含目录中设置svn:ignore
属性,以便这些文件在使用时不会显示svn status
。
如果某些文件被添加到状态中,则不会显示在“svn status”中。 你需要:
svn status --no-ignore
如果你在Windows上运行,你可以使用PowerShell做类似于Greg Hewgill的回答。
(svn stat) -match '^\?'
这可以很容易地扩展find所有未版本控制和忽略的文件,并删除它们。
(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm
希望对某人有帮助!
或者从Windows命令行:
svn stat | find "?"
您可以使用此命令来列出未版本化文件的所有path:
svn status | awk '/^?/ {print $2}'
第一部分将执行一个svn status
,然后它会将输出redirect到AWK ,它将执行简单的过滤“第一个字符应该是'?”,然后它将打印第二个参数“文件path”。
svn status
将永远不会打印被忽略的文件。 您可以使用添加该path来添加文件或path
svn propset svn:ignore "PATH OR PATERN"