嵌入式/Linux开发,编译工具链都是布置在一个linux服务器下,大家SSH远程登录编译服务器,并将代码当到自己的用户下面,然后windows下编辑,linux下编译。
为保持linux和windows下代码能够同步更新,我们需要确保windows下的svn版本号和linux下的是一致的。
由于windows下首次当代码比较慢、并且windows提交代码默认不带用户熟悉和文件权限,所以对于需要可执行的文件,首次提交都是在Linux下增加。
SVN常用命令
https://blog.csdn.net/qq_38861828/article/details/109804713
svn checkout svn://192.168.40.99/trunk/web
#或
svn co svn://192.168.40.99/trunk/web
首次提交所有代码/文件
#遍历当前目录下的所有未添加的文件,添加到版本控制中
svn add . --no-ignore --force
#仅添加当前目录下的所有未添加的文件
svn add * --no-ignore .
说明:
windows下通过SVN客户端添加文件/目录默认不是不带文件属性的,如make_all.sh
等脚本文件的可执行权限,所以首次添加代码到SVN时,建议在linux下直接使用命令操作。
步骤:
1.配置好本地文件的权限、删除多余不需要添加到SVN的文件;//chmod 配置打包路径打包文件的权限
2.添加提交到SVN;
#方式一:
svn add . --no-ignore --force
svn ci -m "[ADD]添加程序代码到SVN"
#方式二:linux下直接操作`svn add *`默认是不添加如下格式文件的,所以需要先配置global-ignores的值
#默认 global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
#修改为 global-ignores =
svn add *
建议使用方式一最为稳妥,避免漏提交文件。
svn add命令详解
https://blog.csdn.net/huangbaokang/article/details/89382701
svn add 所有文件的命令
https://www.cnblogs.com/caoyongan/p/4208820.html
svn add index.html #文件
svn add web #目录,但是不会添加动态库啥的
svn add web --no-ignore . #强制添加web目录及下面的所有文件,待验证-----上传后,通过命令比对下文件总个数
svn ci -m "[ADD]添加程序代码到SVN"
https://blog.csdn.net/qq_39790633/article/details/103700391
# 提交app目录下的文件
svn commit app -m "[ADD]新增动态库和静态库"
# 提交当前目录下的文件
svn commit -m "[ADD]新增动态库和静态库"
https://blog.csdn.net/mayue_web/article/details/94654023
svn revert -R .
#临时更新到指定版本:例如更新到svn 1001版本
svn up -r 1001
#直接当指定版本
svn co svn://192.168.40.99/trunk/web -r 1001
svn status #验证版本
https://blog.csdn.net/mayue_web/article/details/101108175
三种方式向SVN添加.a文件
https://www.jianshu.com/p/23b4e52ba71d
SVN无法提交*.a和*.so文件
https://www.jianshu.com/p/3b6d8f779aa0
在Linux / UNIX上:
svn list --xml --recursive http://svn.example.org/module/trunk | awk -F'[><]' \ '/^ */ {s+=$3} END {printf("%.1f GiB\n", s/1024/1024/1024)}'
请注意,实际的svn checkout的磁盘使用量基本上是上面计算的两倍,因为在checkout中,工作目录中的文件和.svn特殊目录/目录下的修订版本caching中都有文件。
或者,如果您不太在意RAM使用情况,则使用XPathexpression式计算总和,例如:
printf '%.1f GiB\n' $(svn list --xml --recursive \ http://svn.example.org/module/trunk | xmlstarlet sel -t -v \ 'sum(/lists/list/entry/size) div 1024 div 1024 div 1024')
#或者
printf '%.1f GiB\n' $(svn list --xml --recursive \ http://svn.example.org/module/trunk | xmllint --xpath \ 'sum(/lists/list/entry/size) div 1024 div 1024 div 1024' -)