系统debian:
安装:
apt-get install subversion subversion-tools
apt-get install apache2 libapache2-svn
查看版本命令 svnserve --version
查看svnserver是否已启动: netstat -ntlp,可看到svn对应的端口3690
使用svnserve -d启动svn服务
ps -aux | grep svnserve
kill -9 ID号
svnserve -d -r /home/catdoc2014/pos_svn/test
建立项目:svnadmin create ~/pos_svn/test // test目录下会增加若干文件
地址: svn://192.168.229.45/home/catdoc2014/pos_svn/test
可通过 svn co svn://192.168.229.45/home/catdoc2014/pos_svn/test 导出
在svn服务器机器上操作 首次导入 利用svn import
svn import tserver file:///home/catdoc2014/pos_svn/test -m "init import"
-> tserver/trunk/hello.erl tserver/branch tserver/readme
当提示 Commited revision 1.表示导入成功.
如果通过http访问,那么需要设置apache服务器的配置,
在浏览器http://192.168.229.45/ 如果打印it works表示svn关联的apache服务器正常。
test/conf文件夹:authz、passwd、svnserve.conf
-> svnserve.conf:
[general]
anon-access = none
auth-access = write ## 另一个选项 read
password-db = passwd
authz-db = authz
注意 前面不能有空格,否则提示: svnserve.conf:12: Option expected
-> passwd
[users]
pm = iampm // 这里的用户同样不能有空格
catdoc = catdoc2014
sky = sky123
-> authz
[groups]
soft = catdoc,sky
[/] #版本库的根目录
pm = rw #pm有读写权限
* = r #任何人只有只读权限
[trunk:/] #test/trunk目录
pm = rw #pm有读写权限
@soft = rw #soft组有读写权限
* = r #任何人都有只读权限
在linux系统下:
~/.subversion/auth,这个目录下包含了svn使用过的用户信息,
如果需要更换账号操作svn可以把这个目录下的文件来文件夹全部删掉就可以了。
方法2:
rm -rf ~/.subversion/auth
以后操作svn会提示你输入用户名,这时就可以使用新的了
方法2: svn操作时带上--username参数
svn --username=catdoc update 然后会提示输入密码!
客户端操作:
1, 导出
svn co svn://192.168.229.45/home/catdoc2014/pos_svn/test // 简写 svn co
2, 更新 -> 进入到需要更新的目录
svn update -r 2014 libutil.erl (将文件还原到版本2014)
svn update libutil.erl 更新版本库同步。
在workplace 执行 svn update 同步版本库
3、添加 -> 进入需要提交的目录 添加后需要commit提交
svn add file // --non-recursive 或者 -N就会关闭 recursive add
svn --username=catdoc add success.erl // 中间可能需要填写用户密码
svn --username=catdoc commit success.erl -m "first add cmd"
// 后续的不需要再带 --username=catdoc
4、将改动的文件提交到版本库
选项 -N 或者 --no-unlock
svn commit success.erl -m "commit s.erl" // 指定提交某个文件
svn commit -m "test commit " // 会将目录下的所有修改都提交上去
5、加锁/解锁
svn lock -m "log" [--force] path
svn unlock path
svn lock -m "lock libutilfile" libutil.erl
6、查看文件或者目录状态
svn status -v path
-> ?:不在svn的控制中 M:内容被修改 C:发生冲突 A:预定加入到版本库 K:被锁定
7、查看日志
svn log success.erl
8、比较差异
svn diff success.erl 查看本地和版本的差异
svn diff -r 2:3 success.erl // 查看特定版本的差异
9、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
svn merge -r 200:205 libutil.erl(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
10、恢复
svn revert success.erl
// 冲突的时候一种解决办法,但会丢失将本地修改,因为应先备份本地版本再revert
// 不会恢复被删除的目录
11、代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
改写工作副本的URL元数据,以反映单纯的URL上的改变。
svn relocate ?
12、解决冲突
svn resolved path: 移除工作副本的目录或文件的“冲突”状态。
只是移除冲突的相关文件,然后让 PATH 可以再次提交, 实质的冲突还是要自己去解决
在vi中也可以不退出编辑的文件来提交文件,
使用shell命令::! svn ci -m "commit information.."
1.执行如下命令:
$ sudo update-alternatives --config editor
执行后,出现如下画面:
P2PTranslateFile$ sudo update-alternatives --config editor
有 4 个选项可用于替换项 editor (提供 /usr/bin/editor)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /bin/nano 40 自动模式
1 /bin/ed -100 手动模式
2 /bin/nano 40 手动模式
* 3 /usr/bin/emacs23 0 手动模式
4 /usr/bin/vim.tiny 10 手动模式
参考:http://www.cnblogs.com/xusir/p/3326142.html
svn配置
猜你喜欢
转载自catdoc.iteye.com/blog/2104216
今日推荐
周排行