SVN常见命令

本文详细介绍了SVN的下载安装、常见操作,包括Checkout、Update、Commit等,并讲解了分支合并及冲突解决方法,如多分支合并主干、解决Merge冲突的策略和步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVN的下载安装

下载地址:https://tortoisesvn.net/downloads.zh.html

SVN常见操作

  1. 迁出配置库内容:
    svn checkout
    在这里插入图片描述
    1)新建或进入目录下(比如E盘),右键 →SVN Checkout
    2)URL of repository 填写仓库路径即可
    3)Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。
    4)点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中:
    在这里插入图片描述

  2. 更新文件:
    SVN Update
    1)当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。
    在这里插入图片描述
    2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:
    若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突
    在这里插入图片描述

  3. 提交更新
    SVN Commit
    在这里插入图片描述

  4. 增加文件
    Add
    在这里插入图片描述

  5. 删除文件
    Delete
    在这里插入图片描述

  6. 检查更新
    Check for modifications

  7. 撤销更改
    Revert
    在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert…”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。

  8. 锁定和解锁
    Get lock and Release lock
    当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock…”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。 当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。
    选中被锁定的文件右键选择“Tortoise SVN”的“Release lock…”项进行解锁。

  9. 重命名文件
    Rename
    修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit…”提交到SVN服务器上。

  10. 获取历史文件(Show log)
    Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:
    在这里插入图片描述

SVN的分支合并及冲突的解决方法

  1. svn多分支合并主干方法
    分支a合并到本地主干后,本地主干提交代码到svn主干,这时主干版本改变,分支b再提交代码到主干会报冲突,版本不统一,这时的解决办法是:
    方法1.将主干代码合并到分支b,提交分支b代码到主干即可。
    方法2.将分支b代码合并到分支a,提交分支a代码到主干即可。
    总之,要避免主干提交后,主干和另一分支的版本冲突问题即可。

  2. svn多分支合并主干冲突:svn Working copy and merge source not ready for reintegration
    猜测原因:分支主干版本不一致,导致同一文件被认为是不同文件,所以无法合并(A,B两文件合并时也报此错)
    解决方法:
    分支合并主干产生冲突问题: svn Working copy and merge source not ready for reintegration
    在使用svn的merge过程中,遇到了N多的麻烦
    这次遇到的麻烦的具体表现为:
    在主干合并分支中的代码,报错
    解决办法为:
    假如需要合并的文件名为:TestImpl.java
    1.在主干的文件上,右键->Team->Copy->选择分支的路径->OK.
    2.到分支的文件夹中找到新copy进来的文件,就是Copy Of TestImpl.java
    3.把分支的TestImpl.java改名为TestImpl2.java
    4.把Copy Of TestImpl.java改名为TestImpl.java
    5.把TestImpl2.java的内容全部覆盖掉TestImpl.java中的内容
    6.把TestImpl.java文件名中的TestImpl2全部改为TestImpl
    7.删除Copy Of TestImpl.java
    8.提交分支的TestImpl.java
    9.在主干的TestImpl.java上进行合并.这个时候svn就不报错了,可以正常的合并代码了
    这个错误造成的原因,应该是主干与分支的文件,没有关联关系.通过以上步骤,相当于是给主干和分支建立了关联关系,他们有了主次关系,才能进行合并.
    可是有一点不明白的是,我分支的TestImpl.java是新建的,并且已经通过merge给了主干,但是改了分支后,再在主干merge的时候,却报出了以上的错误。
    3)分支合并主干示例 (附例)
    1.主干工程右键选择 merge 合并下一步
    2.选中 merge two different trees 下一步
    3.from 主干版本路径,版本号选择分支分出去的版本号
    to 合并的分支目录,版本号一般最新版本
    下一步
    4.选择属性,一般直接下一步即可
    5.下一步完成。若无冲突直接主干提交代码即可。
    若存在冲突解决办法,个人建议使用最后一种解决冲突
    Mark as conflicted. I will deal wiht it later. --标记冲突,合并到主干解决冲突
    Resolve the conflict by using my version of the file. --直接用主干的文件覆盖,分支修改无效
    Resolve the conflict by using the incoming of the file. --直接用分支修改覆盖主干,以分支为准
    Let me edit the file with conflict markers inserted. --直接编辑冲突,编辑完保存,选择yes保存。
    Launch a graphical conflict resolution editor.–直接比对文件,修改冲突,点击保存。选择yes解决冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值