SVN是CVS的下一个版本,主要用来进行版本控制,可以对程序代码,音频,视频以及图像文件等,做版本控制。
目录以及文件是Subversion中可以记录版本的对象。其主要工作原理如下图:
_ _ _ _ _ _ _ _ _ _
/ \
| |
| 项目仓库 |
| |
\_ _ _ _ _ _ _ _ _ _/
/ |
/ check in |
check out / |
_ _ _ _ _ _ /_ _ _|_ _ _ _ _ _ _
/ \ / \
| | | |
| 工作拷贝 | | 工作拷贝 |
| | | |
\_ _ _ _ _ _ _ _/ \_ _ _ _ _ _ _ _/
分支,主干,合并,标签
创建一个分支或者标签时,采用一种"延迟拷贝"的技术,即只创建指向同一版本的链接,当其中某个文件有所改动时,再去复制那个文件或者目录。
一般地来讲,分支是用来做准备发布的,而不是并行开发。
1、创建一个项目仓库
svnadmin create /home/huzza/test_svn
2、import初始文件到项目仓库中
svn import -m source_file_path URL
本例 URL:file:///home/huzza/test_svn/sesame/trunk
file:// ------> 告诉svn是本地目录
3、checkout文件到本地目录
svn checkout(co) file:///home/huzza/test_svn/sesame/trunk sesame
4、检查文件状态或者日至
svn status [文件/目录]
svn log [文件/目录]
svn log -r6:8 [文件/目录] 查看版本6到版本8之间的日志
5、文件/目录比较(工作拷贝与项目创库中的比较)
svn diff [文件/目录] 或者 svn diff --rHEAD [文件/目录] --rHEAD:表示最新版本
6、更新本地工作拷贝,提交工作修改
svn update(up) [文件/目录] svn checkin(in) -m"comments" [文件/目录]
update时的一些文件标志:
U ------ 表示文件被更新
G ------ 表示项目创库中的文件和本地工作拷贝的文件合并到了一起
C ------ 表示合并时,有冲突产生
A ------ 新加入了一个文件
D ------ 删除了一个文件
? ------ 表示该文件或者目录没有被svn管理
M ------ 该文件被修改
7、冲突。当svn update时,如果存在某个文件存在冲突,打开冲突的文件,<<<<<<<< 和 >>>>>>>> 表明了冲突发生的地方。
当冲突发生时,如果想使用项目仓库中的版本,而放弃本地拷贝的修改,可以使用以下命令:
a、svn revert [冲突的文件/目录]
b、svn update [冲突的文件/目录]
(svn resolved [文件/目录] && svn updata [文件/目录],似乎也是ok的,需要confirm一下)
如果想保留本地工作拷贝的修改,而放弃项目仓库中版本的修改,可以如下:
a、cp 文件/目录.mine 文件/目录
b、svn resolved 文件/目录
c、svn ci -m "use my version please" 文件/目录
(在上面的三个步骤中,似乎不用做步骤a也可以达到目的)
8、使svn项目仓库联网
启动svn服务器:svnserve --daemon --root /home/huzza/test_svn
列服务器资源:svn list svn://192.168.0.4/sesame/trunk
出来后面的URL不同,其他操作的各部分均相同
svn+ssh 访问:svn list svn+ssh://192.168.0.4/sesame/trunk (需要在服务器上支持ssh访问)
9、得到特定版本的工作拷贝
svn checkout -rVersionNum list svn://192.168.0.4/sesame/trunk butterfly
svn info butterfly (查看当前版本拷贝的状态)
10、拷贝/移动文件
svn copy filename newfile
svn move oldfile newfile
svn ci -m "add or move some files" [修改文件所在的目录] (这里确保服务器上也作跟本地拷贝相同的动作)
11、版本的符号
HEAD --------- 项目仓库中的最新版本
BASE --------- 工作拷贝的基准版本(也就是checkout出来时的版本)
COMMITTED ---- 最后一次checkin的版本
PREV --------- COMMITTED之前的一个版本
12、查找版本之间的差异
svn diff -r2:4 [文件/目录]
svn diff > diffname.patch (生成patch文件)
使用patch文件: patch -p0 -i diffname.patch
13、删除后一个版本对前一个版本的修改
svn merge -r27:26 [文件/目录] && svn ci -m "undo the work of version 27"
撤销版本27所做的修改
14、创建分支/标签
svn mkdir -m "Create branches" svn://192.168.0.4/sesame/branches
svn copy -m "Create release branches for version 1.0" svn://192.168.0.4/sesame/trunk \
svn://192.168.0.4/sesame/branches/release-1.0
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ken_sniper/archive/2009/05/18/4199424.aspx
分享到:
相关推荐
【SVNClient华为工具】 SVNClient华为工具是一款专为华为公司内部开发和协作设计的版本控制系统客户端。Subversion(SVN)是一种广泛使用的集中式版本控制系统,它允许团队成员协同工作,跟踪代码更改,管理和恢复...
【mac华为SVNClient】是华为公司在Mac操作系统上推出的一款版本控制系统客户端,它相当于Windows平台下的QuidwayClient。SVN(Subversion)是一种广泛应用于软件开发中的版本控制系统,用于管理文件和目录的历史版本...
华为SVNClient是华为公司针对SVN系统开发的一款客户端工具,专为华为内部或者与华为相关的项目协作设计。 在SVN Client中,有几个关键知识点是每个用户都需要了解的: 1. **版本库(Repository)**:SVN的核心是...
【华为SVNClient for Windows详解】 华为SVNClient是一款专为Windows操作系统设计的Subversion(SVN)客户端工具,它提供了高效、稳定的版本控制系统,帮助用户管理和协作开发项目。Subversion是一个开源的版本控制...
华为Windows SVNClient是一款专为华为环境设计的Subversion(简称SVN)客户端工具,它使得在Windows操作系统上管理版本控制系统变得更加便捷。Subversion是一个开源的版本控制系统,用于跟踪文件和目录的更改,允许...
【华为SVNClient for mac 3.1.2.38】是一款专为苹果Mac操作系统设计的Subversion(SVN)客户端工具。华为SVNClient是华为公司为开发者提供的高效版本控制系统,它允许用户在Mac平台上方便地进行代码版本管理、协作...
华为 SVN Client PC客户端软件。SVN Client是著名的集中式项目管理工具,可以满足项目团队友好的管理项目文档、代码、工具等,用户只要知道项目的地址、用户名、密码,即可与SVN Server进行项目的提交、更新、清除等...
【华为SVNClient详解】 华为SVNClient是华为公司推出的一款专为软件版本控制系统Subversion(简称SVN)设计的客户端工具,它主要用于协助开发者在华为的开发环境中进行代码版本控制和协同工作。SVN是一种分布式版本...
Syncro SVN Client是一款功能强大的Subversion(SVN)客户端,专为软件开发团队提供版本控制系统。Subversion是一种开源的版本控制系统,用于管理源代码、文档等文件的版本,便于多人协作开发时同步和管理代码变更。...
"svnclient.rar"是一个包含SVN客户端工具的压缩包,可能是为了方便部署和配置部门内部的SVN环境。以下是关于SVN客户端及其配置过程的一些关键知识点: 1. **SVN客户端**:SVN客户端是用户与SVN服务器交互的界面,它...
Virtual SVN Client 6.0.4 是一个专为Visual Studio 2017设计的版本控制系统客户端工具。它使得在Visual Studio开发环境中管理Subversion(SVN)仓库变得更为便捷。Subversion是一种开源的版本控制系统,用于跟踪...
【标题】"svnserver(64)+svnclient(64)" 涉及的主要知识点是Subversion(简称SVN)的64位版本,包括服务器端(svnserver)和客户端(svnclient)。 Subversion是一种广泛使用的版本控制系统,用于管理软件项目的源...
在这个“SVN client & server(包括软件和使用教程)”的压缩包中,包含了进行SVN操作所需的客户端和服务器端软件,以及详细的配置说明和使用教程,对于初学者和团队协作非常有帮助。 首先,`VisualSVN-Server-...
综上所述,本资源提供的SVN Client汉化包及安装包是为Windows 64位用户提供便捷的版本控制工具,通过汉化,降低了操作门槛,提高了开发效率。正确安装和使用SVN客户端,对于任何参与软件开发的团队而言都是至关重要...
SVN Client是著名的集中式项目管理工具,可以满足项目团队友好的管理项目文档、代码、工具等,用户只要知道项目的地址、用户名、密码,即可与SVN Server进行项目的提交、更新、清除等操作,提升团队统一化管理的效率...
Syncro SVN Client v8.1 破解。支持svn1.7!
【标题】:“svn client 4.0”指的是Subversion(简称svn)客户端的4.0版本,这是一个在软件开发中广泛使用的版本控制系统。Subversion帮助团队管理代码版本,跟踪文件和目录的更改,并允许成员协作。 【描述】:...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。它允许开发者在团队中协作,确保代码的一致性和可追踪性。SVN客户端是与SVN服务器交互的工具,使得用户可以下载、上传代码,以及...