关于命令行svn的学习:
检出: 需要 url 用户名 密码
注意url中的地址不能写根目录,checkout使用的http header里的方法也是很特殊的
D:\svn_test\test2>svn checkout "https://localhost:8443/svn/test2/" –username svnuser –password lijunjie ./
更新
svn update
添加
svn add
删除
svn delete
提交
svn commit -m “提交的注释”
或
使用vim编辑注释
svn commit –editor-cmd vim
比较
svn diff
和上一个版本比较
svn diff -r PREV
关于svnserve服务器的配置,参考svn-book.pdf
1. 安装 (略)
2. 配置/etc/svnserve.conf
#content , detail reference svn-book.pdf
[general]
password-db = /etc/svnserve.pass
realm = example realm
# annonymous users can only read the repository
anon-access = read
# authenticated users can both read and write
aut-access = write
3. 配置权限文件 /etc/svnserve.pass
[users]
junjie = junjie
4. 创建版本库
svnadmin create /var/svnroot/test1
5. 启动
svnserve -d -r /var/svnroot/ –config-file /etc/svnserve.conf
6. checkout
svn checkout "svn://phpor.net/test1"
svn checkout –non-interactive –username lijunji –password xxxx "https://phpor.net/" ./
7. 比较
svn diff -r 4974:17599 getst.php
8. 移动
svn move –force a b\
9. 提交
svn commit -m "comment for move "
10. merge
如: branches\branche1 是 trunk的一个分支,当truck有修改后,假设从版本11升到版本12,要想将版本11到版本12的修改在branche1里也
体现出来,则可以使用merge命令,即:
svn merge -r 11:12 trunk branches\branche1
这时branche1里面的文件也做了相应的修改,只是我们还需要人工确认一次,确认修改的没有问题后,再提交一次
svn commit -m "merge from trunk"
这时,相应的修改在分支里面体现为版本13,就是说分支里永远找不到版本12的修改
merge 的实质是diff and apply
11. 查看log
svn log –limit 3 -v
–limit n 查看最近n条更新
-v 显示修改的详细信息
-r 指定要查看的版本号,也可以指定日期
svn log -r{2009-05-10}:{2009-06-10} -v
在服务器上使用svn命令时总出现乱码,处理办法,使用icovn做转码:
svn log -r 4472 |iconv –from utf-8 –to gb2312