svn简介

1.    svn默认端口号为 3690

可参考:http://www.runoob.com/svn/svn-create-repo.html

2.    svn的概念:repository(源代码库):源代码统一存放的地方。

Chechout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

Commit(提交):当你修改了代码,就需要commit到repository。

Update(更新):当你已经checkout了一份源代码时,update一下就可以和repository上的源代码同步,你手上的代码就会有最新的变更。

3.    svn的生命周期:

1) 创建版本库:svnadmincreate /opt/svn/runoob

2) 检出:checkout 从版本库创建一个工作副本

3) 更新:update  用来更新版本库,可以将工作副本与版本库同步

4) 执行变更:当检出之后,我们可以进行add,del的操作,但是所修改的文件不会立即成为版本库的一部分,而是被添加进待变更列表中,通过commit操作后才会成为版本库的一部分。

5) 复查变化:当修改过检出的版本库之后,在commit之前复查一下修改的内容;

Status操作可以列出工作副本中所进行的变动。

6) 修复错误假设对工作副本做了修改,但又不想要这些修改时,使用revert操作。

revert 操作重置了对工作副本的修改。它可以重置一个或多个文件/目录。当然它也可以重置整个工作副本。在这种情况下,revert 操作将会销毁待变更列表并将工作副本恢复到原始状态。

7) 解决冲突:合并发生冲突时,merge可以自动处理并安全合并东西。resolve可以帮助用户找出冲突并告诉版本库如何处理这些冲突。

8) 提交更改:commit可以将更改从工作副本到版本库。

4.    步骤:

1) 创建一个版本库:svnadmin create /opt/svn/banbenku  然后修改conf下面的authz和passwd与svnserver.conf文件。

2) 启动svn服务:svnserver –d –r /opt/svn/banbenku --listen-port端口号(-r参数可以指定版本库的打开方式) 此方式表示只为一个版本库工作。方式二:也可以指定到版本库的上级目录(成为多库svnserver方式,svnserver –d –r /opt/svn)

3) Svn检出操作:svn checkout svn://192.168.6.190/banbenku--username=admin

4) 查看关于版本库的更多信息:svn info   会展示工作副本所有项目的所有有用信息。

5.    Svn服务配置文件,svnserver.conf

[general]

anon-access = none  (控制非鉴权用户访问版本库的权限,取值范围为"write""read""none" "none"表示无访问权限。缺省值:read)

auth-access = write  ( 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径

password-db = /home/svn/passwd 

authz-db = /home/svn/authz ( 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径

realm = tiku 

6.    查看工作副本中的状态:svn status

?  readme   (状态为?,说明还未加载到版本库中)

A  readme   (状态为A,说明已经成功添加到版本库中------svn add readme)

存储到版本库中:svn commit –m “SVN”readme

7.    Svn版本回退

(1)svn revert file      未提交,放弃对文件的修改撤销任何目录或者文件的局部更改  (revert命令不紧可以恢复单个文件也可以回复整个目录,加-R参数,如svn revert –R ku)

(2)想恢复一个已经提交的版本:

为了消除旧版本,必须撤销旧版本里的所有更改然后提交一个新版本,此操作叫

reverse merge。

仓库的当前版本,现在是版本 22,我们要撤销回之前的版本,比如版本 21

svn merge –r 22:21 file

8.    Svn查看历史信息

1)svn log: 用来展示svn 的版本作者、日期、路径等等。

2)svn diff: 用来显示特定修改的行级详细信息,比较。

3)svn cat: 取得在特定版本的某文件显示在当前屏幕。

4)svn list: 显示一个目录或某一版本存在的文件。

查看特定的两个版本之间的信息:svn log –r 6:8

只想查看某一个文件的版本修改信息:svn log ku/file

得到目录的信息都要加 -v

显示限定N条记录的目录信息:svn log -1 5 –v

9.    Svn diff:查看历史修改的详情

直接使用svn diff:会比较工作文件与缓存在..svn的”原始”拷贝

比较工作区与版本库:svn diff –r 3 readme.txt

比较版本库与版本库:svn diff –r 2:3 readme.txt

10.  只检查一个过去版本,不查看他们区别:svn cat 

svn cat –r 版本号 readme.txt  显示在该版本号下的该文件内容

11.  不下载文件到本地目录的情况下查看目录文件:svn list

如:svn list http://192.168.0.1/ku

12.  Svn分支

Svn分支用途:(svn下有一个trunk版,主干)客户需求有变,项目改动较大,觉得组1继续完成原来进行一半的工作,组2进行新开发需求,那么可以给组2建立一个新的分支,其实就是主干线的一个copy版,且相互独立,最后合并就ok。

1)    创建一个分支:

root@runoob:~/svn/runoob01# ls

branches  tags  trunk

root@runoob:~/svn/runoob01# svn copy trunk/ branches/my_branch

A   branches/my_branch

2)提交新增分支到版本库:svn commit –m “add my_branch”

接着就可以在my_branch分支进行开发,切换分支并创建index.html文件

root@runoob:~/svn/runoob01# cd branches/my_branch/

root@runoob:~/svn/runoob01/branches/my_branch# ls

HelloWorld.html index.html  readme

3)将新增的文件加入版本控制,并提交版本库

svn add index.htm

svn commit -m "add index.html"

4)切换trunk,执行svn update,合并my_branch到trunk中。

5)将合并好的trunk提交到版本库:svn commit -m "addindex.html"

13.  svn标签(tag):tag选项,给版本库一个更有意义的名字,Tags主要用于开发的里程碑,开发到一定阶段可以单独一个版本作为发布等,往往代表一个固定的完整的版本。

1)在本地工作副区创建一个Tag:svncopy trunk/ tags/v1.0

上面的代码成功完成,新的目录将被创建在tags目录下。

查看状态,提交tag内容:svn commit –m “tags v1.0”

14.  用svn的客户端进行拉取分支的时候:

(1)    先创建一个文件----然后进去checkout主分支项目-----右键分支创建一个新的分支------在新建个文件夹,把分支checkout到新文件夹,当分支的代码写好之后,要合并到主分支----右键主分支,选择合并,点合并两个不同的数----起始填主分支url---结束填分支url----合并。

(2)    主分支没变,分支代码改动,从分支合并到主分支,起始填主分支url,结束填分支url。

主分支代码改变,分支没动,从主分支合并到分支时,起始填分支url,结束填主分支url。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值