专家指导:SVN学习笔记

开发 项目管理
如何建立版本库?如何进行本地修改?带着这些疑问我们来看一下本文关于SVN学习笔记的介绍,相信通过本文的介绍会给你一个完美的答复。

本节就在学习SVN的过程中总结的SVN学习笔记和大家分享一下,内容主要包括SVN的安装和一些基本的操作等,欢迎大家一起来学习SVN学习笔记。

SVN学习笔记

1)安装

2)新建版本库
如果我打算将在/SVN_Repo中建立所有的版本库
svnadmincreate/SVN_Repo(本地磁盘路径名)

3)建立要导入版本库的文件和目录
这里假设我要导入/test整个目录,如果不存在则必须要新建,然后整个项目文件包括文件和子目录放入test目录下,然后
svnimport/testfile:///SVN_Repo/-m"initialimport"

4)从版本库中取出项目到/work_dir目录
svncheckoutfile:///SVN_Repo//work_dir
你可以使用版本库的URL作为唯一参数取出一个工作拷贝,你也可以在版本库URL之后指定一个目录,这样会将你的工作目录放到你的新目录

5)本地修改
svndiff查看区别
svncommit提交
在版本库里,每次提交都当作一次原子食物操作,要么所有都改变,要么什么都不改变,SybVersion的修订号是针对整个目录树的,而不是单个文件。
SVN学习笔记提醒你需要特别注意的是,工作拷贝并不一定对应版本库中的单个修订版本,他们可能包含多个修订版本的文件。举个例子,你从版本库检出一个工作拷贝,最近的修订号是4:
calc/Makefile:4integer.c:4button.c:4
此刻,工作目录与版本库的修订版本4完全对应,然而,你修改了button.c并且提交之后,假设没有别的提交出现,你的提交会在版本库建立修订版本5,你的工作拷贝会是这个样子的:
calc/Makefile:4integer.c:4button.c:5
假设此刻,Sally提交了对integer.c的修改,建立修订版本6,如果你使用svnupdate来更新你的工作拷贝,你会看到:
calc/Makefile:6integer.c:6button.c:6
Sally对integer.c的改变会出现在你的工作拷贝,你对button.c的改变还在,在这个例子里,Makefile在4、5、6修订版本都是一样的,但是Subversion会把他的Makefile的修订号设为6来表明它是最新的,所以你在工作拷贝顶级目录作一次干净的更新,会使得所有内容对应版本库的同一修订版本。
svnupdate同步本地工作目录

修订版本号
当你新建了一个Subversion版本库,从修订版本号0开始,每一次成功的提交加1,当你提交成功,Subversion告诉客户端这个新版本号。

修订版本日期
注意在日期中有空格时需要使用引号
$svncheckout--revision{2002-02-17}
$svncheckout--revision{15:30}
$svncheckout--revision{15:30:00.200000}
$svncheckout--revision{"2002-02-1715:30"}
$svncheckout--revision{"2002-02-1715:30+0230"}
$svncheckout--revision{2002-02-17T15:30}
$svncheckout--revision{2002-02-17T15:30Z}
$svncheckout--revision{2002-02-17T15:30-04:00}
$svncheckout--revision{20020217T1530}
$svncheckout--revision{20020217T1530Z}
$svncheckout--revision{20020217T1530-0500}

基本的工作周期
SVN学习笔记介绍一下SVN基本的工作周期。Subversion有许多特性、选项和华而不实的高级功能,但日常的工作中你只使用其中的一小部分,有一些只在特殊情况才会使用,在这一节里,我们会介绍许多你在日常工作中常见的命令。
典型的工作周期是这样的:

更新你的工作拷贝
svnupdate

做出修改
svnadd
预定将文件、目录或者符号链foo添加到版本库,当你下次提交后,foo会成为其父目录的一个子对象。注意,如果foo是目录,所有foo中的内容也会预定添加进去,如果你只想添加foo本身,使用--non-recursive(-N)参数。

svndelete
预定将文件、目录或者符号链foo从版本库中删除掉,如果foo是文件,它马上从工作拷贝中删除,如果是目录,不会被删除,但是Subversion准备好删除了,当你提交你的修改,foo就会在你的工作拷贝和版本库中被删除。

svncopy
建立一个新的项目bar作为foo的复制品,当在下次提交时会将bar添加到版本库,这种拷贝历史会记录下来(按照来自foo的方式记录),svncopy并不建立中介目录

svnmove
这个命令与与运行svncopyfoobar;svndeletefoo完全相同,bar作为foo的拷贝准备添加,foo已经预定要被删除,svnmove不建立中介的目录

检验修改
svnstatus
svndiff
svnrevert

合并别人的修改到工作拷贝
svnupdate
svnresolved
提交你的修改
svncommi。本节关于SVN学习笔记分享到这里,如果你有什么意见大家可以一起讨论。

【编辑推荐】

  1. 学习笔记:SVN与CVS优缺点对比
  2. 经验总结:SVN学习笔记详解
  3. SVN错误如何产生及解决方法专家剖析
  4. 如何实现SVN仓库目录规范化管理?
  5. 经验总结:TortoiseSVN客户端使用心得

 

 

责任编辑:佚名 来源: svn8.com
相关推荐

2010-07-13 13:15:17

Perl

2010-06-01 12:49:04

SVN分支模式

2010-05-26 16:17:46

2010-05-20 09:41:07

MyEclipse下配

2010-05-21 10:25:14

Svn import子

2010-05-20 19:01:03

Eclipse使用SV

2010-05-31 13:23:43

SVN整合MyEcli

2010-05-27 13:35:43

SVN简易使用手册

2010-05-25 09:45:06

SVN服务器环境配置

2010-05-26 11:08:33

SVN管理

2010-05-31 14:19:47

2010-05-25 13:49:11

访问SVN服务器

2010-05-28 13:06:49

SVN代码管理服务器

2010-05-24 09:59:54

SVN服务器搭建

2010-05-20 14:35:58

SVN客户端常用命令

2010-05-19 15:00:18

Apache+SVN部

2010-08-25 15:15:52

CSSclip

2010-07-26 10:09:01

Perl split函

2010-07-15 09:10:08

Perl函数手册

2010-05-20 17:06:48

SVN CO
点赞
收藏

51CTO技术栈公众号