177.3. 使用Subversion

177.3.1. Initialized empty subversion repository for project

svn co svn://127.0.0.1/project
cd project
mkdir trunk
mkdir tags
mkdir branches
svn ci -m "Initialized empty subversion repository in your_project"
			

177.3.2. ignore

svn propset svn:ignore [filename] [folder]

$ svn propset svn:ignore 'images' .
$ svn ci -m 'Ignoring a directory called "images".'
			
$ svn propset svn:ignore '*' images
$ svn ci -m 'Ignoring a directory called "images".'
			
$ svn export spool spool-tmp
$ svn rm spool
$ svn ci -m 'Removing inadvertently added directory "spool".'
$ mv spool-tmp spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'
			

.ignore

svn propset svn:ignore -F .cvsignore .
svn propset -R svn:ignore -F .svnignore .
			

177.3.3. 关键字替换

Date
	 这个关键字保存了文件最后一次在版本库修改的日期,看起来类似于$Date: 2012-08-06 17:43:09 +0800 (Mon, 06 Aug 2012) $,它也可以用LastChangedDate来指定。
Revision
	 这个关键字描述了这个文件最后一次修改的修订版本,看起来像$Revision: 446 $,也可以通过LastChangedRevision或者Rev引用。
Author
	 这个关键字描述了最后一个修改这个文件的用户,看起来类似$Author: netkiller $,也可以用LastChangedBy来指定。
HeadURL
	 这个关键字描述了这个文件在版本库最新版本的完全URL,看起来类似$HeadURL: https://svn.code.sf.net/p/netkiller/svn/trunk/Docbook/Version/section.version.svn.xml $,可以缩写为URL。
Id
	 这个关键字是其他关键字一个压缩组合,它看起来就像$Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $,可以解释为文件calc.c上一次修改的修订版本号是148,时间是2006年7月28日,作者是sally。
			
$ cat weather.txt
$Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $

$ svn propset svn:keywords "Id" weather.txt
property 'svn:keywords' set on 'weather.txt'

$ cat weather.txt
$Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $
			

设置多个关键字

$ svn propset svn:keywords "Author HeadURL Id Revision" -R *.php
			
svn -R propset svn:keywords -F .keywords *
			

177.3.4. lock 加锁/ unlock 解锁

$ svn lock -m "LockMessage" [–force] PATH

$ svn lock -m “lock test file“ test.php
$ svn unlock PATH
			

177.3.5. import

svn import [PATH] URL
svn export URL [PATH]
			

177.3.6. export 指定版本

svn log file
svn export -r rxxxxx file
or
svn export -r rxxxxx file newfile
svn ci -m "restore rxxxxxx"
			

177.3.7. 修订版本关键字

HEAD

    版本库中最新的(或者是“最年轻的”)版本。
BASE

    工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。
COMMITTED

    项目最近修改的修订版本,与BASE相同或更早。
PREV

    一个项目最后修改版本之前的那个版本,技术上可以认为是COMMITTED -1。
			
$ svn cat -r PREV filename > filename
$ svn diff -r PREV filename
			

177.3.8. 恢复旧版本

svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。比如说当前HEAD为2,而我要恢复成1版本,怎么做?

用svn merge:

svn update
svn merge --revision 2:1 svn://localhost/lynn
svn commit -m "restore to revision 1"

svn merge --r HEAD:1 svn://localhost/lynn

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

时间: 2024-10-06 07:10:49

177.3. 使用Subversion的相关文章

第 177 章 Subversion

177.1. Invoking the Server 配置开发环境版本控制Subversion Squid + Subversion 请参考Squid一节 177.1.1. Installing 177.1.1.1. Ubuntu 过程 177.1. subversion installation $ sudo apt-get install subversion $ sudo apt-get install subversion create svn group and svnroot use

177.5. FAQ

177.5.1. 递归添加文件 $ svn add `svn st | grep '?' | awk '{print $2}'` 177.5.2. 清除项目里的所有.svn目录 find . -type d -iname ".svn" -exec rm -rf {} \; 177.5.3. color diff http://colordiff.sourceforge.net/ $ sudo apt-get install colordiff add the following to

在Java ME平台中使用Subversion、NetBeans IDE和Sun Java System Web Server

问题 源代码管理(SCM)产品用于管理多个版本的项目文件,允许您保存新版本.恢复较旧版本以及在不同版本之间进行比较.当您在修改项目的过程中引入了bug,这将是一个非常有价值的功能.大多数较新源代码管理(SCM)产品除了可管理各文件的版本之外,还提供了在 Bell 实验室中开发的源代码控制系统(SCCS). 即使对于小型项目,每一位开发人员也应该使用源代码管理(SCM).小型项目转变成大型项目是必然的事情,虽然从工作上说仅仅需要修复错误和添加功能.跟踪和管理软件的能力是获得成功的关键因素. 应用程

支付宝“咻一咻”峰值达到177亿次/分钟,技术如何支撑?

猴年春节最热闹的就是支付宝"咻一咻".外人看热闹,内行看门道.三十晚上i天下网商发了一篇文章<前两轮互动数达去年春晚16倍,支付宝技术怎么做到的? >,其中的一些数据还是首次对外公布.相关技术干货,我们已经锁定专家来约稿了. 已经邀请四位专家来分享: 2016支付宝春晚红包背后的技术支撑 支付宝"咻一咻"分布式架构技术实践 安全设计与挑战 参加2016支付宝春晚红包的企业如何应对高峰技术挑战 大家还希望看哪些方面的内容?欢迎留言. 凝视屏幕,念念有词,指

Linux(RH9)下安装apache和subversion 方法

在网上看了一大堆资料,昨天终于在阿唐哥的帮助下配成了Linux(RH9)下的subversion.总结各路经验将安装配置过程写在下面: 一.所需安装包: (1).Apache --httpd-2.0.59.tar.gz (2).subveision --subversion - 1.4.4版 包含两个包 subversion-1.4.4.tar.gz 核心代码包 subversion-deps-1.4.4.tar.gz 依赖代码包 二.安装步骤: 1.安装Apache 首先解压httpd--2.

Netbeans装svn客户端“找不到subversion java绑定”错误的解决办法

今天重装了系统,然后重装安装netbeans后,想从服务器将之前有的项目签出来,当然,签出之前,肯定要先安装SVN客户端啦,谁知,在netbeans的"团队开发/签出/安装SVN客户端"操作后,竟然出现"找不到subversion java绑定"的错误,后来,在网上找了些资料来看,没有找到解决办法,不过看了其中的一些搜索结果,貌似跟web服务器有关系,再转念一想,以前装的时候,都有先装apache的,这次没有,可能跟这个有关系,所以想尝试一下先将已经装好的tomca

Subversion版本控制

一.简介: Subversion是一款自由开放的版本控制软件.Subversion可以管理文件.文件夹以及记录它们的修改状况.Subversion常用来帮助我们管理软件开发的源代码或是公司手册文档. Subversion通过将文档导入至版本库中进行管理,版本库类似于文件服务器,但比文件服务器更强大的是它可以记录你每一次对文件或目录的修改状况,并提供还原数据至老版本的功能. 版本控制概念图: Subversion框架图: 从图中可以看出服务端保存着Subversion版本库,客户端通过命令或图形界

使用 Subversion、Hudson 和 Eclipse 构建持续集成系统

持续集成系统简介 持续集成系统是指持续地编译.测试.检查和部署源代码的系统. Martin Fowler 对 持续集成是这样定义的 : 持续集成是一种软件开发实践,团队开发成员经常集成它们的工作,通常每个成员每天可 能会发生多次集成.每次集成都通过自动化的构建(包括编译.发布.自动化测试)来验证,从而尽快地发现集成错误.这 个过程可以大大减少集成的问题,从而让团队能够更快的开发内聚的软件. 持续集成有以下几个特点和要求: 有统一的源代码库. 开发人员基于同一个源代码库进行开发是进行持续集成的一个

开发辅助工具--Subversion安装、配置与使用

一.为什么要进行代码控制 在软件开发的过程中,经常因为程序代码版本的不统一而导致重新开发,或者在多人开发的项目中, 多人共同修改了同一个公共代码文件而导致的相互复盖的问题,诸如此类的问题还有很多,下面我们就来 举一个例子. 比如说UserA和UserB各自为自己的需求需要在公共代码文件CommonFilesA增加自己的代码段,修改完 后都要把自己的代码合并到项目经理那里去,结果UserA修改了文件,UserB也修改了文件,合并的时候 UserA把文件拷贝了过去,UserB在UserA后把文件也拷