1.需求
需要歸檔linux sdk的源代碼,於是google搜索了一個命令:
svn add *
把當前目錄下的所有文件添加svn add屬性。
然後用命令:
svn --username [username] commit -m $'this is log.'
提交代碼到svn服務器。
2.問題
今天把sdk代碼從svn服務器check out到本地,編譯,發現編譯失敗。
於是,回到原來的sdk目錄下,執行編譯,編譯成功。
通過比較工具,依次比較原來的sdk目錄和從svn服務器check out到本地的sdk目錄,發現之前歸檔svn時,漏掉了很多文件(主要是:*.so、*.o和*.a文件)。
3.解決
上網查找,找到一個shell腳本,解決了遇到的問題!shell腳本:
files=$(svn st | grep ? | sed 's/\?//g' | sed 's/ //g')
for i in $files; do
svn add $i
done
可以簡化爲一個shell命令:
svn add $(svn st | grep ? | sed 's/[\?][ ]//g')
4.參考
(1)shell腳本(命令)參考文章《Shell 命令行,svn add 需要添加很多文件時的簡化腳本》(鏈接)。