SVN中文手册
建议的SVN管理方式
这里只是个人建议
建立好分类目录
对于嵌入式开发来说,不单只有程序,还有程序对应的电路原理图,PCB、关键元器件datasheet、项目需求的资料,也应该放在一起。
版本升级时,我们应该使用trunk目录的版本,再生成新的tags分支。而不是在原来tags目录的基础上进行修改
在本地目录熟悉SVN操作
在正式使用SVN之前,建议先在本地建立一个目录,模拟服务器端,熟悉基本操作
任意新建一个文件夹,右键在此创建版本库
然后再创建一个目录,在其内部svn检出
将项目URL粘贴进去,其它全部默认
用户认证
客户端首次使用,会要求输入用户名密码,这个找服务器管理员索要
如果修改的文件比较多,可以右键检查修改,查看当前修改了哪些文件
可以直接提交,客户端会识别到没有添加到版本控制的文件,并自动添加后提交到服务器
软件会自动识别没有被添加的文件
没有提交到服务器之前,会显示+
撤销修改
如果某个文件被你修改掉了,此时还没有提交到服务器
你希望让它恢复初始的样子,可以使用菜单里的SVN还原
勾选文件并执行后,会恢复到当前版本最初的样子
SVN服务器会把所有的提交都记录,你如果提交了错误的代码, 只能把先保证版本是最新的,然后把修改后的文件恢复到上一个版本的样子,之后再提交,用新版本去覆盖错误的版本,而不能希望通过版本回退解决问题。
如果你发现连续几个版本,都是有问题的,可以直接复原到之前的某个版本,再进行提交。
如果出现冲突,可以参考后面冲突处理的章节。
删除文件
本地纳入版本管理的软件,可以用delete或者右键删除后提交
第二种,右键改名后提交
更新
update,更新,从服务器获取最新文件
如果是多人合作项目,那么别人随时可以上传代码到服务器,我们本地的不一定是最新版本
我们在提交自己的代码之前,就要先更新,保证自己写的部分,和别人没有冲突
如果有冲突,参考后面的解决冲突章节
查看日志
版本库浏览
可以浏览到你项目URL在服务器上某个版本的全部内容
可以切到历史版本,去查看文件,这里的文件都是可以直接打开看的
版本 可以去日志里面去查看
此时代码将会回退到指定的版本。
这个功能只是让你本地的代码恢复指定版本,注意,不建议在这上面修改后,直接提交。
比如我这里修改后直接提交
因此需要先更新到最新的版本
软件会自动将你修改后的代码,和新版本合并,合并后的代码,也不能直接提交,因为很有可能会出现冲突,因此先检查,再提交。
查看文件差异
接上一步,合并后自动弹出提交的对话框,此时双击打开文件,查看前后差异。
平时提交代码之前,记得多看看文件的差异,以免遗漏一些问题
在希望忽略的文件或者文件夹下,右键,增加到忽略列表,recursively就是递归的意思,会把该目录下所有文件全部添加忽略,这样会比较彻底
忽略之后,怎么重新纳入版本管理,还是老地方,选择增加,或者从忽略列表删除
那么我提交的时候,系统就会提示我的副本不是最新的,需要先更新
在更新过程中,系统会提示产生了冲突
为什么会冲突,这里对比一下代码
其中R29代表服务器最新的代码, 版本 为29,R28是我本地的代码, 因为更新之前版本 是28
我们用beyond compare或者winmerge进行对比,发现R28和R29的差异,就是之前在SVN merge里面看到的差异
如果我觉得我的代码更好,那么就把无关内容都删除掉,重新提交即可
直接提交即可
新建分支
我们从主干trunk创建分支,右键trunk目录,选择分支(branches)、标记(tags)
这里提示已经创建完成,其实只是在服务器端完成了复制
分支删除
两种方式,我现在已经有一个分支了
也可以通过版本库浏览器进行删除
修改后提交,可以看到服务器端已经更新了
分支合并
为什么要进行分支合并
比如当前我在trunk目录进行开发,此时我需要进行大量的代码修改,而另一个同事正在补BUG,我们都需要往trunk目录频繁提交代码,此时可能会经常需要去解决冲突。
这时就需要从trunk切出一个分支,我自己在上面一边写,一边提交,不会影响到同事的工作。
在我的功能修改完毕以后,在把分支合并到主干即可。
当然,在我几天时间修改代码期间,可能主干程序已经修改了无数版本,有一些我做了重大修改的文件,可能都已经删除了,那我几天的工作岂不是白费了。
这就要求每天都要把主干目录合并到分支,解决了冲突之后,继续在分支上开发,避免做很多的无用功。
这里就两种情况,都是非常重要的
- 分支合并到主干
- 主干合并到分支
我这里切出来一个分支,并进行了一些修改后提交
代码贮藏
shelve,贮藏
如果工作目录下,代码已经修改了很多,但是还没有改完,所以没有提交
这是突然 告了一个紧急BUG,需要立即进行修复
我们需要把工作目录切换到没有问题的版本,又不希望本地工作内容的丢失,就可以用代码贮藏功能
比如我这里修改了两个文件
这里给贮存工具架起好名字,因为可能贮存了好几个不同时期的代码,需要进行区分
工作完毕后,希望恢复贮存之前的文件,可以取消贮藏
如果有多次贮藏,可能会产生不同的工具架,和不同的版本 ,恢复贮藏的时候要注意。
系统默认软件的调整
如果你安装了一些软件,比如winmerge、beyondcompare之类的软件,系统设置可能会默认去调用外部的程序,这里还是建议默认使用软件内部自带的软件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQM1dCaj-1660485507269)(image/image-20220811200047407.png)]](https://www.iruanshi.com/tt5/wp-content/uploads/2022/12/slt.png)
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8793 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!