如何从SVN获取所有未版本控制文件的列表?

时间:2008-10-19 05:25:29

标签: svn version-control

有时您正在开发并且您决定提交,忘记您在项目中创建了一些文件。然后在几天后你的伙伴从Subversion获取你的构建并抱怨一些文件似乎丢失了。你意识到,啊废话,我忘了添加这些文件!

如何从Subversion获取不受版本控制的文件列表,所以我确定我已将所有内容添加到存储库中?

5 个答案:

答案 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"