Subversion(SVN)版本控制的操作技巧 2008-10-17 职场
SVN用户版本管理常用的一些操作技巧:
1,加锁-修改-提交模式: 手工为文件(夹)设置属性svn:needs-lock=*
C:\Documents and Settings\maasen\Application Data\Subversion\config中增加:
[auto-props]
*.* = svn:needs-lock=*
其中,maasen为当前操作系统的用户名
2,修改文件(夹)名之前,提交所有修改,取得最新版本
特别需要注意:删除文件(夹)时,需要先删除,再提交才能最终删除成功。
3,删除已保存的用户密码
C:\Documents and Settings\maasen\Application Data\Subversion\auth下是所有保存的用户密码,每个用户一个文件,
可以用文本编辑器打开查看其中的用户名
其中,maasen为当前操作系统的用户名
4,目录结构
repository_name
|——-branches
|——-tags
|——-trunk
每个库下面包括branches,tags和trunk三个子目录,其中trunk是主干,包括所有版本的文件,平时更新提交操作的就是这个目录;tags是根据需要创建的某个版本的副本,用目录来存放。例如,可以每天打一个Tag
,在tags下新建一个20080501子目录,将2008年5月1日的最新版本保存到这个目录下;branches用于存放分支,从trunk的某个版本开始有了多种需求,可以在trunk继续开发主版本,而在branches中维护各微小变化的版本。
5,自动属性
可以在源文件中输入:
$Id$
然后每次从版本库中更新该文件时,会自动变成如下格式:
$Id: yoursourcefile.java 148 2008-05-01 21:30:43Z maasen $
SVN会自动将日期和作者等信息记录到各版本的文件中。
注意:$Id$生成的信息可能过长,eclipse中进行代码格式化时可能换行,这样一来就时间和作者都不能更新了。
解决办法:
/**
*
* @author no1focus.com
* @version $Rev$
* @LastChangedBy $Author$
* @LastChangedDate $Date$
*/
生成的结果如下:
/**
*
* @author no1focus.com
* @version $Rev: 3278 $
* @LastChangedBy $Author: no1focus $
* @LastChangedDate $Date: 2008-10-17 17:04:49 +0800 (星期三, 1 十月 2008) $
*/
这样存在一个问题,根据本地的区域设置,可能存在中文、日文或韩文的情况,提交之后转换为utf-8后变为乱码,如果使用date关键字的文件编码为utf-8是没有问题的.
也可以这么解决乱码问题,将本地区域设置修改为英文即可。
1. eclipse.ini:
-Xms128m
-Xmx512m
-nl
en_us
2. Regional and Language Options:
Regional Options -> Standards and formats, English(United States)
这样,生成的注释如下:
/**
*
* @author no1focus.com
* @version $Rev: 3278 $
* @LastChangedBy $Author: no1focus $
* @LastChangedDate $Date: 2008-10-17 17:04:49 +0800 (Wed, 1 Oct 2008) $
*/
6,给文件增加License属性
可以增加SVN的属性,比如增加License属性,新建一个文件license.txt,
内容如下:
copyright : (c) 2008 www.no1focus.com
使用TortoiseSVN工具给文件设置License属性,并指明从文件中读入属性值。
7,查看开发人员每天的工作情况
使用statsvn来生成每个开发人员对版本库的修改历史。
StatSVN能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表。比如:代码行数的时间线;针对每个开发者的代码行数;开发者的活跃程度;开发者最近所提交的;文件数量;平均文件大小;最大文件;哪个文件是修改最多次数的;目录大小;带有文件数量和代码行数的 Repository tree。StatSVN当前版本能够生成一组包括表格与图表的静态HTML文档。
statsvn的官方网站:http://www.statsvn.org/
可以查看每个人修改了哪些文件,修改了几行等。便于掌握小组成员的工作情况。
8,忽略一些文件和子目录
在WEB-INF/classes下的文件并不需要提交到版本库中,可以给WEB-INF目录设置属性:
svn:ignore=classes
如果需要忽略多个文件或目录
则在属性设置对话框中每行输入一个文件或目录,如:
classes
lib
标签: 管理






