簡體   English   中英

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

[英]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命令行的解決方案,因為我們只討論一個文件,為什么不呢?

  1. 將文件復制到臨時位置
  2. svn revert修改后的文件以獲取原始文件
  3. 提交整個存儲庫
  4. 復制修改后的文件

簡單,容易,快速。

只提交過濾的文件列表。

svn ci `ls | grep -v file4`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM