terminal line教學 - SVN提交特定文件




command windows (7)

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

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


Answers

我製作一個名為“hide”的(子)文件夾,將我不想提交的文件移動到那裡。 然後做我的承諾,忽略對丟失文件的投訴。 然後將隱藏文件從隱藏移回到./

我知道這種戰術沒有缺點。


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

$ 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"

當然。 只需列出文件:

$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png

我不知道有辦法告訴它忽略一些特定的文件。 當然,如果你想提交的文件很容易被shell列出,你可以使用:

$ svn ci -m "No longer sets printer on fire" printer-driver/*.c

你也可以讓svn命令從文件中讀取要提交的文件列表:

$ svn ci -m "Now works" --targets fix4711.txt

由於我的顛覆國家,我不得不變得富有創造力。 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

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


除了顯式地列出顯示的文件,如unwindWienczny所示,您可以設置更改列表並簽入這些文件。 這些允許您管理對同一工作副本的不同組更改。

你可以在優秀的SVN書在線版本中閱讀它們。


你基本上把你想要提交的文件放在命令行上

svn ci file1 file2 dir1/file3





svn terminal