[英]How commit all files except one with SVN
我想提交所有修改過的文件,除了使用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 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沒有針對我的問題的內置解決方案,但我不確定。 還有其他方法嗎?
選項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 diff file4 > tmp.patch
svn revert file4
svn ci -m "Commit 1"
svn patch tmp.patch
此時,除file4
外,所有文件都被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 changelist --help
svn ci --help
svn changelist --help
和--changelist
選項。
雖然我確信你可以找到像你建議使用更復雜的awk
命令行的解決方案,因為我們只討論一個文件,為什么不呢?
svn revert
修改后的文件以獲取原始文件 簡單,容易,快速。
只提交過濾的文件列表。
svn ci `ls | grep -v file4`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.