现在的公司改用svn

时间:2021-12-21 02:12:14

以前在公司一直使用git,此刻的公司改用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,但愿能够辅佐大家快速上手,如果想更细致的了解相关内容,可以点击每个小节里供给的的链接。

1、Windows下命令行工具:

发明本来安置的tortoisesvn已经集成到shell中,不能在命令行下使用。于是找到这个

下载Apache Subversion command line tools,这是一个可以在cmd下使用的命令行工具,解压后把里面bin目录这个路径添加到环境变量的path,这样在cmd下就可以使用了,和linux下使用svn的习惯一样了。

 

2、简明教程:

 

目录约定:

/trunck:开发主线

/branches:支线副本

/tags:标签副本(一旦创建,不允许改削)

1)使用trunk作为主要的开发目录

一般的,我们的所有的开发都是基于trunk进行开发,当一个版本(release)开发告一段落(开发、测试、文档、制作安置措施、打包等结束后),代码处于冻结状态(酬报规定,可以通过hook来进行打点)。此时应该基于当前冻结的代码库,打tag。

当下一个版本/阶段的开发任务开始时,继续在trunk进行开发。此时,如果发明了上一个已刊行版本(Released Version)有一些bug,或者一些很急迫的成果要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本长进行改削了。解决要领是基于刊行版对应的tag,做相应的分支(branch)进行开发。

2)下图为struts2的SVN货仓目录:

现在的公司改用svn

3、常用命令

svn help

svn --version

svn --version --quiet    只显示版本号

svn checkout 地点

svn add 文件或者文件夹    增加本地数据随处事器

svn commit / svn ci -m “注释”  文件名   提交代码,,要先add才commit

svn update / svn up 不必跟特定的文件或目录,也可以本身指定需要更新的文件或目录。每次commit或者窜改之前最好更新一下。

svn log

svn delete 文件名

svn resolve 路径 --accept working    解决斗嘴

svn switch 长途路径    版本切换

svn list 路径 / svn ls    列出版本库下的文件和目录

svn merge -r m:n 路径     合并文件,从版本号m到版本号n的长途分支都合并到当前分支中

svn info 确认事情目录的svn信息

svn diff -r m:n 路径    对版本m和版本n对照差异

svn cleanup     为掉败的掉误*

svn status -v    在本地进行代码改削,查抄改削状态

svn import 长途路径 --message “message”   将当前路径下文件导入到版本库中

svn export 长途路径    导出一份洁净的项目

svn move/ svn mv 原文件名 新文件名    重定名

svn mkdir 文件名

svn copy / svn cp 源文件路径 新文件路径

svn revert 文件名     只能恢复未提交之前的操纵

若要还原已提交的窜改:只能用旧文件笼罩新文件。操纵如下:

    1)sun up    让本地事情拷贝更新到最新状态

    2)svn log your_file_path     检察文件日志,这时候提交时填写的说明信息就派上用场了

    3)svn diff -r 旧修订版序号:新修订版序号 your_file_path    检察两个修订版之间的差别。

    4)决定用哪个旧的修订版号后,用旧的修订版号文件笼罩新的修订版号文件。svn merge -r 新修订版序号:旧修订版序号 your_file_path

    5)svn commit -m "恢复到某修订版(某修订版作废)"

本地的版本叫做working copy

 

4、关于merge

branch主要用于新成果的开发 合并产生在本地working copy,只要你不提交就不会影响到repository 合并前必然要先update、commit,保证不会out of day,并将本地的改削生存到repository branch和trunk并行开发的过程中,要经常同步,将trunk的改削合并到branch,合并时选择"Merge a range of revision" branch最后合并回trunk时,merge type选择"Reintegrate a branch"

不管是从trunk合并到branch还是最终从branch合并回trunk,在每次合并前最好先update,然后将本地的改削先全部commit,掩护好现场,万一合并不抱负随时都可以revert 

 

5、关于解决斗嘴

产生斗嘴之后会呈现三个姑且文件:

XXX.mine XXX.r1 XXX.r2

一旦解决了斗嘴,需用svn resolved让subversion知道,这样就会删除这三个姑且文件,斗嘴状态解决。

三种解决方法:

手工合并斗嘴:需要将斗嘴标识表记标帜删除

用某一个姑且文件笼罩本身的事情文件

用svn revert 放弃本地改削,不需要执行resolved

 

6、高级教程 很棒!!

https://i18n-zh.googlecode.com/svn/www/svnbook-1.4/index.html

 

7、Git和SVN的区别