svn 学习

svn命令在linux下的使用

svn命令在linux下的使用
SVN软件版本管理 
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "add test file for my test" test.php
简写:svn ci
4、加锁/解锁
svn lock -m "LockMessage" [--force] PATH
例如:svn lock -m "lock test file" test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
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)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化


1

2

3

4

5

6

7

8

9

svn log         #什么都不加会显示所有版本commit的日志信息:版本、作者、日期、comment。

svn log -r 4:20 #只看版本4到版本20的日志信息,顺序显示。

svn log -r 20:5 #显示版本20到4之间的日志信息,逆序显示。

svn log test.c  #查看文件test.c的日志修改信息。

svn log -r 8 -v #显示版本8的详细修改日志,包括修改的所有文件列表信息。

svn log -r 8 -v -q   #显示版本8的详细提交日志,不包括comment。

svn log -v -r 88:866 #显示从版本88到版本866之间,当前代码目录下所有变更的详细信息 。

svn log -v dir  #查看目录的日志修改信息,需要加v。

svn log http://foo.com/svn/trunk/code/  #显示代码目录的日志信息。


1

2

3

4

5

6

7

8

A:add,新增

C:conflict,冲突

D:delete,删除

M:modify,本地已经修改

G:modify and merGed,本地文件修改并且和服务器的进行合并

U:update,从服务器更新

R:replace,从服务器替换

I:ignored,忽略

9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci
------------------------------------------------------------------------------
以上是常用命令,下面写几个不经常用的
------------------------------------------------------------------------------
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH...
2、mkdir URL...
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。

15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH...
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录

16、代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch --relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。

17、解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH...
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。

18、输出指定文件或URL的内容。
svn cat 目标[@版本]...如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

svn diff个性化定制

svn配置文件: ~/.subversion/config

修改~/.subversion/config,找到如下配置行:

# diff-cmd = diff_program (diff, gdiff, etc.)

将上面那个脚本的路径添加进去就行,修改为

diff-cmd = /usr/local/bin/diffwrap.sh  #绝对路径

这样svn diff命令就会默认使用vimdiff比较文件。

diffwrap.sh文件


1

2

3

4

5

6

7

8

9

10

11

#! /bin/bash

# for svn diff: 修改~/.subversion/config,找到如下配置行:

# diff-cmd = diff_program (diff, gdiff, etc.)

# diff-cmd = ~/bin/diffwrap.sh

# 参数大于5时,去掉前5个参数;参数小于5,失败,什么也不做

shift 5

# 使用vimdiff比较

vimdiff "[email protected]"

转载自:http://www.cnblogs.com/clicli/p/5913330.html

时间: 2024-10-25 00:28:59

svn 学习的相关文章

[No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会在比较差异 和应用补丁时帮助你应对这些修改.你将会在合并和追溯对话框中看到这些设置,它们同样也出现在TortoiseMerge 的设置中. 忽略行结束符 排除仅行结束符的差异. 比较空白 将所有缩进和行内空白差异视为增加/删除的行. 忽略空白修改 排除那些完全是针对空白数量或类型的修改,例如,修改缩

SVN学习小结

SVN是Subversion的简称,是一个开放源代码的版本控制系统,在它的管理下,文件和目录可以超越时空的限制,权且当作一种神奇的"时间机器"吧. 基本功能 版本控制 作为一个版本控制系统,SVN能够及时的更新版本,将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节. 备份 SVN会对你的每一次操作和更改进行备份(为了节省占用空间,多采用增量备份).更改错误.误删.

SVN学习——简单入门之创建仓库、导入、检出(一)

从刚刚参加工作就开始使用svn,清晰的记得那年师姐比较生气的来找我:"你怎么又不更新就提交代码了,把我写的都给覆盖掉了",哈哈~ 虽然一直在用svn,不过在日常工作中主要用到的是简单的操作,而且大多数是基于eclipse插件.客户端小乌龟直接操作的.对于svn的理解还是比较单一的.当然目前除了集中式版本管理工具svn之外,比较火的还有分布式的版本管理工具git. 下面借着学习svnkit的机会,把svn也学习一遍,加深了解~ 官网简单介绍: 官网:http://subversion.a

SVN学习(三)——在Eclipse 中安装和使用SVN客户端插件

0 基本概念了解 0.1 SVN的工作原理:采取客户端/服务器模式——在服务器的版本库中保存项目文件的各个版本,所有参与协同开发的程序员在自己本地电脑上保存一个工作副本.SVN支持程序员将本地副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而是作为一个新的版本被保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一个历史版本. 0.2 SVN基本操作 ①检出(checkout):将一个服务器端创建好的项目整个下载到本地,这是到项

SVN学习一

svn是subversion的缩写形式. svn是一个版本控制软件. 目标: 1.允许开发同时进行工作. 2.不覆盖其他人的文件变化. 3.保持历史的每一个版本. 版本控制系统分为两类: 1.集中式版本控制系统(cvcs) 2.分散式/分布式版本控制系统(dvcs) subversion是集中式版本控制系统. 用到的术语: 资源库:版本控制器系统的中心,存放代码的地方,而且还存放着代码的历史版本. 主干:主干是一个目录,通常作为项目开发人员检出. 标签:标签目录是用来存储的项目命名的快照. 分支

svn学习总结

安装svn subversion服务参考博客http://huihai.iteye.com/blog/1985238 1:svn版本管理的作用 a:备份程序b:代码还原c:协同修改d:查询编写时间以及人员e:实现增量式归档f:权限设定(读写) 2:svn常用的操作checkout:检出,将svn服务器项目检出到本地.update:更新代码,将组内别人写的代码更新.commit:将本地代码提交到svn服务器.synchronized:同步,比较本地与服务器代码的区别. 3:svn服务器的安装 su

svn学习笔记

1, Apache Subversion 官网下载地址: http://subversion.apache.org/packages.html#windows 官网下载提供的一般都是最新版本的,如果想下载其它版本的svn,可以在 http://alagazam.net/ 中选择合适的版本进行下载! 2,Setup-Subversion-1.7.2.msi 安装,并且将bin目录设置到环境变量中(我的版本安装之后,自动设置到了环境变量path中). 3, SVN服务器的创建 1) 创建一个根目录,

svn学习之二(svn+httpd 部署脚本)

#!/bin/shsoft_path=/soft/tooltar_path=/usr/local/srcapr_dir=/usr/local/src/apr-1.5.2 apr_util_dir=$tar_path/apr-util-1.5.4 httpd_dir=$tar_path/httpd-2.4.16svn_dir=$tar_path/subversion-1.9.1pcre_dir=$tar_path/pcre-8.36sqlite_dir=$tar_path/sqlite-autoc

svn学习之一(svn独立服务器搭建)svn钩子了解

SVN实战笔记#####################################################xingxing qq:1218761836 qq群:150181442##################################################### SVN实战  目录SVN实战    1一.SVN简介    1二.SVN运行方式    12.1 svn的访问模式3种    1三.SVN数据格式    23.1 svn 档案库数据格式    2四.

svn学习笔记(一)

1. 检出命令 svn co http://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn co svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn checkouthttp:// 路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn checkoutsvn:// 路径(目录或文件的全路