使用svn版本控制

本文针对linux操作系统(使用ubuntu,centos在安装时略有不同)

如果只看客户端操作,直接跳到 5(当然需要看一下1、安装)

1、安装

sudo apt install subversion

查看是否成功:

zhj@zhj-MS:~/project$ svn --version
svn,版本 1.9.3 (r1718519)
   编译于 Aug 10 2017,16:59:15 在 x86_64-pc-linux-gnu

Copyright (C) 2015 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

windows和centos安装参考http://www.runoob.com/svn/svn-install.html

如果Windows只是安装客户端的话参考http://www.runoob.com/svn/tortoisesvn-intro.html

2、在服务端创建版本库

创建版本库目录:

mkdir svn/

创建版本库:

svnadmin create svn/test

此时可以看到在svn下面生成test目录,查看目录结构:

zhj@zhj-MS:~/fly/$ tree svn/test
test/
├── conf
│   ├── authz
│   ├── hooks-env.tmpl
│   ├── passwd
│   └── svnserve.conf
├── db
│   ├── current
│   ├── format
│   ├── fsfs.conf
│   ├── fs-type
│   ├── min-unpacked-rev
│   ├── revprops
│   │   └── 0
│   │       └── 0
│   ├── revs
│   │   └── 0
│   │       └── 0
│   ├── transactions
│   ├── txn-current
│   ├── txn-current-lock
│   ├── txn-protorevs
│   ├── uuid
│   └── write-lock
├── format
├── hooks
│   ├── post-commit.tmpl
│   ├── post-lock.tmpl
│   ├── post-revprop-change.tmpl
│   ├── post-unlock.tmpl
│   ├── pre-commit.tmpl
│   ├── pre-lock.tmpl
│   ├── pre-revprop-change.tmpl
│   ├── pre-unlock.tmpl
│   └── start-commit.tmpl
├── locks
│   ├── db.lock
│   └── db-logs.lock
└── README.txt

3、修改配置文件

conf目录下:

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

(1)authz

在文件末尾加上:

develop = user0,user1
[/]
@develop = rw

develop是个分组,组内有两个用户。

[/]是目录,下面一行是develop对这个目录的权限

(2)passwd

在文件末尾加上:

user0 = password
user1 = password

(3)svnserve.conf

将以下两行注释去掉,并将第一行权限改为none

anon-access = none
auth-access = write

将下面这行注释去掉

password-db = passwd

将下面注释去掉

authz-db = authz

配置完成。

4、启动服务

svnserver -d -r svn/

以上都是针对服务端,下面是客户端


5、检出操作(下载代码)

即将在本地初始化,并将服务端代码下载到本地。

svn checkout svn://192.168.0.1/test

注意:将上面的ip地址改成实际IP地址

(可以在命令末尾再加上文件夹名字)

6、代码提交

进入test目录,先创建一个文件test.txt,里面写入"this is a test"。

这时候查看状态:

svn status

可以看到test.txt前面有个“?”,这是因为还没有添加,下面进行添加:

svn add test

或者直接添加某个文件夹下所有文件:

svn add *

这时候再用svn status查看,可以看到“?”变成“A”,即Add。

取消添加:

svn revert --recursive example_folder

然后可以提交了,但是在提交之前先把本地更新到最新版本:

svn update

提交:

svn commit -m "first commit"

-m是附加的提交描述,表明每次提交的内容(一定要写清楚每次提交都做了什么,方便管理)。

7、版本回退

(1)放弃对本地文件的修改

如果修改了test.txt,可以使用下面命令取消本地修改。

svn revert test.txt

如果恢复对目录的修改,需要加上-R,如:

svn revert -R trunk

(2)撤回一个已经提交的版本

svn merge -r 5:4 svn://localhost/Test
svn ci -m "roll back from r5 ot r4

即可将test.txt从版本5撤回版本4。

8、查看历史信息

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

  • svn diff: 用来显示特定修改的行级详细信息。

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

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

直接使用svn diff,检查和本地库缓存.svn相比改动了哪些地方;

svn diff -r 3 test.txt,检查和版本3相比,改动了哪些地方。

svn diff -r 2:3 test.txt,检查版本2和版本3的改动。

svn diff --summarize -r 2:3 查看两个版本改动的文件名

具体参考:http://www.runoob.com/svn/svn-show-history.html

9、分支,标签

分支和标签实际上是有相同的权限,但一般操作上可以在分支上修改,但不在标签上修改,标签作为开发过程中一个固定版本。

创建一个分组(前提是服务端已经有trunk和branches目录):

svn copy trunk/ branches/my_branch -m "create my branch"

即将trunk(主干)代码复制一份到branches(分支)中。

在分支开发一定阶段后,可以合并到trunk中。先将修改都提交到分支中,然后切换到本地trunk目录,执行:

svn merge ../branches/my_branch/

然后在trunk中提交即可。

10、其他命令

svn delete 文件名 (与add相反)
svn ci -m “删除备注信息文本”(提交变动)

 

参考https://segmentfault.com/a/1190000000596975

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值