首页 文章

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

提问于
浏览
78

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

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

5 回答

  • 15

    使用svn status命令:

    svn status | grep ^?
    

    未版本化的文件用?表示?在线的开头 .

    如果您发现总是有一些不应该添加到存储库的特定文件(例如,生成的二进制文件),则应在包含目录上设置svn:ignore属性,以便在使用 svn status 时这些文件不会一直显示 .

  • 11

    如果某些文件已将ignore添加到其状态,则它们将不会显示在 svn status 中 . 你需要:

    svn status --no-ignore
    
  • 1

    如果你在Windows上运行,你可以使用PowerShell做类似于Greg Hewgill的回答 .

    (svn stat) -match '^\?'
    

    这可以很容易地扩展,以找到所有未版本化和被忽略的文件并删除它们 .

    (svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm
    

    希望对某人有帮助!

  • 43

    或者从Windows命令行:

    svn stat | find "?"
    
  • 102

    您可以使用此命令列出非版本化文件的所有路径:

    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"
    

相关问题