我經(jīng)常會一次往Subversion里添加一批文件。在使用命令行做這件事時智玻,你必須指定所有想要添加的文件名遂唧。如果文件不多的話這還不算太糟糕,但如果你要添加20個文件吊奢,那就費(fèi)事了盖彭。當(dāng)然你也可以用通配符,但這樣一來就可能匹配到已經(jīng)在版本控制之下的文件(這不會有什么損害页滚,只不過會輸出一堆錯誤信息召边,可能會跟別的錯誤信息混淆)。為了解決這個問題裹驰,我寫了一行簡單的bash命令
svn st | grep'^\?'| tr'^\?'''| sed's/[ ]*//'| sed's/[ ]/\\ /g'| xargs svn add?(當(dāng)文件名有空格時 不可用)
然后我在一個博客中看到這樣一個腳本:
svn st|awk '{print $2}'|xargs svn add隧熙。
乍看之下覺得更加精煉,仔細(xì)看下就會發(fā)現(xiàn)這個腳本沒有區(qū)分文件狀態(tài)幻林。所以完善了以下這個腳本:
svn?st?|?awk'{if?(?$1?==?"?")?{?print?$2}}'|?xargs?svn?add?(當(dāng)文件名有空格時 不可用)
以上from:http://blog.csdn.net/spare_h/article/details/6677435
另外贞盯,svn刪除已經(jīng)被刪掉的文件也很麻煩,我把上面的命令改了一下沪饺,這樣可以批量svn del目錄下所有已經(jīng)被刪除的文件
svn st | grep'^\!'| tr'^\!'''| sed's/[ ]*//'| sed's/[ ]/\\ /g'| xargs svn del
精簡版:
svn?st?|?awk'{if?(?$1?==?"?")?{?print?$2}}'|?xargs?svn?del?(當(dāng)文件名有空格時 不可用)