有时候你正在开发,你决定提交,忘记你在你的项目上创建了几个文件。然后,几天后,您的好友将您的构建从Subversion中取出,并抱怨某些文件似乎缺失。你意识到,啊废话,我忘了添加这些文件!如何从SVN获取所有未版本控制文件的列表?
如何从Subversion获取不受版本控制的文件列表,因此我确定已将所有内容都添加到存储库中?
有时候你正在开发,你决定提交,忘记你在你的项目上创建了几个文件。然后,几天后,您的好友将您的构建从Subversion中取出,并抱怨某些文件似乎缺失。你意识到,啊废话,我忘了添加这些文件!如何从SVN获取所有未版本控制文件的列表?
如何从Subversion获取不受版本控制的文件列表,因此我确定已将所有内容都添加到存储库中?
使用svn status
命令:未版本与指示
svn status | grep ^?
文件?在线的开始。
如果您发现您总是有一些不应该添加到存储库的特定文件(例如,生成的二进制文件),则应该在包含的目录中设置svn:ignore
属性,以便这些文件不会显示当使用svn status
。
如果你在Windows上运行,你可以使用PowerShell做类似Greg Hewgill的回答。
(svn stat) -match '^\?'
这可以很容易地扩展,找到所有未版本控制和忽略的文件,并删除它们。
(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm
希望对某人有帮助!
如果某些文件已将'忽略'添加到其状态,它们将不会显示在'svn status'中。你需要:
svn status --no-ignore
或者从Windows命令行:
svn stat | find "?"
您可以使用此命令可以列出未版本化的文件的所有路径:
svn status | awk '/^?/ {print $2}'
第一部分将执行svn status
,然后它会将输出重定向到AWK,这将执行简单的过滤器“第一个字符应该是'?'”然后它将打印第二个参数“这是文件路径” 。
svn status
将始终不是打印忽略的文件。您可以通过添加使用
svn propset svn:ignore "PATH OR PATERN"
个人该路径添加文件或文件路径,我总是“SVN DIFF”之前“SVN词”,但由于有时很慢,我总是“SVN STAT”之前“SVN差异”,这是方便的,因为那样我不会忘记添加东西:) – ephemient 2008-10-23 19:05:57
如果您有许多未版本控制的文件需要添加,请执行以下操作: `svn st | grep ^? | awk'{print $ 2} | xargs svn add` 这将首先找到未版本化的文件,awk将仅打印行中的第二项(即文件路径),并且xargs将使此路径成为svn add的参数。 – 2012-09-22 23:30:52
在awk命令结尾缺少单引号。该命令应该是:`svn st | grep ^? | awk'{print $ 2}'| xargs svn add` – jplandrain 2014-01-20 13:20:56