最近在搞caffe代码,需要在多个电脑上同步caffe代码,本来想用移动硬盘来拷贝代码的,弱弱地被实验室的师兄鄙视了,在各种的建议下,决定用svn来同步代码,对于一个不怎么会用ubuntu和没有接触过svn的码农来说,简直不忍直视,好了不多说,简单写下这两天来玩svn的经历:
主要参考了:
http://wiki.ubuntu.org.cn/SubVersion
http://www.linuxdiyf.com/linux/201107/643.html
http://zhangliliang.github.io/2014/06/10/about-svn/
1 首先在ubuntu上安装svn,可以参考第一链接
2 安装好svn后,一般默认会安装svn的服务端的,然后创建svn服务器,由于实验室的一台神机配置好svn服务器了,就直接拿来用,在这里就不说怎么配置svn服务器
3 参考链接3,开始svn简单之旅
3.1 在服务器端建立repos:
3.1.1 ssh登陆到svn服务器:
ssh username@X.X.X,X
# 其中username是ubuntu上的用户名,X.X.X,X为网络地址,(个人觉得ssh就是提供了字符命令窗口而已)
3.1.2 创建新的svn项目:
sudo svnadmin create [repos_path]
# repos_path就是新的项目文件名,一般直接在服务器端的根目录下创建,而一般svn的根目录为/home/svn/,这个视个人而定
3.1.3 给repos设置权限:
sudo chmod -R 777 [repos_path]
3.1.4 在客户端验证repos是否建立成功:
svn checkout [svn://222.200.xxx.xxx/repos_path]
#用svn co时,先在客户端处建立好自己的svn目录,然后cd到svn目录,最后才用svn co命令
3.2 设置客户端读写权限
用ssh登陆到svn服务器的根目录,然后cd到repos_path,用ls查看当前目录的文件及文件夹,其中有一个conf文件夹,cd到conf,里面有三个文件:authz,passwd,svnserve.conf
3.2.1 .修改svnserve.conf(实际上是把[general]下对应的注释行给取消注释),这里要注意除了要删去“#”外还要将空格也删去,不然会导致svnserve.conf:12:Option expected错误。
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
3.2.1 修改passwd(在文件尾部添加用户名和密码)
username = XXXXX
# 其中username就是自己设定的用户名,XXXXX为对应的密码,如:ddk = 1234567890
3.2.3 修改authz,添加读写权限
[/] # 表示对应的根目录
username = rw
# username是passwd中的username,其中r代表read权限,w代表write权限
3.3 经过3.1和3.2,就能够在客户端使用用户名和密码进行checkout和commit了
在使用checkout之前,将需要同步的文件及文件夹拷贝到建立好的svn目录,然后使用svn add file | file_folder,
最后使用svn ci -m “”命令即可
4 后续遇到自己的问题:(这里可以参考链接3)
4.1 SVN commit 产生 svn-commit.tmp问题,
可以参考http://yp.oss.org.cn/blog/show_resource.php?resource_id=724