Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2323217
  • 博文数量: 535
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7066
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(535)

文章存档

2024年(4)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2011-09-08 16:52:40







关闭selinux

groupadd -g 1001 www
useradd -g 1001 -u 1001  -s /sbin/nologin www
#####必须给予运行subversion的用户以家目录,否则后面的钩子过不去####


yum -y install openssl-devel gd-devel zlib-devel libxml2-devel



cd /home/tools
tar  xvjf apr-1.4.2.tar.bz2
cd apr-1.4.2
./configure  --prefix=/usr/local/apr 
make 
make install

cd /home/tools
tar xvjf  apr-util-1.3.10.tar.bz2 
cd apr-util-1.3.10
./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr
make
make install


cd /home/tools
tar xvjf httpd-2.2.17.tar.bz2 
cd httpd-2.2.17
./configure --prefix=/usr/local/apache  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util   --enable-dav --enable-so
make
make install


cd /home/tools
tar xvzf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure 
make
make install 


echo '/usr/local/lib' >> /etc/ld.so.conf
ldconfig -v
把/usr/local/lib目录加进动态库,否则下面会报错

cd /home/tools
tar xvjf subversion-1.6.16.tar.bz2
mkdir  -p  /home/tools/subversion-1.6.16/sqlite-amalgamation
cd /home/tools
tar xvzf  sqlite-amalgamation-3.6.16.tar.gz
cd sqlite-3.6.16
cp sqlite3.c  /home/tools/subversion-1.6.16/sqlite-amalgamation
cd /home/tools/subversion-1.6.16
./configure --prefix=/usr/local/subversion  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  --with-apxs=/usr/local/apache/bin/apxs  
make 
make install

sed  -i 's/User daemon/User www/'  /usr/local/apache/conf/httpd.conf
sed  -i 's/Group daemon/Group www/'  /usr/local/apache/conf/httpd.conf



echo '' >>  /usr/local/apache/conf/httpd.conf
echo 'DAV svn' >>  /usr/local/apache/conf/httpd.conf
echo 'SVNParentPath   /app/svnroot/' >>  /usr/local/apache/conf/httpd.conf
echo 'AuthzSVNAccessFile   /app/svnroot/authz.conf' >>  /usr/local/apache/conf/httpd.conf
echo 'AuthType   Basic'  >>  /usr/local/apache/conf/httpd.conf
echo 'AuthName  "www"' >>  /usr/local/apache/conf/httpd.conf
echo 'AuthUserFile   /app/svnroot/authfile' >>  /usr/local/apache/conf/httpd.conf
echo 'Require valid-user'  >>  /usr/local/apache/conf/httpd.conf
echo '' >>  /usr/local/apache/conf/httpd.conf


mkdir  -p /app/svnroot/
chown -R www:www /app/svnroot/
/usr/local/subversion/bin/svnadmin create /app/svnroot/femart

/usr/local/subversion/bin/svnadmin create /app/svnroot/femart/ 


echo '[groups]'   >> /app/svnroot/authz.conf
echo 'admin = www' >> /app/svnroot/authz.conf
echo '[/]'   >>  /app/svnroot/authz.conf
echo '@admin = rw'  >>  /app/svnroot/authz.conf
echo '[manwrx:/]'   >>  /app/svnroot/authz.conf
echo '@admin = rw'  >>  /app/svnroot/authz.conf

/usr/local/apache/bin/htpasswd  -c  /app/svnroot/authfile pinla
/usr/local/apache/bin/htpasswd   -c  /opt/svn/femart/authfile pinla
/usr/local/apache/bin/htpasswd   -c  /opt/svn/femart/authfile test
输入两次密码
####增加其他用户时将-c去掉,其他一样


/usr/local/apache/bin/apachectl start




###假如:发布网站根目录为/usr/local/apache/htdocs/
cd /usr/local/apache/htdocs 
rm -fr  *
/usr/local/subversion/bin/svn checkout file:///app/svnroot/pinla /usr/local/apache/htdocs
/usr/local/subversion/bin/svn checkout file:///app/svnroot/test /usr/local/apache/htdocs


/usr/local/subversion/bin/svn checkout file:///app/svnroot/femart  /usr/local/apache/htdocs

###创建钩子,其实就是一个脚本,用户在提交的时候触发####
vi /app/svnroot/femart/hooks/post-commit
#!/bin/bash
REPOS="$1"
REV="$2"
svn=/usr/local/subversion/bin/svn
web=/data/httpd/b2c
$svn update file:///app/svnroot/femart  $web --username=test --password=aaaAAA111

chown -R www:www /app/svnroot/
chown -R www:www /usr/local/apache



#####这样发布代码是方便了很多,但是svn会有一个隐藏目录为.svn。是svn为了记录版本的更新。所以为了安全必须在webserver上deny 这个目录





















启动svn服务

svnserver -d -r /data/svndata

设置svn和apache服务开机自动启用

#vi /etc/rc.local   

/usr/local/apache/bin/apachectl start

svnserve –d –r /data/svn

四、SVN管理命令 1、svn命令

导入数据到版本库

# svnadmin create /data/svndata/pro1

# svn import /www/shop file:///data/svndata/pro1 -m “import”

查看版本库下的内容

# svn list file:///data/svndata/pro1

注:在导入仓库后,原来的目录树并没有转化成一个工作副本,需要使用checkout手动导出一个工作副本。

 

从版本库导出数据

# svn checkout file:///data/svndata/pro1

取出任意深度的数据

# svn checkout file:///data/svndata/pro1/ad/html

将数据放到新目录

# svn checkout file:///data/svndata/pro1 testweb

//将pro1工作副本放到testweb中,而不是默认生成的pro1目录

# svn co file:///data/svn/my_xywy_com/ /www/other/my.xywy.com

// 导出my_xywy_com全部文件,到/www/other/my.xywy.com下

它可以显示工作副本中的所有项目

# svn status -u -v

 

18       16 sum          fff.txt

18        1 root          index2.

18       10 sum          index20090416.html

18       17 sum          111/fff.txt

18       17 sum          111/index2.

18       17 sum          111/index20090416.html

18       17 sum          111/index.

 

2、svnlook命令

查看当前的版本仓库内容

# svnlook info 版本仓库

 

Sum //作者

2009-09-10 11:51:17 +0800 (Thu, 10 Sep 2009) //提交时间

0 //最后一次提交参数信息

 

查看最近一次更新的修订号

# svnlook youngest 版本仓库

 

显示一个版本仓库中文件和目录的树形结构图

# svnlook tree /data/svndata/pro2/ --show-ids

 

jytk.html <0-1.0.r1/232049>

 gallery.php <3-1.0.r1/232223>

 gywm.html <5-1.0.r1/232402>

 database.php <7-1.0.r1/232579>

lxyp.html 

 

查看仓库中某一个文件内容

# svnlook cat /data/svndata/pro2/ index.html   //查看pro2项目的index.html文件中的内容

 

显示被修改的文件

# svnlook diff /data/svndata/pro2/

 

Added: 11.txt //显示增加了11.txt文件

3、导出svn版本库中的文件夹

若要彻底删除SVN版本库某文件夹,可以使用下面的方法。

查看项目sumitest中的列表

# svn list file:///data/svn/sumitest

 

fxywy/

fxywy/src

jxywy/

jxywy/src

src/

要把fxywy/src文件夹删除,重新导入到新的项目sumitest2中,方法如下:

# svnadmin dump /data/svn/sumitest > sumi1.dump

// 导出sumitest整个项目到sumi1.dump

# cat sumi1.dump | /usr/local/svn/bin/svndumpfilter exclude /fxywy/src > sumi2.dump

// 从sumi1.dump过滤出/fxywy/src目录。Windows中cat换成type

# svnadmin create /data/svn/sumitest2

// 创建新的项目库

# svnadmin load /data/svn/sumitest2 < sumi2.dump

//导出/fxywy/src 到sumitest2库

4、删除svn版本库中的文件夹

svn delete 可以从工作拷贝或版本库删除一个项目。

# svn delete -m “Deleting file”file:///data/svn/sumitest2/fxywy/

// 删除sumitest2下的/fxywy目录

















阅读(1106) | 评论(0) | 转发(0) |
0

上一篇:postfix main.cf

下一篇:简单的网站备份脚本

给主人留下些什么吧!~~