一次向svn中增加所有新增文件 svn add all new files

以下摘自:《卓有成效的程序員》之自動化

        我經常會一次往Subversion裏添加一批文件。在使用命令行做這件事時,你必須指定所有想要添加的文件名。如果文件不多的話這還不算太糟糕,但如果你要添加20個文件,那就費事了。當然你也可以用通配符,但這樣一來就可能匹配到已經在版本控制之下的文件(這不會有什麼損害,只不過會輸出一堆錯誤信息,可能會跟別的錯誤信息混淆)。爲了解決這個問題,我寫了一行簡單的bash命令:

  svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add

  表4.3詳細解釋了這一行命令。

 

  我大概花了15分鐘寫出這條命令,然後用了它成百上千次。

      ****************************************************

      這個自動化過程已經很完美了,一個“簡單”的shell腳本,這是一個權威編寫並使用了百上千次的腳本。

然後我在一個博客中看到這樣一個腳本:

svn st|awk '{print $2}'|xargs svn add。

乍看之下覺得更加精煉,仔細看下就會發現這個腳本沒有區分文件狀態。所以完善了以下這個腳本:

  1. svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add  

這樣,以後我可能使用這個腳本成百上千次。(當然這個腳本也沒有考慮過濾掉不要添加的文件)

當你第三次做一件事情的時候,就應該考慮將其工具化,自動化!


推薦圖書:卓有成效的程序員

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章