(0)解决冲突 (分析原因)
[root@host150 svntest]# svn ci -m " " a.php
正在发送 a.php
传输文件数据.svn: 提交失败(细节见下):====>有冲突 服务器版本为10127 ,而本地版本为10126说明刚才有人已经提交过一个版本
svn: Out of date: '/svntest/a.php' in transaction '12127-1'
[root@host150 svntest]# svn log a.php
------------------------------------------------------------------------
r12126 | wangxj | 2011-02-12 16:12:17 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
#比较本地版本和仓库中的版本有什么区别
[root@host150 svntest]# svn diff -r HEAD a.php
Index: a.php
===================================================================
--- a.php (修订版 12127)
+++ a.php (工作拷贝)
@@ -1,2 +1,2 @@
-ida..........................dddadad(=====>svn服务器仓库中的版本)
+idaddadad=============ddadad(===>本地最新的版本)
[root@host150 svntest]#
例子==>(2)
[root@host150 svntest]# svn ci -m "" a.php
正在发送 a.php
传输文件数据.svn: 提交失败(细节见下):
svn: Out of date: '/svntest/a.php' in transaction '12134-1'
[root@host150 svntest]# svn up
Conflict discovered in 'a.php'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
C a.php
更新至修订版 12134。
Summary of conflicts:
Text conflicts: 1
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]# svn up
于修订版 12134。
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]# svn st -v
12134 12133 wangxj .
? a.php.r12134
? a.php.r12126
? a.php.mine
12134 10884 wangxj trunk
12134 10884 wangxj branches
12134 12124 wangxj test.php
C 12134 12133 wangxj a.php
12134 12124 wangxj b.php
12134 10884 wangxj tags
[root@host150 svntest]#
[root@host150 svntest]# svn merge -r 12133:12134 a.php
[root@host150 svntest]# svn resolved a.php
“a.php”的已解决的冲突状态
(注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
相关文件,然后让 PATH 可以再次提交。)
[root@host150 svntest]# svn ci -m " " a.php
正在发送 a.php
传输文件数据.
提交后的修订版为 12138。
(1) 导入项目
$ cd ~/project
$ mkdir -p svntest/{trunk,branches,tags}
$ svn import svntest https://localhost/test/svntest --message "Start project"
(2) 导出项目
svn co svn://192.168.1.125/newipcentrex/exchange --username wangxj --password wangxj123 .
[root@host150 tmp]# svn co svn://192.168.1.125/newipcentrex/svntest svntest
A svntest/trunk
A svntest/branches
A svntest/test.php
A svntest/a.php
A svntest/b.php
A svntest/tags
取出修订版 12128。
[root@host150 tmp]#
[root@host150 tmp]#
[root@host150 tmp]#
[root@host150 tmp]#
[root@host150 tmp]# cd svntest/
[root@host150 svntest]# svn st -v
12128 12127 wangxj .
12128 10884 wangxj trunk
12128 10884 wangxj branches
12128 12124 wangxj test.php
12128 12127 wangxj a.php
12128 12124 wangxj b.php
12128 10884 wangxj tags
[root@host150 svntest]#
备注:第一列表示BASE, 第二列表示COMMITTED
可以看出checkout一个working-copy后,svn会给这个working-copy分一个新的、统一的BASE版本号(如 12128)。
接下来可以修改pi.cpp代码,然后checkin,你就会发现这个文件的BASE和COMMITTED会同时增加,并且相等。如下
[root@host150 svntest]# svn st -v
12128 12127 wangxj .
12128 10884 wangxj trunk
12128 10884 wangxj branches
12128 12124 wangxj test.php
12133 12133 wangxj a.php
12128 12124 wangxj b.php
12128 10884 wangxj tags
[root@host150 svntest]#
接下来在此目录下执行update动作,你就会发现所有文件的BASE都进行了升级,但是COMMITTED没有改变,如下
ost150 svntest]# svn up
于修订版 12133。
[root@host150 svntest]# svn st -v
12133 12133 wangxj .
12133 10884 wangxj trunk
12133 10884 wangxj branches
12133 12124 wangxj test.php
12133 12133 wangxj a.php
12133 12124 wangxj b.php
12133 10884 wangxj tags
[root@host150 svntest]#
(3)查看日志 ============>比较差异
#比较上一次提交的版本和当前提交的版本有什么区别
svn diff --revision PREV:COMMITTED users_controller.php
svn di -r PREV:COMMITTED users_controller.php
#比较本地文件和版本库中的文件的最新改动
[root@host150 app]# svn diff --revision HEAD controllers/clientrates_controller.php
例子:
#显示这个文件的所有修改记录,及其版本号的变化
[root@host150 svntest]# svn log a.php
------------------------------------------------------------------------
r12127 | wangxj | 2011-02-12 16:26:50 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
r12126 | wangxj | 2011-02-12 16:12:17 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------
r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 12 2月 2011) | 1 line
------------------------------------------------------------------------比较12126和12127两个版本之间的差异
[root@host150 svntest]# svn diff a.php
[root@host150 svntest]# svn diff -r 12126:12127 a.php
Index: a.php
===================================================================
--- a.php (修订版 12126)
+++ a.php (修订版 12127)
@@ -1,2 +1,2 @@
-idadddadad(===>代表12126版本)
+ida..........................dddadad(====>12127版本)
[root@host150 svntest]#
(4) 显示log
#显示最后1次修改的LOG
$ svn log --revision HEAD
#显示所有修改的LOG
[root@host150 app]# svn log --revision BASE:HEAD
(5)更新版本
#更新到前面一个版本
[root@host150 controllers]# svn update --revision PREV clientrates_controller.php
#更新到1.10的版本
[root@host150 cdrreports]# svn update --revision {2011-01-10}
将版本库中的文件test.php还原到版本200
svn update -r 200 test.php
(6)(显示文件和子目录状态)
[root@host150 svntest]# svn st -v
12125 12125 wangxj .
12125 10884 wangxj trunk
12125 10884 wangxj branches
12125 12124 wangxj test.php
12126 12126 wangxj a.php
12125 12124 wangxj b.php
12125 10884 wangxj tags
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
(7)添加文件
#svn add *.php(添加当前目录下所有的php文件)
#注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
(8)删除文件
[root@host150 models]# svn del jurisdiction_prefix.php
[root@host150 models]# svn ci -m " "
svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
(2)
svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
(9)查看文件详细信息
[root@host150 svntest]# svn info a.php
路径:a.php
文件名:a.php
地址(URL):svn://192.168.1.125/newipcentrex/svntest/a.php
Repository Root: svn://192.168.1.125/newipcentrex
档案库 UUID:c004b24f-da91-4a55-83d2-5bfd46da7693
修订版:12125
节点种类:文件
调度:正常
最后修改的作者:wangxj
最后修改的修订版:12125
最后修改的时间: 2011-02-12 16:02:35 +0800 (六, 12 2月 2011)
文本最后更新: 2011-02-12 16:19:31 +0800 (六, 12 2月 2011)
校验和:32247a4a24368c64ea5d56cabcb5c8d7
(10) 加锁/解锁
[root@host150 svntest]# svn lock -m " " a.php
“a.php”被用户“wangxj”锁定。
[root@host150 svntest]#
[root@host150 svntest]#
[root@host150 svntest]# svn unlock a.php
“a.php”被解除锁定。
[root@host150 svntest]#
6.合并冲突
svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
分享到:
相关推荐
**SVN常用操作——查看代码提交及改动记录方法** 在软件开发过程中,版本控制系统如Subversion(SVN)是团队协作的重要工具。它允许开发者跟踪和管理代码的修改历史,以便于协同工作、回溯错误并理解代码的发展过程...
SVN常用命令集合及简单用法 SVN(Subversion)是一种版本控制系统,用于管理代码、文档、图片等文件的版本变更。下面是常用的 SVN 命令集合及简单用法: 1. 检出文件:svn checkout path(path 是服务器上的目录)...
### Linux下SVN常用命令详解 #### 一、SVN Checkout **命令格式:** ```shell svn checkout [URL] [本地路径] ``` **功能介绍:** 此命令用于将远程版本库中的某个目录或文件检出到本地,创建一个工作副本。 **示例...
### SVN 常用命令详解 #### 一、SVN简介 Subversion(简称SVN)是一种开源的版本控制系统,用于管理源代码或文件。它能够帮助开发团队追踪每个文件和目录的历史更改,并且可以回溯到任何指定的时间点。 #### 二、...
### SVN常用功能详解 #### 一、TortoiseSVN图标含义 在使用TortoiseSVN的过程中,图标是理解文件或目录状态的关键。不同颜色和形状的图标代表了文件的不同状态,例如: - **绿色勾**:表示文件或目录与SVN仓库中...
初始化版本库有两种常用的方式: 3.2.1. 直接“导入Import…”对要执行导入操作得项目文件夹进行如下清理: 1. 把项目中不需要的文件删除。(临时文件、编译器创建的文件,比如*.obj、二进制文件等。) 2. 把...
**SVN常用命令详解** 版本控制系统Subversion(简称SVN)是软件开发中不可或缺的工具,它用于管理和跟踪代码的变化,使得多人协作开发变得井然有序。以下是一些使用频率最高的SVN命令,确保你能快速上手并有效地...
svn常用Linux操作命令 svn常用Linux操作命令 svn常用Linux操作命令
### SVN常用操作命令详解 #### 1、将文件CHECKOUT到本地目录 - **命令**: `svn checkout <路径>` (其中 `<路径>` 是服务器上的目录) - **示例**: `svn checkout svn://192.168.1.1/pro/domain` - **简写**: `svn co...
### Linux 下 SVN 常用命令详解 #### 一、检查出版本库 (Checkout) **命令格式:** ``` svn checkout [URL] [工作拷贝目录] ``` **示例:** ``` svn checkout svn://192.168.0.150/edp ``` **说明:** 此命令用于从...
linux下svn的配置及svn常用命令
### SVN(Subversion)常用命令详解 #### 一、SVN简介 SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪软件开发过程中的文件变更。它通过维护一个中心版本库来保存项目的各个版本历史,使开发者...
讲述svn常用命令,svn命令 通常都有帮助,如果你不知道命令怎么用,可以很方便获取帮助信息。
Eclipse和svn常用设置及配置大全主要包括:1.Eclipse 启动参数设置 2.Eclipse 常用快捷键大全 3.Eclipse 颜色设置 4.SVN入门及配置使用 5.Windows下Subversion配置管理员指南 6.SVN服务器配置详解 另外里面还有一个...
以下是一些svn的常用命令,这些命令在日常开发和项目协作中非常关键。 1. **初始化 SVN 仓库**: - `svnadmin create <repository_path>`:创建一个新的SVN仓库。 2. **安装客户端并配置**: - 配置SVN客户端...
本文将深入探讨如何获取svn的最新版本号,并介绍一些常用的svn命令。 首先,获取svn的最新版本号通常是为了确保你正在使用的代码是最新的,避免因版本过旧而遇到已解决的问题或错过新功能。有几种方法可以获取: 1...
对svn相关常用语句进行罗列 清晰明了
### SVN常用命令详解 #### 一、SVN子命令 ##### 1、svn help - **功能**: 显示SVN命令的帮助信息。 - **语法**: `svn help [subcommand]` - **说明**: 可以单独使用`svn help`查看所有SVN命令的帮助列表,或者使用...
本文将详细介绍SVN的常用命令,帮助你更好地理解和运用这个工具。 1. **初始化仓库(svnadmin)** 在开始使用SVN之前,需要创建一个版本库。`svnadmin create <repository>` 命令用于在指定位置创建一个新的SVN...
在使用SVN进行项目管理时,掌握一些常用的SVN命令是非常必要的。以下是一些核心的SVN命令及其详细解释: 1. **初始化仓库(svnadmin create)**: 在一个新的目录下创建一个SVN仓库,这将生成一个包含所有必需文件...