标签: SVN

  • 修改SVN提交log

    采用SVN进行代码管理,在平时开发中常遇到代码提之后,查看提交日志,发现提交的comment跟实际功能不够贴切,想要优化。或者代码提交之后发现没有写comment,想要补充。

    TortoiseGit 默认必须填写comment,TortoiseSVN没有限制,难免出现点击提交按钮时没有填写comment。

    使用TortoiseSVN修改comment,大致遇到

    ask the administrator to create a pre-revprop-change hook

    这样的提示。

    怎样 create a pre-revprop-change hook ?

    在 Linux 系统下:

    1. 进入 svn 仓库的 hooks 目录
    2. 拷贝 pre-revprop-change.tmpl 为 pre-revprop-change
    3. 给 pre-revprop-change 增加执行权限

    完成设置,重新使用 TortoiseSVN 修改comment即可。

  • SVN无法显示Log

    使用TortoiseSVN无法查看文件提交日志,在服务器执行 svn log wp-login.php 看到的信息是

    svn: Item is not readable

    此时修改 svnserve.conf 文件,将 anon-access = read 修改为 anon-access = none

    # 修改前
    anon-access = read
    # 修改后
    anon-access = none

    再次执行 svn log wp-login.php 可以看到文件提交日志。

  • Linux安装SVN

    使用 SVN 进行网站的发布工具。

    在 Linux 上安装 SVN 步骤:

    安装 SVN

    # yum install subversion

    创建 SVN 仓库

    # cd /opt
    # mkdir svn
    # svnadmin create /opt/svn/web

    通过上述命令在服务器 /opt/svn 目录下创建了一个仓库 web。接下来需要修改仓库的配置文件。

    配置 SVN 仓库

    # cd /opt/svn/web
    # ls
    conf db format hooks locks README.txt
    # ls
    authz passwd svnserve.conf

    conf 目录下存放 SVN 仓库相关配置文件。

    1、修改 authz 文件
    authz 是 SVN 认证文件,vim 打开

    [groups]
    admin = svn_admin
    [/]
    @admin = rw

    在 [groups] 下增加 admin,在文件末尾增加 [/],换行增加 @admin=rw。@ 紧跟着用户组,等号右侧是读写权限。

    2、修改 passwd 文件

    passwd 是 SVN 账号密码文件,vim 打开

    [users]
    svn_admin = svn_password

    在 [users] 下增加 svn_admin,等号右侧是该账号的密码

    3、修改 svnserve.conf 文件

    svnserve.conf 是该 SVN 仓库运行配置,vim 打开

    [general]
    anon-access = read
    auth-access = write
    authz-db = /opt/svn/web/conf/authz
    password-db = /opt/svn/web/conf/passwd

    在 [general] 下增加访问控制和 authz-db、password-db 文件路径。

    启动 SVN 仓库

    # svnserve -d -r /opt/svn/web/

    启动 SVN 仓库之后,SVN server 即创建完成。

    检查仓库运行

    # netstat -anp | grep svn
    tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15019/svnserve

    检查端口可以发现 SVN serve 已经运行在端口 3690。

    通过 telnet 127.0.0.1 3690 连接该端口可以收到类似这样的信息 ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )。

    通过 curl http://127.0.0.1:3690 可以收到类似这样的信息 ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) 。

    checkout 仓库

    通过 SVN TortoiseSVN 客户端 checkout 仓库 svn://127.0.0.1 验证账户并登录就可以正常使用 SVN 了。进一步可以了解如何使用 https 访问 SVN 服务。

    后续在 Linux 上部署 SVN 更新脚本即可实现 SVN 管理站点发布上线。

    开机启动 SVN 服务

    一般来说,Linux 服务器重启情况比较少。但为了方便,可以 SVN 服务添加到开机启动项中。

    在文件 /etc/rc.local 中增加一行 /usr/bin/svnserve -d -r /opt/svn/web/

    不使用 /etc/init.d/svnserver 启动 SVN 服务是因为该命令默认启动时没有携带 -r 参数,即默认没有指定仓库路径。