用户工具

站点工具


subversion_notes

Subversion 笔记

Resource

TortoiseSvn

svnX

Subversion for Win32

Beanstalk

RiouxSVN

Assembla's free subversion hosting

Subversion Server 的安装及配置

环境准备

http://subversion.apache.org/packages.html 下载 Win32Svn 的最新版本,安装。

仓库创建

svnadmin create C:\Svn

启动 Subversion Server

在命令行下运行 Subversion Server 的命令行是:

svnserve -d -r C:\Svn

用如下命令行把 Subversion Server 安装成 Windows Serivce(注意每个 = 后面必须跟一个空格):

sc create SVNService binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r C:\svn" DisplayName= "SVNService" depend= Tcpip start= auto
E:\Program Files\Subversion\bin>svnserve --help
用法: svnserve [-d | -i | -t | -X | --service] [options]
有效选项:
  -d [--daemon]            : 后台模式
  -i [--inetd]             : inetd 模式
  -t [--tunnel]            : 隧道模式
  -X [--listen-once]       : 监听一次方式(调试用)
  --service                : Windows 服务方式(服务管理器)
  -r [--root] ARG          : 服务的根目录
  -R [--read-only]         : 强制只读;覆盖版本库配置文件
  --config-file ARG        : 从文件 ARG 读取配置
  --listen-port ARG        : 监听端口
                             [方式: daemon, service, listen-once]
  --listen-host ARG        : 监听主机名称或IP地址
                             [方式: daemon, service, listen-once]
  --foreground             : 在前台运行(调试用)
                             [方式: daemon]
  --log-file ARG           : svnserve 日志文件
  --pid-file ARG           : 写进程 PID 到文件 ARG
                             [方式: daemon, listen-once, service]
  --tunnel-user ARG        : 隧道用户名(默认是当前UID对应的用户名)
                             [方式: tunnel]
  -h [--help]              : 显示本帮助
  --version                : 显示程序版本信息

Subversion Server 的配置

C:\Svn\conf\svnserve.conf

[general]
# 匿名用户的权限(可用的取值为 none,read 和 write),默认为 read
anon-access = none
# 授权用户(凭用户名密码登录的用户)的权限,默认为 write(读写)
auth-access = write
# 制定与用于存放所有授权用户的用户名和密码的文件
password-db = passwd
# 用来设定详细访问权限的文件(粒度可以细到每个子目录和每个用户)
authz-db = authz
# 设定认证时出现在客户端界面上的提示
realm = 2ndboy's Test Repository

C:\Svn\conf\passwd

[users]
# username = password
2ndboy = 123456

Subversion 日常使用

处理文件名里有 @ 符号的文件

比如有个名为 icon@2x.png 的文件,在 Mac 命令行里有两种做法:

svn info icon\@2x.png\@

或者(单引号也可以):

svn info "icon@2x.png@"

命令行 checkout 与 update

svn checkout svn://foo.com/bar local_dir --username 2ndboy --password 123456 -r 7890
svn co svn://foo.com/bar .
svn update local_dir --username 2ndboy --password 123456 -r 7890

浏览仓库内容

svn ls svn://xxx

脚本

@echo off
 
if "%4" == "" goto Usage
if not "%5" == "" goto Usage
goto Begin
 
:Usage
echo Usage: %0 url path username password
REM this_bat svn://svn_url/foo bar tom 123456
exit 1
 
:Begin
svn info %2 > nul
if %ERRORLEVEL% NEQ 0 (
	echo There's no working copy. Use checkout.
	svn checkout %1 %2 --username %3 --password %4 --non-interactive
) else (
	echo Working copy is found. Use update.
	svn update %1 %2 --username %3 --password %4 --non-interactive
)
 
if %ERRORLEVEL% NEQ 0 exit %ERRORLEVEL%
#!/bin/sh
 
if [ $# -ne 2 ]
then
	echo Usage: $0 url path
	exit 1
fi
 
svn info $2 > /dev/null
if [ $? = 1 ]
then
	svn checkout $1 $2 --username 2ndboy --password 123456 --non-interactive
else
	svn update $1 $2 --username 2ndboy --password 123456 --non-interactive
fi
 
exit $?
subversion_notes.txt · 最后更改: 2013/09/20 02:52 由 2ndboy