File 如何使用SVN提交除一个以外的所有文件
我想提交所有修改过的文件,除了一个使用Subversion的文件 下面是一个场景:File 如何使用SVN提交除一个以外的所有文件,file,svn,command,commit,File,Svn,Command,Commit,我想提交所有修改过的文件,除了一个使用Subversion的文件 下面是一个场景: $ svn st M file1 M file2 M file3 M file4 我可以这样做: svn ci -m "Commit 1" file1 file2 file3 svn ci -m "Commit 2" file4 svn diff file4 > tmp.patch svn revert file4 svn ci -m "Commit 1" svn patch t
$ svn st
M file1
M file2
M file3
M file4
我可以这样做:
svn ci -m "Commit 1" file1 file2 file3
svn ci -m "Commit 2" file4
svn diff file4 > tmp.patch
svn revert file4
svn ci -m "Commit 1"
svn patch tmp.patch
但当大量文件出现时,我试图简化我的工作:
svn ci -m "Commit 1" `svn st | awk '{print $2}' | grep -v file4`
svn ci -m "Commit 2" file4
此解决方案非常脆弱,因为此方案不起作用:
$ svn st
M file1
M file2
D file3
A + file4
我认为SVN没有针对我的问题的内置解决方案,但我不确定。还有其他方法吗?虽然我相信您可以使用更复杂的
awk
命令行来解决您提出的问题,但既然我们只讨论一个文件,为什么不呢
svn还原
修改后的文件以恢复原始文件简单、简单、快速。您可以通过将带有脚本的文件添加到脚本并提交来在某种程度上改进您的方法。在提交之前,您可以检查列表以确保它包含正确的项
请参见
svn ci--help
中的svn changelist--help
和--changelist
选项,您可以这样做:
svn ci -m "Commit 1" file1 file2 file3
svn ci -m "Commit 2" file4
svn diff file4 > tmp.patch
svn revert file4
svn ci -m "Commit 1"
svn patch tmp.patch
此时,除了选项1,AWK:
svn ci -m "Commit 1" `svn st | awk '{print $NF}' | grep -v file4`
svn ci -m "Commit 2" file4
备选案文2——目标:
svn ci -m "Commit 1" --targets filesToCommit.txt
svn ci -m "Commit 2" file4
选项3,-变更列表:
svn changelist my-changelist file1 file2 file3
svn ci -m "Commit 1" --changelist my-changelist
svn ci -m "Commit 2" file4
只需提交过滤过的文件列表
svn ci `ls | grep -v file4`
使用更改列表提交除一个之外的所有更改:
svn changelist my-list -R .
svn changelist --remove file4
svn ci -m "Commit 1" --changelist my-list
svn ci -m "Commit 2" file4
svn补丁
在1.7中添加。在本例中,我使用了patch-p0-I tmp.patch
,而不是最后一行。