svn checkout [url] [dir]: 从版本库中检出代码到本地文件夹

svn status :查看当前工作副本的代码变更状态信息

svn diff [file]:比对工作副本与版本库之间的差异

svn update:更新当前工作副本到版本库最新版本

svn log [file];  查看文件的日志修改信息(写全路径,比如:app/index.vue)

svn add [file | dir ...]: 将文件或目录加入到工作副本的版本控制中

svn commit [file ...] -m 'message of commit': 提交工作副本的变更到版本库

svn copy http://[路径]/trunk http://[路径]/branches/dev_[name] -m '分支说明'     : 创建分支

svn switch http://[路径]/branches/dev_[name]            :切换到分支

svn list http://[路径]/branches --verbose :显示所有分支

svn rm [分支路径]   :删除分支

svn log -v -r 1:HEAD --limit 1 --stop-on-copy    :查看当前分支从哪个支线创建而来

svn info     : 查看当前工作副本或分支的信息

svn add [file | dir ...]        : 将文件或目录加入到工作副本的版本控制中

svn delete [file | dir ...]     : 将文件或目录从工作副本的版本控制中删除

svn mergeinfo http://xxx   :查看分支merge信息

svn revert [file | dir ...]      :改动没有被提交(commit)时,使用svn revert取消之前的修改

svn --version               :查看svn软件版本

svn revert -R .     :撤销所有更改

SVN更新的时候,前面字母的含义:

U: 表示从服务器收到文件更新了
G: 表示本地文件以及服务器文件都已更新,而且成功的合并了
A: 表示有文件或者目录添加到工作目录
R: 表示文件或者目录被替换了.
C: 表示文件的本地修改和服务器修改发生冲突

svn只合并指定文件夹(要求:分支的目录对应好):

1. 进入当前分支的指定文件夹,比如:cd .../[dir_name]

2. svn merge --dry-run http://svn..../trunk/[dir_name]

合并单个文件(进入分支里与主干对应的目录下):

$ cd myproj
$ svn merge -r 30:31 [主干或分支http路径]/myproj/thhgttg.txt
U thhgttg.txt
svn merge -r 17888:18665 svn://192.168.1.80:3698/C/branches/pirate/rpcfw/specialactivety

        —左侧:初始版本树
       —右侧:目标版本树
 
解决冲突
     1.运行 svn status:查看合并的信息
     2.有冲突的文件会生成四个文件
              filename.txt.merge-left.r18665
              filename.txt.merge-right.r17888 
              filename.txt.working // 所在分支的内容
              filename.txt  // 包括全部冲突内容
     3.修改 filename.txt 文件中的冲突部分
     4.运行 svn resolved filename.txt 删除生成的冗余文件
注意:right部分,是指合并的来源;left部分,是指合并目标的基线;working,是指合并的当前工作副本。

svn 字母含义:

U:表示从服务器收到文件更新了
G:表示本地文件以及服务器文件都已更新,而且成功的合并了
A:表示有文件或者目录添加到工作目录
R:表示文件或者目录被替换了
C:表示文件的本地修改和服务器修改发生冲突

问号:未纳入SVN控制之下的新文件 
感叹号:已经修改过还没上传的文件 
红叉:准备删除尚未提交 
绿勾:从服务器上取下来没修改过的文件 
黄色感叹号:发生冲突 
蓝色加号:准备加到服务器上还没提交

当两个分支,同时修改了同一个地方,那svn就搞不清楚到底哪个才是需要保留的代码,因为代码冲突就产生,这是需要程序员自己去解决冲突的,换句话说,解决冲突就是帮助svn选择到底如何取舍两次被改的代码。

忽略代码目录下的 npm 相关的 node_modules 目录

在 ~/.subversion/config 中加入

global-ignores = node_modules 

svn resolve --accept working -R [path]      :解决树冲突(Tree conflicts)

问题描述:
由于未使用svn mv或者svn del的方法操作由svn管理的目录,导致working copy和svn仓库的目录不一致,导致tree conflict
解决方法:
在有目录冲突的目录下,执行如下svn命令,解决目录冲突。
svn resolve --accept working -R .

svn查看历史版本:

svn log [dir]/[name]

会显示:

r66860 | chenanguo | 2017-03-24 17:20:37 +0800 (Fri, 24 Mar 2017) | 1 line

流程重构

显示该版本文件内容:

svn cat -r r66860 [dir]/[name]

查看各个版本文件的差异:

svn diff -r94239 [dir]/[name]     与当前版本的差异

svn diff -r94239:94127 [dir]/[name]    2个版本的差异

svn主干合并到分支:

1.切换到分支;

2.运行:svn merge --dry-run -r 13881:14094 [主干http路径]

建议在svn merge之前先加上参数 --dry-run,做一个合并的测试,并不是真正的合并,只是让你可以看到哪些文件发生了变化,是否有合并冲突。

13881为分支创建前的trunk版本号,14094为trunk当前版本号(在主干目录,svn up 命令可以顺便获取到)。

分支创建前的版本号,忘了怎么办?在分支目录下,执行 svn log --verbose --stop-on-copy 命令,最后打印出的版本号是创建此分支后trunk的版本号。

这个版本号减去1就可以算出分支创建前的trunk版本号。

3.没有问题就去掉--dry-run参数,正式合并

svn merge -r 13881:14094 [主干http路径]

4.解决冲突,提交代码(别忘了这一步,svn合并不会自动提交代码)

svn commit -m "svn merge -r 13881:14094 [主干http路径]"

遇到问题:

分支和主干上有一样的文件,主干合并到分支时,提示:Tree conflicts。

解决:

1.分支下,删除文件:svn delete [文件名]。

2.分支下,标记为解决:svn resolved [文件名],再执行merge。

svn简写:

原命令 简写
svn commit

svn ci

svn checkout

svn co

svn update

svn up

svn status

svn st

svn delete

svn del

svn diff

svn di

创建分支步骤:

1.  svn copy http://[路径]/trunk http://[路径]/branches/dev_[name] -m '[分支说明]'      :创建分支。

2.  mkdir [dir]        :创建文件夹

3. svn checkout http://[路径]/branches/dev_[name] [dir]      :从版本库中检出代码到本地文件夹。

出现冲突时,svn up 出现

  select: (p) postpone, (df) diff-full, (e) edit,  //(p) 推迟,(df) 显示全部差异,(e) 编辑,

(mc) mine-conflict, (tc) theirs-conflict,   //(mc) 我的版本, (tc) 他人的版本,

(s) show all options:                            //(s) 显示全部选项:

一般选择p,将冲突文件下载到你本地来处理。

svn resolve --accept [base | working | mine-conflict | theirs-conflict | mine-full | theirs-full] [conflicting file]

参数  说明
base 将[your_file].merge-left.[version]做为最终结果,恢复到冲突前的一个版本
working 把[your_file]解决冲突后的结果做为最终结果
mine-conflict 将[your_file].working做为最终结果
theirs-conflict 将[your_file].merge-right.[version]做为最终结果
mine-full 将所有[your_file].working做为最终结果
theirs-full 将所有[your_file].merge-right.[version]做为最终结果

问题:为什么svn解决冲突时,ttf woff eot 会显示下面的报错?

命令:svn resolve --accept mine-full static/src/assets/iconfont.woff
结果:svn: warning: W155027: Conflict on '/Users/yixia/Documents/Projects/creator.miaopai.com/trunk/static/src/assets/iconfont.woff' could not be resolved because the chosen version of the file is not available.
svn: E155027: Failure occurred resolving one or more conflicts

当update的时候遇到如下问题:

svn status
  D C ~/workspace/test/a.c
    > local unversioned, incoming add upon update
  Summary of conflicts:
  Tree conflicts:

用如下办法解决:

① svn resolve --accept working ~/workspace/test/a.c
  Resolved conflicted state of '~/workspace/test/a.c'
②svn revert ~/workspace/test/a.c
  Reverted'~/workspace/test/a.c'
svn status

找回之前版本上的文件:

1. svn up -r [版本号]

2. 将需要的文件备份

3. 执行 svn up,到最新版本

4. 将文件修改,提交,完成。

svn 重新打包步骤:

1. 删除原来的 dist 文件夹;

2. svn 提交;

3. 重新打包,提交新打包的文件。

svn知识点的更多相关文章

  1. SVN知识点整理

    Eclipse安装SubVersion插件 Help -> Install new software... -> add Name : Subversion Location : http ...

  2. svn相关知识点

    1.查找linux操作系统:uname -a 2.svn 安装:yum install -y subversion 3.svn操作命令 a.将文件checkout到本地目录: svn co svn:/ ...

  3. C#知识点:委托、事件、正则表达式、SVN、找按段等差递增至不变序列的规律

    using System; using System.Collections.Generic; using System.Text; namespace Delegate { //定义委托,它定义了可 ...

  4. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

  5. 前端开发面试知识点大纲--摘自jackyWHJ

    前端开发面试知识点大纲:HTML&CSS:    对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...

  6. Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结

    Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结 分类具体知识点原理规范具体实现(oracle,mysql,mssql是否可以自己实现说明 数据库理论数据库的类型 数据 ...

  7. Atitit 编程语言知识点tech tree v2 attilax大总结

    Atitit 编程语言知识点tech tree v2 attilax大总结 大分类中分类小分类知识点原理与规范具体实现(javac#里面的实现phpjsdsl(自己实现其他语言实现 类与对象实现对象实 ...

  8. ahjesus Ubuntu配置svn服务器

    转载自http://www.cnblogs.com/ximu/articles/2119136.html 亲测可用 一.SVN安装1.安装包$ sudo apt-get install subvers ...

  9. Memcache知识点梳理

    Memcache知识点梳理 Memcached概念:    Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HAS ...

随机推荐

  1. OAF日志使用总结

    本文的完成感谢葛严大神授权使用LogUtil类,其次感谢Tavor大神的EBS OAF开发日志(见: EBS OAF开发中日志(Logging) ). 日志的使用是一门极大的学问,若读者有兴趣,可以自 ...

  2. 共享内存创建shmget控制操作shmat,shmctl

    1.共享内存的数据结构 共享内存就是分配一块能被其他进程访问的内存.每个共享内存段在内核中维护着一个内部结构: struct shmid_ds { struct ipc_perm shm_perm; ...

  3. WEB-ERROR-PAGE

    首先需要在Web.xml文件中配置如下标签:     <error-page>        <error-code>404 </error-code>       ...

  4. codeforces 851C Five Dimensional Points(鸽巢原理)

    http://codeforces.com/contest/851/problem/C 题意 - 给出 n 个五维空间的点 - 一个点a为 bad 的定义为 存在两点 b, c, 使的<ab, ...

  5. Oracle/MySQL decimal/int/number 转字符串

    有时客户需要流水数据,当导出为excel的时候,客户编号等很长数字的栏位,被excel变成科学记数法,无法正常查看. 因此,需要将Oracle/MySQL中的decimal/int 转 varchar ...

  6. 在 Ubuntu 14.04 Chrome中安装Flash Player(转)

    在 Ubuntu 14.04 中安装 Pepper Flash Player For Chromium  一个 Pepper Flash Player For Chromium 的安装器已经被 Ubu ...

  7. L1-036 A乘以B

    看我没骗你吧 —— 这是一道你可以在 10 秒内完成的题:给定两个绝对值不超过 100 的整数 A 和 B,输出 A 乘以 B 的值. 输入格式: 输入在第一行给出两个整数 A 和 B(−100≤A, ...

  8. spring入门程序编写

    1.导入jar包

  9. 关于LUN和卷的思考

    LUN:logical unit number 是指硬件层分出的逻辑盘,OS仍然把这些逻辑盘看成是物理盘. 例如将一个1PB磁盘柜划分为100个相同大小的lun,那么每个lun的大小就是10TB,lu ...

  10. 强大的安卓手机远程管理工具 – Droidjack

    免责声明:本站提供安全工具.程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Droidjack是一款针对安卓手机远程管理工具,你可以利用它在PC上对手机进行远程操控,不仅功能强大,使用 ...