SVN常用操作

1. 创建版本库

[root@openvpn test]# svnadmin create --fs-type fsfs /root/test/test01

目录说明:

  • conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
  • db目录:就是所有版本控制的数据存放文件
  • format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
  • hooks目录:放置hook脚本文件的目录
  • locks目录:用来放置subversion建库锁定数据的目录,用来追踪存取文件库的客户端

2. svnserver启动

方式一 -r直接指定到版本库(单库模式)

[root@openvpn test01]# svnserve -d -r /root/test/test01
  • -r: 配置方式决定了版本库访问方式。
  • --listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690

方式二 -r指定到版本库的上级目录(多库模式)

[root@openvpn test01]# svnserve -d -r /root/test/

3. 检出代码

[root@openvpn svn2]# svn checkout svn://192.168.63.128/test01 --username=xiaoming
Authentication realm: <svn://192.168.63.128:3690> My First Repository
Password for 'xiaoming': 

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://192.168.63.128:3690> My First Repository

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Checked out revision 0.

4. 提交操作

1. 添加新文件 index.html
2. 查看工作副本中的状态
    [root@openvpn test01]# svn status
    ?       index.html
    [root@openvpn test01]#
此时,index.html的状态为? 说明它还未加到版本控制中
3. 将文件加到版本控制,等待提交到版本库
    [root@openvpn test01]# svn add index.html 
    A         index.html
    [root@openvpn test01]# svn status
    A       index.html
    [root@openvpn test01]#
此时,index.html的状态为 A ,意味着文件已被加到版本控制
4. 将index.html存储到版本库中
    [root@openvpn test01]# svn commit -m "添加index.html" index.html 
    Adding         index.html
    Transmitting file data .
    Committed revision 1.
    [root@openvpn test01]# 

添加所有文件到版本控制

[root@openvpn test01]# svn add *

提交所有文件到版本库

[root@openvpn test01]# svn commit -m "添加多个文件"

5. 删除文件

[root@openvpn test01]# svn delete dd.html
D         dd.html
[root@openvpn test01]# svn commit -m "删除dd.html"
Deleting       dd.html

Committed revision 8.

6. 撤销文件修改

文件修改,暂未提交到版本库中

[root@openvpn test01]# vim cc.html 
[root@openvpn test01]# svn status
M       cc.html
[root@openvpn test01]# svn revert cc.html 
Reverted 'cc.html'
[root@openvpn test01]# svn status
[root@openvpn test01]# 

撤销对目录的修改用-R

svn revert -R trunk

修改已经提交到版本库中的文件


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

首先,找到仓库的当前版本,现在是版本 11,我们要撤销回之前的版本,比如版本 10。

[root@openvpn test01]# vim ee.html 
[root@openvpn test01]# cat ee.html 
aaaa
[root@openvpn test01]# svn status
M       ee.html
[root@openvpn test01]# svn commit -m "修改ee.html"
Sending        ee.html
Transmitting file data .
Committed revision 11.
[root@openvpn test01]# svn status
[root@openvpn test01]# svn merge -r 11:10 ee.html  #开始撤销
--- Reverse-merging r11 into 'ee.html':
U    ee.html
--- Recording mergeinfo for reverse merge of r11 into 'ee.html':
 U   ee.html
--- Eliding mergeinfo from 'ee.html':
 U   ee.html
[root@openvpn test01]# cat ee.html 
[root@openvpn test01]# svn status
M       ee.html
[root@openvpn test01]# svn commit -m "恢复ee.html到上一个版本"
Sending        ee.html
Transmitting file data .
Committed revision 12.
[root@openvpn test01]# 

posted @ 2019-07-24 11:47  漂泊的蒲公英  阅读(233)  评论(0编辑  收藏  举报