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