SVN 命令行的使用
发布日期:2021-06-24 18:14:53 浏览次数:4 分类:技术文章

本文共 2328 字,大约阅读时间需要 7 分钟。

大多数时候我们用TortoiseSVN作为客户端,其实SVN提供了强大的客户端命令行工具,和Git差不不多。

 

1. 查看工作副本修改的整体状况。
$ svn status?       scratch.cA       stuff/lootA       stuff/loot/new.cD       stuff/old.cM       bar.c$

?表示没有加入版本控制,A,D,M分别表示增加,删除,修改。

 

svn status 支持选项 --verbose (-v), 带上该选项后, 命令会输出当前目录中每一项的 状态, 即使是未被修改的项目:

$ svn status -vM               44        23    sally     README                44        30    sally     INSTALLM               44        20    harry     bar.c                44        18    ira       stuff                44        35    harry     stuff/trout.cD               44        19    ira       stuff/fish.c                44        21    sally     stuff/thingsA                0         ?     ?        stuff/things/bloo.h                44        36    harry     stuff/things/gloo.c

 

可以给 svn status 带上选项 --show-updates (-u), 这样 Subversion 就会和仓库通信, 输出工作副本中已过时的项目:

$ svn status -u -vM      *        44        23    sally     READMEM               44        20    harry     bar.c       *        44        35    harry     stuff/trout.cD               44        19    ira       stuff/fish.cA                0         ?     ?        stuff/things/bloo.hStatus against revision:   46

Status against revision: 46*表示远程仓库的文件已经发生修改,如果合并会可能发生冲突。

2.  撤销工作副本的修改
$ svn revert 2.txt已恢复“2.txt”

  svn revert 提供了一个很好的补救机会, 否则的话, 用户就得花费大量的时间, 自己一点一点地手工撤消修改, 又或 者采用一个更麻烦的做法, 直接删除工作副本, 然后重新从服务器上检出一个 干净的工作副本.

3. 解决冲突
3.1 手动解决冲突

首先看一下发生冲突后的文件内容:

$ cat sandwich.txtTop piece of breadMayonnaiseLettuceTomatoProvolone<<<<<<< .mineSalamiMortadellaProsciutto=======SauerkrautGrilled Chicken>>>>>>> .r2Creole MustardBottom piece of bread

 分别由小于号, 等号和大于号组成的行是冲突标记, 它们不是冲突数据 的一部分, 用户通常只需要确保在提交前把它们都删除掉即可. 前两个标记之 间的文本是用户的本地修改.

<<<<<<< .mineSalamiMortadellaProsciutto=======

  后两个标记之间的内容是别人提交的修改:

=======SauerkrautGrilled Chicken>>>>>>> .r2

  这里去掉别人提交的内容

Top piece of breadMayonnaiseLettuceTomatoProvoloneSalamiMortadellaProsciuttoCreole MustardBottom piece of bread

  使用命令 svn resolve 移除文件的冲突状态后, 接下来就可以提交修改了:

$ svn resolve --accept working sandwich.txtResolved conflicted state of 'sandwich.txt'$ svn commit -m "Go ahead and use my sandwich, discarding Sally's edits."

  --accept=working 告诉 Subversion 把文件的当前内容作为冲突解决后的状态,svn resolve 会删除目录下的三个临时文件, 将用户指定的 文件版本作为冲突解决后的最终版。

3.2 全丢弃自己的修改
svn resolve --accept theirs-full CONFLICTED-PATH
3.3 丢弃当前的所有修改
$ svn revert  filename

  

 

 

转载地址:https://blog.csdn.net/weixin_34248258/article/details/86130312 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Laravel删除产品-CRUD之delete(destroy)
下一篇:萝卜保卫战3内购破解+Toast窗口增加(Love版)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月03日 07时54分36秒