救我脱离我的SVN自我

All*_*nde 1 svn shell

使用svn时,我想检查整个本地存储库,我进入其目录并键入:

svn commit -m "blah blah"
Run Code Online (Sandbox Code Playgroud)

我很快意识到(痛苦的方式)这不会自动添加新文件.

为了做到这一点,我正在执行这两步黑客怪物:

find . | grep -v ".svn" | grep -v "ignorepattern" | xargs svn add 2>/dev/null
svn commit -m "blah blah"
Run Code Online (Sandbox Code Playgroud)

现在,我不是外壳大师,但我的代码感觉给我一个糟糕的代码味道.

任何建议将不胜感激.

谢谢

Ada*_*ght 18

好吧,这不是问题的直接答案,但我不得不说这确实是一个工作流问题,而不是你应该尝试自动化的东西.开发目录往往会充满你在源代码控制下不需要的大量随机内容,但忘记添加到忽略文件中.这个过程很快将用垃圾填满您的存储库.

此外,创建一个新的项目资源通常是一个相当罕见的过程,应该至少要仔细考虑.必须在每个资源(或批处理,通过globbing)上执行"svn add"的步骤是我赞成的,因为它会停止临时提交.

如果你担心你会忘记事情,那么"svn status"命令就是你的朋友.偶尔运行它以确保您跟踪所关注的所有资源.


Rob*_*anu 17

更容易找到要添加的文件:

svn status | grep "^\?" | awk {'print $2'}
Run Code Online (Sandbox Code Playgroud)

它的好处是使用svn客户端来确定要添加的内容 - 新的,未被忽略的文件 - 因此更安全,更快捷.


Joe*_*ite 6

所以你在提交之前没有检查你的差异?Tsk,tsk.

您可以svn st在每次提交之前执行操作,并将第一列的vgrep用于"?".只要你做小提交,这些就不难发现.

或者,如果它是您环境中的一个选项,您可以使用像TortoiseSVN这样的GUI工具来提交.在Tortoise中,无版本文件像拇指一样突出,可以在提交窗口中添加(通过右键单击并选择"添加",或者只需选中复选框并单击"确定").