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 需要添加很多文件时的简化脚本》(链接)。
5.问题仍然存在
使用后面的方法把sdk代码归档svn时,仍然出现:漏掉了很多文件(主要是:*.so、*.o和*.a文件)。感觉上面的方法,并没有能够解决漏掉“*.so、*.o和*.a”等文件的问题。
后来,在网上搜索,发现可以在上面方法基础上,再补充执行以下命令:
svn add . --no-ignore --force
确保不会漏掉“*.so、*.o和*.a”等文件。