Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1246484
  • 博文数量: 105
  • 博客积分: 127
  • 博客等级: 入伍新兵
  • 技术积分: 962
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-29 15:22
文章分类

全部博文(105)

文章存档

2021年(1)

2019年(3)

2018年(1)

2017年(11)

2016年(47)

2015年(32)

2014年(4)

2012年(6)

我的朋友

分类: LINUX

2015-11-24 16:09:35

ubuntu linux svn服务器建立与常用命令 


安装                                         

   linux进行代码管理常用工具svn(Subversion),做一个简单的整理。有些命令不用,总是需要查一下,可能也
是不熟悉的缘故。
应用层开发的人,可能使用得相对比较频繁一些。

   从安装说起吧。ubuntu上面安装,相对较简单。

sudo apt-get install subversion

如果不行,就更新一下源吧。目前最新版本应该是1.8.4。官网

也可以顺安装一下下面这两个,方便使用。

apt-get install  libapache2-svn

apt-get install  subversion-tools

安装就到此吧,关于查看版本信息的命令,请参看后面的命令。

 

建立svn服务器                                    

         实验环境:PC 64bit ubuntu12.04

         svn 版本:1.6.17(没有更新为最新)

 

1.创建代码仓库文件夹

sudo mkdir /work/svn_test

sudo chmod –R 777 /work/svn_test/

设置文件夹下所有文件的权限

2.创建代码仓库

sudo svnadmin create /work/svn_test/

3.配置svn

配置/work/svn_test/conf目录下,svnserve.conf passwd

svnserve.conf如下:


点击(此处)折叠或打开

  1. svnserve.conf如下:
  2. [general]
  3. ### These options control access to the repository for unauthenticated
  4. ### and authenticated users. Valid values are "write", "read",
  5. ### and "none". The sample settings below are the defaults.
  6. anon-access = read
  7. auth-access = write
  8. ### The password-db option controls the location of the password
  9. ### database file. Unless you specify a path starting with a /,
  10. ### the file's location is relative to the directory containing
  11. ### this configuration file.
  12. ### If SASL is enabled (see below), this file will NOT be used.
  13. ### Uncomment the line below to use the default password file.
  14. password-db = passwd


  15. passwd 如下:
  16.     ### This file is an example password file for svnserve.
  17. ### Its format is similar to that of svnserve.conf. As shown in the
  18. ### example below it contains one section labelled [users].
  19. ### The name and password for each user follow, one account per line.

  20. [users]
  21. username = passwd
  22. username1 = passwd1

4.启动svn

sudo svnserve –d –r /work/svn_test

这样是指定代码仓库文件夹启动。

有可能这样操作失效。那么可以进行如下操作

sudo  killall  svnserve 然后再重新启动svn服务。

 

5.导入代码

sudo svn import –m “helloworld_20151110_1” /work/code svn://localhost/work/svn_test/

这样就导入代码了。参数mmessage的意思,svn log的时候可以查看得到。相当于一个备注,或者说我喜欢
用这个来备注吧。

测试一下是否成功,可以如下操作。

sudo svn checkout svn://localhost/work/svn_test

可以查看是否下载下来。顺利的话,应该是可以下载下来的。

服务器的建立,到此告一段落。前面这一部分,会很少用到,为此mark一下。

 

svn 常用操作命令                              

1.将代码仓库中的代码checkout到本地目录

sudo svn checkout pathpath是服务器 上的目录)

上面实验中用到sudo svn checkout svn://localhost/work/svn_test

svn checkout 可以简写成svn co

 

2.将本地改动的文件提交到代码库

svn commit -m “message”  PATH

svn commit -m “add by sbdy” test.c

svn commit 可以简写成svn  ci

 

3.往代码库中添加新的文件

svn add file

svn add test.c

此命令为本地操作,不需要网络,后面的文件参数支持通配符。需要等到下commit命令才提交。

 

4.更新到某个版本

svn update -r m path

svn update如果后面没有目录,默认为当前目录以及子目录。

svn update -r 200 test.c (将版本库中的文件test.c还原到版本200)

svn update test.c(可能出现冲突)

可以简写为svn up

 

5.查看文件或者目录状态

1svn status path(目录下的文件和子目录的状态)

解析

?:不在svn的控制中;

M:内容被修改;

C:发生冲突;

A:预定加入到版本库;

K:被锁定

 

2svn status -v path(显示文件和子目录状态)

第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

可以简写为svn st

此命令为本地操作,不需要网络命令。svn在本地的.svn中保留了本地版本的原始拷贝。

 

 

6.删除文件

svn delete path -m “delete test fle“

svn delete svn://192.168.1.1/pro/domain/test.c  -m delete test file

等同于svn delete test.c 然后再svn ci  -m delete test file‘,推荐使用这种

可以简写为svn (del, remove, rm)

 

7.查看文件详细信息

svn info path

svn info test.c

 

8.比较差异

svn diff path(将修改的文件与基础版本比较)

svn diff test.c

svn diff -r m:n path(对版本m和版本n比较差异)

svn diff -r 200:201 test.c

可以简写为svn di

此命令为本地操作,不需要网络命令。svn在本地的.svn中保留了本地版本的原始拷贝。

 

9.将两个版本之间的差异合并到当前文件

svn merge -r m:n path

svn merge -r 200:205 test.c(将版本200205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

 

10.版本库下的文件和目录列表

svn list path

显示path目录下的所有属于版本库的文件和目录

可以简写为svn ls


表格简单记录的命令                            

阅读(4763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~