如何提交除SVN之外的所有文件

Art*_*ero 22 svn command file commit

我想提交所有修改过的文件,除了使用Subversion的文件.

所以这是场景:

$ svn st
M    file1
M    file2
M    file3
M    file4
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

svn ci -m "Commit 1" file1 file2 file3
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)

但是当有大量文件时,我正在努力简化我的工作:

svn ci -m "Commit 1" `svn st | awk '{print $2}' | grep -v file4`
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)

此解决方案非常脆弱,因为此方案不起作用:

$ svn st
M    file1
M    file2
D    file3
A +  file4
Run Code Online (Sandbox Code Playgroud)

我认为SVN没有针对我的问题的内置解决方案,但我不确定.还有其他方法吗?

Art*_*ero 23

选项1,AWK:

svn ci -m "Commit 1" `svn st | awk '{print $NF}' | grep -v file4`
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)

选项2, - 目标:

svn ci -m "Commit 1" --targets filesToCommit.txt
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)

选项3, - 更改清单:

svn changelist my-changelist file1 file2 file3
svn ci -m "Commit 1" --changelist my-changelist
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)


ks1*_*322 14

你可以这样做:

svn diff file4 > tmp.patch
svn revert file4
svn ci -m "Commit 1"
svn patch tmp.patch
Run Code Online (Sandbox Code Playgroud)

此时所有文件都被提交,除了 file4


小智 5

使用更改列表提交除一个以外的所有内容:

svn changelist my-list -R .
svn changelist --remove file4
svn ci -m "Commit 1" --changelist my-list
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)