![](/img/trans.png)
[英]How to be notified by email when there is a commit of some specific files in 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
顯示M
, A
和~
狀態。 我只想要M
和A
......
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
此命令說找到svn st
輸出的所有行,以M
或A
開頭,使用空格分隔符剪切,然后將colums 8添加到結尾。 將其轉儲到targets.txt並覆蓋。
然后修改targets.txt以進一步修剪文件列表。 然后運行以下提交:
svn ci -m "My commit message" --targets targets.txt
可能不是最常見的用例,但希望它可以幫助某人。
試試這個腳本..
#!/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.