svn 常用命令

文章目录

  • 背景
  • svn checkout
  • svn add
  • svn commint 提交文件
  • svn revert 恢复已修改的文件
  • svn diff 比较差异
  • svn 其他命令
  • svn 追加文件可执行权限
  • 参考资料

背景

嵌入式/Linux开发,编译工具链都是布置在一个linux服务器下,大家SSH远程登录编译服务器,并将代码当到自己的用户下面,然后windows下编辑,linux下编译。

为保持linux和windows下代码能够同步更新,我们需要确保windows下的svn版本号和linux下的是一致的。

由于windows下首次当代码比较慢、并且windows提交代码默认不带用户熟悉和文件权限,所以对于需要可执行的文件,首次提交都是在Linux下增加。

svn checkout

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

首次提交所有代码/文件

#遍历当前目录下的所有未添加的文件,添加到版本控制中
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"

svn commint 提交文件

https://blog.csdn.net/qq_39790633/article/details/103700391

# 提交app目录下的文件
svn commit app -m "[ADD]新增动态库和静态库"

# 提交当前目录下的文件
svn commit -m "[ADD]新增动态库和静态库"

svn revert 恢复已修改的文件

https://blog.csdn.net/mayue_web/article/details/94654023

svn revert -R .

svn diff 比较差异

svn 其他命令

#临时更新到指定版本:例如更新到svn 1001版本
svn up -r 1001

#直接当指定版本
svn co svn://192.168.40.99/trunk/web -r 1001
svn status #验证版本

svn 追加文件可执行权限

https://blog.csdn.net/mayue_web/article/details/101108175

参考资料

  1. linux查看svn用户名和密码
  2. Linux SVN 切换用户

三种方式向SVN添加.a文件
https://www.jianshu.com/p/23b4e52ba71d

SVN无法提交*.a和*.so文件
https://www.jianshu.com/p/3b6d8f779aa0

  • 确定SVN目录/ TRUNK的总大小

在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' -) 

你可能感兴趣的:(工具,linux命令,svn)