SVN提交特定文件



2 Answers

使用更改列表。 與指定文件相比,優勢在於,您可以在提交之前將所需的所有內容可視化並確認。

$ svn changelist fix-issue-237 foo.c 
Path 'foo.c' is now a member of changelist 'fix-issue-237'.

完成之後,svn現在會為您保留獨立的內容。 這有助於您處理多項更改

$ svn status
A       bar.c
A       baz.c

--- Changelist 'fix-issue-237':
A       foo.c

最後,告訴它承諾改變你想要的。

$ svn commit --changelist fix-issue-237 -m "Issue 237"
Question

有沒有什麼辦法只提交特定文件列表(eq只是SVN想要提交的文件列表之一)。

我正在使用Terminal下的MAC OS X,沒有任何UI。




試試這個腳本..

#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`; 
     do LIST="${LIST} $f $NULL on"; 
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`



由於我的顛覆國家,我不得不變得富有創造力。 svn st顯示MA~狀態。 我只想要MA所以......

svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt

這個命令說找到所有由svn st輸出的以MA開始的行,使用空格分隔符剪切,然後讓colums 8結束。 將它轉儲到targets.txt並覆蓋。

然後修改targets.txt以進一步修剪文件列表。 然後運行下面的提交:

svn ci -m "My commit message" --targets targets.txt

可能不是最常見的用例,但希望它可以幫助某人。




Related



Tags

svn   terminal