keywords:
SVN服务器,ubuntu-11.04
配置环境:
虚拟机下安装ubuntu11.04,在ubuntu上配置SVN服务器,在windows下配置eclipse和ubuntu下配置eclipse分别访问进行测试。
sudo apt-get install subversion
2.开启svn服务
svnserve -d
检查是否开启:ps aux | grep svn
chianyu 4290 0.0 0.1 9704 1076 ? Ss 10:15 0:00 svnserve -d -r /home/chianyu/SVN_Repos/
chianyu 4586 0.0 0.0 4152 864 pts/0 S+ 10:44 0:00 grep --color=auto svn
有第一行说明开启成功。
3.建立仓库
svnadmin create /home/chian/SVN_Repos 仓库可以在任何目录,我建立在自己的用户目录之下
4.修改配置文件
vim ~/SVN_Repos/conf/svnserve.conf
把anon-access = read,auth_access = write和password-db = passwd,authz-db = authz 的注释去掉,还有[general]的注释也要去掉(这个默认没有注释)。
注:当你去掉注释的时候,不要简单的把前面的#去掉,要把前面的空格一块去掉,不然在Eclipse中使用的时候会出现配置文件格式错误的问题。
5.修改账户文件
vim ~/SVN_Repos/conf/passwd
[users]
michael=123 #输入自己的用户名和密码,明文密码
6.修改授权文件
vim ~/SVN_Repos/conf/authz
添加如下内容
[/]
michael = rw #rw表示读和写
7.根据2中得到的svnserve -d -r /home/chianyu/SVN_Repos/进程号,结束那个进程
kill -9 4290 (没有找到其结束进程的指令,就强制结束了)
8.重新启动svn服务,设置路径为3中创建仓库的目录
svnserve -d -r /home/chianyu/SVN_Repos,同样用2中的方法查看是否启动成功。
9.在eclipse中,新建SVN资源库,输入svn服务器的IP地址。输入用户名和密码就能连上SVN了。
![](https://img-my.csdn.net/uploads/201207/25/1343184356_1039.png)
开始输入的URL是,svn://192.168.1.108/SVN_Repos,可以连接上SVN,但是输入用户名和密码后登陆不上,提示类似下面这种错误,原因应该是URL填得深了一层。
![](https://img-my.csdn.net/uploads/201207/25/1343184373_9270.png)
9.把自己的工程上传到SVN资源库
工程右键->Team->share Project->.....
测试:
从本地上传一个工程到SVN中,在虚拟机中更新,只能得到工程中的JAVA文件,运行不了,因为没有jre环境,所以需要添加环境。
项目右键->build path->configure build path ->libraries -> add library -> JRE system library.
仓库建立
建立具有branches,tags,trunk目录结构的仓库
mkdir tmp
cd tmp
mkdir trunk
mkdir tags
mkdir branches
把需要加的东西可以加入以上3个文件夹
这时可以将tmp目录导入仓库中:
svn import tmp/ svn://localhost/ -m 'initial',刷新svn服务器,看到目录结构如下:
![](https://img-my.csdn.net/uploads/201207/25/1343184379_3577.png)
可以通过如下命令行的方式把文件加入仓库中
svn import ~/MyPros/threadPool/ svn://localhost/trunk -m 'initial'
表示把~/MyPros/threadPool/文件夹下所有内容添加到svn的/trunk目录下
显示:
Adding MyPros/threadPool/CThreadManage.cpp
Adding MyPros/threadPool/CThreadManage.h
添加成功。
SVN服务器版本库有两种格式,一种为FSFS,一种为BDB
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息