svn知识点
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 字母含义:
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知识点的更多相关文章
- SVN知识点整理
Eclipse安装SubVersion插件 Help -> Install new software... -> add Name : Subversion Location : http ...
- svn相关知识点
1.查找linux操作系统:uname -a 2.svn 安装:yum install -y subversion 3.svn操作命令 a.将文件checkout到本地目录: svn co svn:/ ...
- C#知识点:委托、事件、正则表达式、SVN、找按段等差递增至不变序列的规律
using System; using System.Collections.Generic; using System.Text; namespace Delegate { //定义委托,它定义了可 ...
- 【转】HTML5的小知识点小集合
html5的小知识点小集合 html5知识 1. Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...
- 前端开发面试知识点大纲--摘自jackyWHJ
前端开发面试知识点大纲:HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结 分类具体知识点原理规范具体实现(oracle,mysql,mssql是否可以自己实现说明 数据库理论数据库的类型 数据 ...
- Atitit 编程语言知识点tech tree v2 attilax大总结
Atitit 编程语言知识点tech tree v2 attilax大总结 大分类中分类小分类知识点原理与规范具体实现(javac#里面的实现phpjsdsl(自己实现其他语言实现 类与对象实现对象实 ...
- ahjesus Ubuntu配置svn服务器
转载自http://www.cnblogs.com/ximu/articles/2119136.html 亲测可用 一.SVN安装1.安装包$ sudo apt-get install subvers ...
- Memcache知识点梳理
Memcache知识点梳理 Memcached概念: Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HAS ...
随机推荐
- IOS-底层数据结构
Objective-C底层数据结构 类的数据结构 Class(指针) typedef struct objc_class *Class; /* 这是由编译器为每个类产生的数据结构,这个结构定义了一 ...
- Quartz定时任务和IIS程序池闲置超时时间冲突解决方案
一.问题描述 Bs项目中用Quartz功能执行一个定时任务(每隔5分钟执行一个Job),正常情况,Quartz定时任务会5分钟执行一次,但IIS程序池闲置 超时默认为20分钟,造成的结果是:定时任务只 ...
- 最全的CSS浏览器兼容问题【CSS技巧 】
CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格 ...
- bzoj1599
题解: 暴力枚举每一种可能性 代码: #include<bits/stdc++.h> using namespace std; int s1,s2,s3,ans,num; int main ...
- bzoj4001
题解: 答案就是n*(n+1)/2/(2*n-1) 代码: #include<bits/stdc++.h> double n; int main() { scanf("%lf&q ...
- delphi image控件上画矩形的问题
画的时候发现鼠标点的位置和矩形的位置有偏移 后来查看发现是由于image控件时stretch属性设置为true,这样在画的时候是缩放了的 也就是画到image显示的图片上去了 所以如果要画矩形,要按照 ...
- Java——多线程常见面试题
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- C/C++除法实现方式及负数取模详解
一.下面的题目你能全做对吗? 1.7/4=? 2.7/(-4)=? 3.7%4=? 4.7%(-4)=? 5.(-7)/4=? 6.(-7)%4=? 7.(-7)/(unsigned)4=? 答案: ...
- DevExpress v17.2最新版帮助文档下载大全
DevExpress v17.2.4帮助文档下载列表大全来啦!包含.NET.VCL.HTML/JS系列所有帮助文档,提供CHM和PDF两个版本.除已停止更新的Silverlight.Windows 8 ...
- MyEclipse移动开发教程:设置所需配置的iOS应用(四)
MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.创建配置文件 Provisioning profiles授权文件应用程序在iOS设备上安装并运 ...