Tag: svn

Suse下搭建svn服务

Posted by – 2010-01-02

####################################
#SVN Configuration
#Author:楚霏
#Date: 2010-01-02
#Env: SuSe Linux Enterprise Desktop 11
####################################

一、安装
####################################
#由于是做桌面,管理自己的文档代码,所以采用的YAST安装
#搜索subversion所在的源,使用daemon的方式的,就不依赖WEB服务器了
#打开http://software.opensuse.org/search
#输入subversion进入查找,如下图:

1

#如果用的是opensuse,注意选择正确的版本,然后选择
2

#接下来的按提示非常容易就安装好了
#也可以打开1 key install上边那个链接,把地址复制增加到YAST的更新源里(url方式),直接search安装,效果是一样的
http://download.opensuse.org/repositories/devel:/tools:/scm:/svn/SLE_11/
####################################

二、服务端配置
####################################
#在相应的位置建服务端源目录
#mkdir -p /wwwroot/chengyongxu.com/svnroot
#启动服务端
svnserve -d -r /wwwroot/chengyongxu.com/svnroot
#创建一个版本库
svnadmin create shells
#进入目录配置一个权限
cd /wwwroot/chengyongxu.com/svnroot/shells
vi authz
#增加组和成员的权限

#----------------------------增加文字-开始----------------------------
admin = admin

[shells_svn:/]
@admin = rw
#----------------------------增加文字-结束----------------------------

vi passwd
#增加密码,一行一个用户
#----------------------------增加文字-开始----------------------------
admin = yourpassword
#----------------------------增加文字-结束----------------------------
vi svnserve.conf
#去年下边4行的注释,千万注意行首不要留空格,不然会报错
#----------------------------引用文字-开始----------------------------
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
#----------------------------引用文字-结束----------------------------
####################################

三、客户端配置
####################################
#Mac OS和Windows不再赘述
#Linux下的客户端可以用esvn,如果你有更好的客户端别忘了推荐下哈

3
#增加一个本地的SVN工作目录
#然后就可以checkout了
#esvn执行操作时会显示执行的命令,当然,你在本地终端执行命令也是很方便的,例如检出:
svn checkout svn://127.0.0.1/shells /home/ftp/work/ --username admin --password yourpassword --non-recursive --non-interactive
#完成

Svn用户管理脚本

Posted by – 2009-09-15

一个工作需要重复5次以上,那就写个脚本吧.

一.删除一个svn用户
#—————————-引用文字-开始—————————-
#!/bin/bash
#Delect a svn user
#Author:楚霏
echo -n ” Please enter the user name whom you want to delete : ”
read NAME
#把下边这行的 “/home/svnroot/” 改为你的svn根目录
SVNROOT=/home/svnroot
#delect the name in authz
for i in `ls $SVNROOT/repository/`; do sed -i “s/$NAME\,//g” “$SVNROOT/repository/${i}/conf/authz”; done
for i in `ls $SVNROOT/repository/`; do sed -i “s/$NAME//g” “SVNROOT/repository/${i}/conf/authz”; done
#delcet the information in passwd
for i in `ls $SVNROOT/repository/`; do sed -i “/$NAME/d” “SVNROOT/repository/${i}/conf/passwd”; done
#check
grep -R $NAME $SVNROOT/repository/*/conf/*
#—————————-引用文字-结束—————————-

二.更改svn用户的密码
#—————————-引用文字-开始—————————-
#!/bin/bash
#Change a svn user’s passwd
#Author:楚霏
echo -n ” Please enter the username : ”
read NAME
echo -n “New password: ”
read PASSWD
#delect the name in authz
#把下边这行的 “/home/svnroot/” 改为你的svn根目录
SVNROOT=/home/svnroot
for i in `ls $SVNROOT/repository/`; do sed -i “s/^$NAME.*/$NAME = $PASSWD/g” “$SVNROOT/repository/${i}/conf/passwd”; done
echo “done”
#—————————-引用文字-结束—————————-

Svn不同版本库间拷贝文件和目录

Posted by – 2009-05-26


svn官方用命令是不支持不同版本库之间拷贝的,不过也有变通的方法。
例如:
原来市场部隶属于综合部,现在市场部独立出来了,与综合部同级,我就需要为市场部新建一个自己的版本库,并且从综合部的svn中拷出来的属于市场部的文件和目录到新建的市场部目录下,这属于异版本库间拷贝,直接用命令svn copy是不支持的。
此时可以在服务器上将市场部文件夹拷贝为市场部,进入市场部的子目录conf下,修改一下配置文件,我这里是authz和passwd。
用客户端删除无用的文件,更新一下即可,要想看到历史修改记录,需要在客户端工具中show log时,取消stop on copy/rename复选框如图
svnfuxuan

这样操作虽然笨一点,但很有效,如果您有更好的方法,请指教,非常感谢。