svn revert [--recursive] 文件名
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。
例子:
svn revert foo.c <- 丢弃对一个文件的修改
svn revert --recursive . <-恢复一整个目录的文件,. 为当前目录
svn 安装:
ubuntu : sudo apt-get install subversion subversion-tools
详细请看 http://www.subversion.org.cn/svnbook/1.1/index.html svn子命令
1、检出
svn co http://路径(目录或文件的全路径) [本地目录全路径]
--username 用户名 --password 密码svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
其中 username 与 password前是两个短线,不是一个。
不指定本地目录全路径,则检出到当前目录下。
例子:
svn cosvn://192.168.0.3/测试工具 /home/testtools--username luke
svn cohttp://192.168.0.3/test/testapp --usernameluke
svn checkoutsvn://192.168.0.3/测试工具 /home/testtools--usernameluke
svncheckouthttp://192.168.0.3/test/testapp --usernameluke
2、导出(导出一个干净的不带.svn文件夹的目录树)
svn export [-r 版本号] http://路径(目录或文件的全路径)[本地目录全路径] --username 用户名
svn export [-r 版本号] svn://路径(目录或文件的全路径)[本地目录全路径] --username 用户名
svn export 本地检出的(即带有.svn文件夹的)目录全路径 要导出的本地目录全路径
注:第一种从版本库导出干净工作目录树的形式是指定URL,
如果指定了修订版本号,会导出相应的版本,
如果没有指定修订版本,则会导出最新的,导出到指定位置。
如果省略本地目录全路径,URL的最后一部分会作为本地目录的名字。
第二种形式是指定 本地检出的目录全路径 到要导出的本地目录全路径,所有的本地修改将会保留,
但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。
例子:
svnexportsvn://192.168.0.3/测试工具 /home/testtools--usernameluke
svnexporthttp://192.168.0.3/test/testapp --usernameluke
svnexport/home/testapp/home/testtools
3、添加新文件
svn add 文件名
注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!
例子:
svn add test.php <- 添加test.php
svn commit -m “添加我的测试用test.php“ test.php
svn add *.php <- 添加当前目录下所有的php文件
svn commit -m “添加我的测试用全部php文件“ *.php
4、提交
svn commit -m “提交备注信息文本“ [-N] [--no-unlock] 文件名
svn ci -m “提交备注信息文本“ [-N] [--no-unlock] 文件名
必须带上-m参数,参数可以为空,但是必须写上-m
例子:
svn commit -m “提交当前目录下的全部在版本控制下的文件“ * <- 注意这个*表示全部文件
svn commit -m “提交我的测试用test.php“ test.php
svn commit -m “提交我的测试用test.php“ -N --no-unlock test.php <- 保持锁就用–no-unlock开关
svn ci -m “提交当前目录下的全部在版本控制下的文件“ * <- 注意这个*表示全部文件
svn ci -m “提交我的测试用test.php“ test.php
svn ci -m “提交我的测试用test.php“ -N --no-unlock test.php <- 保持锁就用–no-unlock开关
5、更新文件
svn update
svn update -r 修正版本 文件名
svn update 文件名
例子:
svn update<-后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
svn update -r200test.cpp<-将版本库中的文件 test.cpp还原到修正版本(revision)200
svnupdatetest.php<-更新与版本库同步。
提交的时候提示过期冲突,需要先 update 修改文件,
然后清除svn resolved,最后再提交commit。
6、删除文件
svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本”
推荐如下操作:
svn delete 文件名
svn ci -m “删除备注信息文本”
例子:
svn deletesvn://192.168.1.1/testapp/test.php -m “删除测试文件test.php”
推荐如下操作:
svn delete test.php
svn ci -m “删除测试文件test.php”
7、加锁/解锁
svn lock -m “加锁备注信息文本“ [--force] 文件名
svn unlock 文件名
例子:
svn lock -m “锁信测试用test.php文件“ test.php
svn unlock test.php
8、比较差异
svn diff 文件名
svn diff -r 修正版本号m:修正版本号n 文件名
例子:
svn diff test.php<- 将修改的文件与基础版本比较
svn diff -r 200:201 test.php<- 对 修正版本号200 和 修正版本号201 比较差异
9、查看文件或者目录状态
svn st 目录路径/名
svn status 目录路径/名<- 目录下的文件和子目录的状态,正常状态不显示
【?:不在svn的控制中; M:内容被修改;C:发生冲突;
A:预定加入到版本库;K:被锁定】
svn -v 目录路径/名
svn status -v 目录路径/名<- 显示文件和子目录状态
【第一列保持相同,第二列显示工作版本号,
第三和第四列显示最后一次修改的版本号和修改人】
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,
原因是svn在本地的.svn中保留了本地版本的原始拷贝。
10、查看日志
svn log 文件名
例子:
svn log test.php<- 显示这个文件的所有修改记录,及其版本号的变化
11、查看文件详细信息
svn info 文件名
例子:
svn info test.php
12、SVN 帮助
svn help<- 全部功能选项
svn help ci <-具体功能的说明
13、查看版本库下的文件和目录列表
svn list svn://路径(目录或文件的全路径)
svn ls svn://路径(目录或文件的全路径)
例子:
svn listsvn://192.168.0.3/test
svn lssvn://192.168.0.3/test <- 显示svn://192.168.0.3/test目录下的所有属于版本库的文件和目录
14、创建纳入版本控制下的新目录
svn mkdir 目录名
svn mkdir -m "新增目录备注文本" http://目录全路径
例子:
svn mkdir newdir
svn mkdir -m "Making a new dir." http://192.168.0.3/test/newdir
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”
svn update
注:如果手工在checkout出来的目录里创建了一个新文件夹newsubdir,
再用svn mkdir newsubdir命令后,SVN会提示:
svn: 尝试用 “svn add”或 “svn add --non-recursive”代替?
svn: 无法创建目录“hello”: 文件已经存在
此时,用如下命令解决:
svn add --non-recursive newsubdir
在进入这个newsubdir文件夹,用ls -a查看它下面的全部目录与文件,会发现多了:.svn目录
再用 svn mkdir -m "添hello功能模块文件" svn://192.168.0.3/test/newdir/newsubdir 命令,
SVN提示:
svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',
path '/newdir/newsubdir '
15、恢复本地修改
svn revert [--recursive] 文件名
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。
例子:
svn revert foo.c <- 丢弃对一个文件的修改
svn revert --recursive . <-恢复一整个目录的文件,. 为当前目录
16、把工作拷贝更新到别的URL
svn switch http://目录全路径 本地目录全路径
例子:
svn switch http://192.163.0.3/test/456 . <-(原为123的分支)当前所在目录分支到192.163.0.3/test/456
17、解决冲突
svn resolved [本地目录全路径]
例子:
$ svn update
C foo.c
Updated to revision 31.
如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。
你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。
18、不checkout而查看输出特定文件或URL的内容
svn cat http://文件全路径
例子:
svn cathttp://192.168.0.3/test/readme.txt
补充:
如果想更换svn的用户名和密码的做法是针对linux:
1. 临时切换
在所有命令下强制加上--username 和--password选项。
例如:svn up --username zhangsan --password 123456
2.永久切换
进入 ~/.subversion目录, 命令行:cd ~/.subversion
删除前先备份下,以防万一:命令行:cp -r ~/.subversion/auth/ /home/luke/
rm -rf auth/ 删除非空目录,不是到回收站的.
相关推荐
**SVN 客户端与 Web 客户端详解** SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的版本。它允许团队成员协作开发,跟踪文件更改,合并代码,并轻松回溯到任何历史版本。...
【标题】:“svn插件myeclipse+svn插件” 【描述】:“svn 插件 myeclipse 插件文件+安装方法在压缩包内” 本文将深入探讨如何在MyEclipse集成开发环境中安装和使用Subversion(SVN)插件,以便更有效地进行版本...
### SVN服务用svnsync命令实现双机热备 #### 概述 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款广受欢迎的集中式版本控制系统,在企业级项目...
将文件解压缩到 C:\ 下,将解压缩后的 svn-win32-1.7.2 文件夹名改为 svn,然后将 C:\svn\bin 加入到系统的 PATH 环境变量中,即可开始使用。 将 svnserve.exe 设置为系统服务: sc create svn binpath= "C:\svn\...
RapidSVN是一款轻量级且用户友好的可视化Subversion(SVN)客户端,专为开发者和团队协作设计。Subversion是一种版本控制系统,用于管理软件项目中的文件和目录的更改历史,使得多人协同开发变得更加高效和有序。...
在软件开发过程中,版本控制系统是不可或缺的工具,其中Subversion(简称svn)是广泛应用的一种集中式版本控制系统。本文将深入探讨如何获取svn的最新版本号,并介绍一些常用的svn命令。 首先,获取svn的最新版本号...
**Visual Studio 2022 SVN 插件详解** 在软件开发过程中,版本控制是至关重要的环节,它帮助团队协作并跟踪代码的变化。Subversion(简称SVN)是一款流行的开源版本控制系统,而AnkhSVN则是一个针对Microsoft ...
在使用Subversion(SVN)版本控制系统管理代码时,`.svn`文件夹是SVN用于存储元数据的地方,包括版本信息、工作副本配置等。这些文件夹对于SVN的正常运行至关重要,但有时它们可能会占用大量的磁盘空间,或者在不...
VS2019 SVN插件是Visual Studio 2019开发者为了集成版本控制系统Subversion(SVN)而设计的一款工具。Subversion是一款开源的版本控制系统,它允许开发者跟踪和管理源代码的变化,便于团队协作和项目管理。VS2019 ...
在IT行业中,版本控制系统是开发团队协作的重要工具,其中Subversion(简称svn)是一种广泛应用的集中式版本控制系统。本文将详细讲解如何进行“svn账号密码找回”以及“本地svn账户查看”的操作。 首先,让我们来...
在IT行业中,版本控制系统是开发团队协作的重要工具,Subversion(简称svn)就是其中的一款广泛应用的开源版本控制系统。本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关...
在软件开发过程中,版本控制系统扮演着至关重要的角色,其中Subversion(简称SVN)作为一款开源的集中式版本控制系统,被广泛应用于项目管理之中。然而,在使用SVN的过程中,用户可能会遇到一个常见的问题:如何去除...
svn目录权限设置详解 随着软件开发的日益复杂,版本控制系统的重要性变得更加明显。Subversion(SVN)是一种流行的版本控制系统,能够帮助开发者 efektively 管理项目的版本变更。但是,SVN的权限设置一直是开发者...
【Myeclipse2017 SVN插件】是一款专为Myeclipse 2017集成开发环境设计的版本控制系统工具,它使得开发者能够在Myeclipse中直接进行SVN(Subversion)的操作,如代码的版本控制、提交、更新、解决冲突等。SVN是分布式...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于团队协作和项目管理。在Windows平台上,有许多SVN客户端可供选择,其中SlikSVN是一款流行的轻量级绿色版本,尤其适合那些希望...
在IT行业中,版本控制系统是开发团队协作的重要工具之一,Subversion(简称SVN)就是其中广泛应用的一款。SVN能够帮助开发者追踪代码的变化,合并不同人的修改,并管理项目的多个版本。然而,有时候我们可能需要断开...
centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...
Jenkins SVN Publisher Plugin是Jenkins生态系统中的一个重要组件,主要用于自动化构建过程中的版本控制集成。它允许用户在Jenkins持续集成服务器完成构建后,自动将生成的成果物发布到Subversion(SVN)仓库中,...
标题 "取消已设置为SVN的文件夹(清理SVN标志)" 涉及的知识点主要集中在版本控制系统Subversion(SVN)的管理和清理上。Subversion是一种广泛使用的集中式版本控制系统,它用于跟踪文件和目录的变更,便于团队协作...
在IT行业中,版本控制系统是开发团队协作的重要工具,而Subversion(简称SVN)就是其中的一种。本篇文章将深入探讨如何通过公网以HTTP方式访问单位的SVN服务器,使远程开发者能够便捷地进行代码同步与协作。我们将...