svn 命令行实例

关于命令行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

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据