簡體   English   中英

SVN提交特定文件

[英]SVN Commit specific files

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

我正在終端下的MAC OS X上工作,沒有任何UI。

當然。 只需列出文件:

$ 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 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 file1 file2 dir1/file3

由於我的顛覆狀態,我不得不發揮創造力。 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書在線版中閱讀它們。

試試這個腳本..

#!/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'`

我做一個名為“隱藏”(子)文件夾,將我不想承諾存在的文件。 然后做我的提交,忽略對丟失文件的投訴。 然后將隱藏文件從隱藏文件移回./

我知道這種策略沒有任何缺點。

暫無
暫無

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

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