拷贝分支:
1. 进入需要创建新分支的svn目录下(svn checkout的简写)
svn co svn://**********
2. 创建一个新的文件夹
mkdir *****
3. copy分支
svn copy svn://************ svn://************* -m "make *** branch"
4. 更新下新分支
svn update
增加文件
svn add ***
提交改动到版本库
svn commit -m "update ***" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
简写 svn ci
svn修改已经提交的文件名 或 移动文件位置
svn move
这个命令同svn copy加一个svn delete等同。
Subversion不支持在工作拷贝和URL之间拷贝,此外,你只可以一个版本库内移动文件
更新
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
查看文件或则目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
删除文件
svn delete path -m "delete test fle"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
发布版本流程:
全量版本:
1、确认需要封版的基线版本的完整性和正确性
2、通过 cp 命令 拷贝版本 到tags分支下,按版本命名规范命名
svn cp svn://.../../branches/... svn://.../.../tags/... -m "......"
增量版本:
1、通过co拷贝一个工作区最终版本的工作区(比如tags或者truk分支),并通过linux 的 cd命令进入目录下
svn co svn://.../.../tags/...
cd .../.../...
2、在该目录下通过merge命令把brancher中的2个svn号 code1和code2的差异合并到tags版本中,code2不写默认为最新版本
svn merge svn://.../.../brancher/...@code1 svn://.../.../brancher/...@code2
3、解决冲突,然后commit
svn commit -m ""
svn解决冲突的选项,如下所示:
(e) edit - change merged file in an editor #直接进入编辑
(df) diff-full - show all changes made to merged file #显示更改至目标文件的所有变化
(r) resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version) #显示所有冲突
(mc) mine-conflict - accept my version for all conflicts (same) #冲突以本地为准
(tc) theirs-conflict - accept their version for all conflicts (same) #冲突以服务器为准
(mf) mine-full - accept my version of entire file (even non-conflicts)#完全以本地为准
(tf) theirs-full - accept their version of entire file (same) #完全以服务器为准
(p) postpone - mark the conflict to be resolved later #标记冲突,稍后解决
(l) launch - launch external tool to resolve conflict
(s) show all - show this list
阅读(1174) | 评论(0) | 转发(1) |