全部博文(105)
分类: 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如下:
点击(此处)折叠或打开
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/
这样就导入代码了。参数m是message的意思,svn log的时候可以查看得到。相当于一个备注,或者说我喜欢
用这个来备注吧。
测试一下是否成功,可以如下操作。
sudo svn checkout svn://localhost/work/svn_test
可以查看是否下载下来。顺利的话,应该是可以下载下来的。
服务器的建立,到此告一段落。前面这一部分,会很少用到,为此mark一下。
svn 常用操作命令
1.将代码仓库中的代码checkout到本地目录
sudo svn checkout path(path是服务器 上的目录)
上面实验中用到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.查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态)
解析
?:不在svn的控制中;
M:内容被修改;
C:发生冲突;
A:预定加入到版本库;
K:被锁定
2)svn 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(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
10.版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
可以简写为svn ls
表格简单记录的命令