《版本控制之道》读书笔记

检查是否安装了svn    

svn -version

 

检查是否安装了客户端

svnadmin -version

 

创项目仓库

mkdir /home/mike/svn-repos

svnadmin create /home/mike/svn-repos

创建简单的项目

svn import –m “importing  Seame  project”  .  file:///homemike/svn-repos/sesame/trunk

签出一个项目

svn co file:///home/mike/svn-repos/sesame/trunk  sesame

获得一个或多个文件的状态

svn status Day.txt

更新项目仓库

svn commit –m “some message”

日志功能

svn log Day.txt

svn log –verbose Day.txt         告知具体改动

为了能看到日志信息,应首先运行     svn update

 

发生冲突时,应仔细查看冲突标记,与其他开发人员进行沟通,修改完后移除冲突标记并提交

svn resolved Number.txt

 

 

svn+ssh网络协议

svn chechout svn+ssh://olio/home/mike/svn-repos/sesame/trunk princess

 

结合Apache的网络协议

svn checkout http://olil.mynetwork.net/svn-repos/sesame/trunk sesame

 

常见的Subversion命令

  1. 1.         签出

svn checkout   简写co

svn checkout –r 7 svn://olio/sesame/trunk old-sesame 签出过去的第七版

多个版本并存时使用svn info sesame 查看拷贝是从哪里来的

  1. 2.         更新

svn update

svn update build.xml  src/  test/

应经常更新,一个好处是别的开发者走上岔路是可以很快发现

 

A新文件          U文件过期               D文件已删除         

G文件已过期并且在本地做了修改,Subversion成功合并

C文件已过期并且在本地做了修改,Subversion合并出现冲突,需要解决冲突后才能签入

 

  1. 3.         添加文件和目录

svn add timelib   此时只记住了所添加的文件名字,并没有实际添加,必须使用svn commit 提交

  1. 4.         属性

设置属性 svn propset chechkd-by  “Mike Mason” Number.txt

编辑属性 ssvn propedit checked-by Number.txt

列出属性 svn proplist Number.txt

列出属性当前值              svn proget checked-by Number.txt

 

忽略某些文件svn propedit svn:ignore timelib 在编辑器中输入 *.bak

设置Mime类型      svn:mime-type

可执行标记 svn:executable                    

主要是UnixWindows所有文件都可执行,该属性不需关心

        

         自动设置属性编辑Subversionconfig目录,去掉这行注释enable-auto-props = yes

         去掉autoprops的注释,把想添加的属性添在这

  1. 5.         拷贝、移动文件和目录

拷贝         svn copycp

移动         svn movemv

  1. 6.         查看改变

svn diff

-r 版本标识符

              7

{日期} {“2012-06-17 16:46:41”}

         HEAD 仓库中的最新版本

         BASE 工作拷贝基准版本,即你最后签出或更新的版本

         COMMITTED 最后改动的版本,等于或早于BASE

         PREV  COMMITTED之前的一个版本

版本之间查找差异         svn diff –r19:21 Clock.java

  1. 7.         处理合并冲突

svn resolved Number.txt

  1. 8.         提交改动

svn update

  1. 9.         查看改动历史

svn log | more 通过more命令使用管道分页

         -r

逐行历史         svn blame Number.txt

  1. 10.     移除改动

svn merge –r 27:26 Contact.java

 

 

文件加锁

开启文件加锁 svn propset svn:needs-lock true ccsr.xls  值不必非要true,有就行

基本文件加锁 svn lock ccsr.xls -m “Adding *******”

                            svn info ccsr.xls 查看被谁锁住了

解锁 svn unlock 自己解锁    svn unlock –force 别人砸锁

    

使用标签和分支

标签和分支的命名规范

Thing to Name

Name Style

Examples

Release branch

RB-rel

RB-1.0 RB-1.0.1a

Releases

REL-rel

REL-1.0 REL-1.0.1a

Bug fix branches

BUG-track

BUG-3035 BUG-10871

Pre-bug fix

PRE-track

PRE-3035 PRE-10871

Post-bug fix

POST-track

POST-3035 POST-10871

Developer experiments

TRY-initials-desc

TRY-MGM-cache-pages

TRY-MR-neo-persistence

 

 

创建初始项目

svn import –m “Wibble initial import” svn://olio/wibble/trunk

创建tagsbranches目录

svn mkdir –m “Create tags directory”  svn://olio/wibble/tags

svn mkdir –m “Create branches directory”  svn://olio/wibble/branches

        
posted @ 2012-06-19 19:47  lybeta  阅读(196)  评论(0编辑  收藏  举报