2019-07-27 svn 回退/更新/取消至某个版本命令详解

皮佳骏
1、 对前后端开发了解深刻,
2、 沟通组织管理能力比较突出
3、 对前沿技术兴趣浓厚
4、 对项目的难点也有很好的总结

  1. 取消Add/Delete

取消文件
svn revert 文件名
取消目录
svn revert --depth=infinity 目录名

  1. 回退版本
    方法1: 用svn merge
  1. 先 svn up,保证更新到最新的版本,如20;
  2. 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。如果想要更详细的了解情况,可以使用svn diff -r 10:20 [文件或目录];
  3. 回滚到版本号10:svn merge -r 20:10 [文件或目录],注意版本号之间的顺序,这个叫反向合并;
  4. 查看当前工作版本中的文件,如test.cpp和版本号10中文件的差别:svn diff -r 10 test.cpp, 有差别则手动改之;
  5. 若无差别,则提交:svn ci -m“back to r 10,xxxxx” [文件或目录]。这时svn库中会生成新的版本,如21。
    方法2: 用svn up
    前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注意,这时svn库中并不会生成新的版本,下次svn up之后,还是会回到当前的版本。
    ========================
    改动已经被提交(commit)。
    用svn merge命令来进行回滚。
    回滚的操作过程如下:
    1、保证我们拿到的是最新代码:
    svn update
    假设最新版本号是28。
    2、然后找出要回滚的确切版本号:
    svn log
    假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
    如果想要更详细的了解情况,可以使用svn diff -r 28:25 ""
    svn log -v -r 34 查看当前文件夹下某个版本的修改文件列表信息
    3、回滚到版本号25:
    svn merge -r 28:25 ""
    为了保险起见,再次确认回滚的结果:
    svn diff ""
    发现正确无误,提交。
    4、提交回滚:
    svn commit -m "Revert revision from r28 to r25,because of ..."
    提交后版本变成了29。
    将以上操作总结为三条如下:
  1. svn update,svn log,找到最新版本(latest revision)
  2. 找到自己想要回滚的版本号(rollbak revision)
  3. 用svn merge来回滚: svn merge -r : something
    更新至某个版本
    svn update -r 版本号
    svn help update
    update (up): 将版本库的修改合并到工作副本中。
    用法: update [PATH...]
    如果没有指定版本,则将工作副本更新到 HEAD 版本。否则同步到 -r 选项所
    指定的版本。
    每更新一项就输出一行信息,使用首字符来报告执行的动作。这些字符的含义是:
    A 已添加
    D 已删除
    U 已更新
    C 合并冲突
    G 合并成功
    E 已存在
    R 已替换
    第一列字符报告项目本身。
    第二列表示报告项目属性。
    第三列中的字符“B”表示此文件上的锁被终止或窃取。
    第四列中的字符“C”表示树冲突,同时“C”出现在第一列或第二列,分别表示
    内容冲突或属性冲突。
    如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动
    导致签出失败。 如果障碍路径与版本库中的对应路径类型相同(文件或目录),它
    将成为受版本控制的路径,但是内容不改变。它意味着障碍路径的子孙,也可能
    是障碍路径,同样会受版本控制。对于障碍路径中的文件,如果与版本库内的
    不同,将视为工作副本发生本地修改。版本库中的所有属性都应用于障碍路径。
    用第一列字符 “E” 来报告障碍路径。
    如果工作副本中并没有指定的更新目标,但是有其父目录,那么就在指定路径上
    将目标检出到其父目录中。如果使用了选项 --parents,就会创建目标的所有不
    存在的父目录 (使用选项 --depth=empty)。
    使用“--set-depth”选项设置此操作目标的工作副本之新深度。
    有效选项:
    -r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
    版本参数可以是如下之一:
    NUMBER 版本号
    '{' DATE '}' 在指定时间以后的版本
    'HEAD' 版本库中的最新版本
    'BASE' 工作副本的基线版本
    'COMMITTED' 最后提交或基线之前
    'PREV' COMMITTED的前一版本
    -N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
    --depth ARG : 限制操作深度是 ARG ('empty', 'files',
    'immediates', 或 'infinity')
    --set-depth ARG : 设置工作副本的新深度为 ARG('exclude',
    'empty', 'files', 'immediates', 或 'infinity')
    -q [--quiet] : 不打印信息,或只打印概要信息
    --diff3-cmd ARG : 使用 ARG 作为合并命令
    --force : 强制操作运行
    --ignore-externals : 忽略外部项目
    --changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
    --editor-cmd ARG : 使用 ARG 作为外部编辑器
    --accept ARG : 指定自动解决冲突动作
    ('postpone', 'working', 'base', 'mine-conflict',
    'theirs-conflict', 'mine-full', 'theirs-full',
    'edit', 'launch')
    (shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
    --parents : 创建中间目录
    全局选项:
    --username ARG : 指定用户名称 ARG
    --password ARG : 指定密码 ARG
    --no-auth-cache : 不要缓存用户认证令牌
    --non-interactive : 不要交互提示
    --trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
    --config-dir ARG : 从目录 ARG 读取用户配置文件
    --config-option ARG : 以下属格式设置用户配置选项:
    FILE:SECTION:OPTION=[VALUE]
    例如:
    servers:global:http-library=serf
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 瑜伽馆策划经营管理心得分享 工作流程 前言 √ 这是一个简易的操作流程体系,具体的细节另外阐述; √ 所有流程并非...
    依梵私教瑜伽阅读 2,498评论 0 0
  • 根据河南管理区的安排,3月10日—4月24日,我参加了“河南省第四期省管企业经营管理人员研修班”的培训学习。4月2...
    甘甜的雨露_3b6a阅读 2,299评论 0 0
  • XXX瑜伽馆策划方案 一、瑜伽特性: (1)瑜伽产业已成为继网络经济后的又一迅猛发展行业。年轻时尚的一群人已经迫不...
    依梵私教瑜伽阅读 3,627评论 0 1
  • JavaScript广泛的使用领域 (1)浏览器的平台化 JavaScript 得以调用许多系统功能,比如操作本地...
    Miss娟_e33e阅读 1,560评论 0 0
  • 律师:喝酒出事,同桌不担责的4个条件! 2016-08-26 民商事实务 聚会,亲朋好友欢聚一堂,一起在饭桌上喝点...
    大胜胜阅读 4,400评论 0 0