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