linux下搭建SVN服务器完全手册_第1页
linux下搭建SVN服务器完全手册_第2页
linux下搭建SVN服务器完全手册_第3页
linux下搭建SVN服务器完全手册_第4页
linux下搭建SVN服务器完全手册_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统环境RHEL5.4最小化安装(关iptables,关SelinUX)+SSh+yum一,安装必须的软件包.yuminstallsubversion(SVN效劳器)mysql-server(用于codestriker)dmod_dav_svnmod_perl(用于支持WEB方式管理SVN效劳器)sendmail(用于配置用户提交代码后发邮件提醒)wgetgcc-c++makeunzipperl*(必备软件包)ntsysvvim-enhanced(可选)二,根本的SVN效劳器配置1,新建一个目录用于存储SVN所有文件mkdir/home/svn2,新建一个版本仓库svnadmincreate/home/svn/project3,初始化版本仓库中的目录mkdirprojectproject/serverproject/clientproject/test(建立临时目录)svnimportproject/file:///home/svn/project-m"初始化SVN目录"rm-rfproject(删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添力口一个形如“username=PaSSword"的条目就可以了.为了测试,我添加了如下内容:[users]harry=harryssecretsally=sallyssecretpm=pm_pwserver_group=server_pwclient_group=client_pwtest_group=test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p=pmproject_s=server_groupproject_c=client_groupproject_t=test_group[project:/]@project_p=rw*-[project:/server]@project_p=rw@project_s=rw=[project:/client]@project_p=rw@project_c=rw=[project:/doc]@project_p=rw@project_s=rw@project_c=rw@project_t=rw=以上信息表示,只有Pm有根目录的读写权,ServejgroUP能访问server目录,Client_group能访问client目录,所有人都可以访问doc目录.6,修改SVnSerVe.conf文件,让用户和策略配置升效.SVnSerVe.conf内容如下:[general]anon-acceSS=noneaUth-acceSS=writePaSSword-db=/home/SVn/Project/conf/PaSSwdaUthz-db=/home/SVn/Project/conf/aUthz7,启动效劳器SVnSerVe-d-r/home/SVn8,测试效劳器AUthentication realm: <SVn://0:3690>92731041-2dae-4c23-97fd-9e1ed7f0d18dPaSSwordfor'root':AUthentication realm: <SVn://0:3690>92731041-2dae-4c23-97fd-9e1ed7f0d18dUSername:SerVer_groUPPaSSwordfor'SerVer_groUP':Svn:Authorizationfailed(SerVer_group没用根目录的访问权)Authenticationrealm:<svn://0:3690>92731041-2dae-4c23-97fd-9e1ed7f0d18dPasswordfor'root':Authentication realm: <svn://0:3690>92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername:pmPasswordfor'pm':A project/testA project/serverA project/clientCheckedoutrevision1.(测试提取成功)cdproject/serverSVncommitmain.c-m"测试一下我的C程序,看什么看,不行啊??"Transmittingfiledata.CommittedreViSion2.(测试提交成功)三,配置SVN效劳器的支持1,转换SVN效劳器的密码由于SVN效劳器的密码是明文的,效劳器不与支持,所以需要转换成 支持的格式。我写了一个Perl脚本完成这个工作.脚本内容如下:#cd/home/SVn/project/conf/#!/uSr/bin/perl#writebyhuabo,2021-11-20uSewarningS;uSeStrict;#opentheSVnpaSSwdfileopen(FILE,"paSSwd")ordie("CannotopenthepaSSwdfile!!!\n");#cleartheapachepaSSwdfileopen(OUT_FILE,">webpaSSwd")ordie("CannotopenthewebpaSSwdfile!!!\n");cloSe(OUT_FILE);#beginforeach(<FILE>){if($_=~向八[八#].*=/){$_=~s/=//;'htpasswd-bWebPaSSWd$_';}}./PtoWP.pl(先给该脚本加可执行权限,然后执行以转换密码)AddingpaSSWordforuSerpmAddingpaSSWordforuSerServer_groupAddingpaSSWordforuSerclient_groupAddingpaSSWordforuSerteSt_group现在目录下会多一个WebPaSSWd文件。2,修改 d.conf,添加关于SVN效劳器的内容编辑/etc/ d/conf/ d.conf,在最后添加如下信息:<Location/project>DAVSvnSVNPath/home/Svn/project/AuthTypeBaSicAuthName"Svnforproject"AuthUSerFile/home/Svn/project/conf/WebpaSSWdAuthzSVNAcceSSFile/home/Svn/project/conf/authzSatiSfyallRequirevalid-uSer</Location>3,启动D效劳器ServicedreStartStopping d:[FAILED]Starting d:[OK]测试结果如下列图所示:二I百L?/⅛Λ≠.r.te#Nq里/晓Ra如“ IiJilm;,ifLJAP.Zi^L1K!.1&3.⅛j.L0.∙'pfcθj⅛ct.∣,sy≥⅞4f(测试成功)四,配置邮件提醒支持1,安装Perl模块ModUle::BUild#./Build./Buildtest./Buildinstallcd..2,安装Perl模块AUthen::SASLmaketestmakeinstallcd..3,安装Perl模块Net::SMTP_authmaketestmakeinstallcd..4,安装Perl模块SVN::Notify./Build./Buildtest./Buildinstallcd..5,启动邮件效劳器servicesendmailrestartShutting down sendmail:[FAILED]Starting sendmail:[OK]Startingsm-client: [OK]6,配置自动发邮件脚本修改post-commit脚本,以支持邮件通知功能.cd/home/svn/project/hooks/vimpost-commit内容如下:#!/bin/shREPOS="$1"REV="$2"/usr/bin/svnnotify--repos-path"$1"--revision"$2"--tocaodaijun@pica--fromcaodaijun@feinno --handler"HTML::ColorDiff"--with-diff--smtplocalhost--smtp-userroot--smtp-pass5202114318-c"UTF-8"-gzh_CN-oraw--svnlook/usr/bin/svnlook--subject-prefix'[SVNUpdate]'(to参数代表接收邮件的地址,可以有多个,当你有多个老大的时候,这就很重要了,:〕。from参数是虚拟的,代表你的发送地址,一般情况下,这个参数不重要,但如果接收者的邮件效劳器有反垃圾邮件的功能,需要判定源地址的话,这个参数是否合法就显得很重要了)再给该脚本添加可执行权限chmod+xpost-commit7,再次提交时,就会给指定邮件地址发信了。如下列图所示:五,其它常用配置1,强制写log脚本配置pre-commit文件,要求用户每次更新文件都必须写log.Cd/home/svn/project/hooks/Vimpre-commit文件内容如下:#!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/bin/svnlookLOGMSG=、$SVNLOOKlog-t"$TXN""$REPOS”|grep”[a-zA-Z0-9]”|wc-c'if["$LOGMSG"-lt5(要求的log长度,依实际需要修改)];thenecho-e"\nEmptylogmessagenotallowed.Commitaborted!"1>&2exit1fi配置完成后,给本件加上可执行权限。再提交代码时,就必须按要求写注释了,:〕2,可修改log脚本配置pre-reVPrOP-Change文件,此文件在showlog中修改log时会运行,得到修改的权限,否那么会报错:DAVrequestfailed;it'spossiblethattherepository'spre-revprop-changehookeitherfailedorisnon-existent.Atleastonepropertychangefailed;repositoryisunchangedcd/home/svn/project/hooks/vimpre-revprop-change文件内容如下:REPOS="$1"REV="$2"USER="$3"PROPNAME="$4"if["$PROPNAME"="svn:log"];thenexit0;fiexit1配置完后加可执行权限升效。六,备份管理SVn效劳器的定期备份是很重要的,最简单的方式是定时备份仓库目录。1,新建备份目录mkdir/opt/project_backup2,编写备份脚本#cd/home/SVn/内容如下:#!/bin/baSh#writebyhuabo,2021-11-20cd/home/SVnnow='∕bin∕date+%Y%m%d'/bin/tarczVf"project_backup_$now.tar.gz"project/&&rm-rf/opt/project_backup/*&&∕bin∕mvProjeCt_backup_*.tar.gz/opt/project_backup/if[$?==0]thenreSult="OK!!"elSereSult="FalSe!!"fi#SendmailtoadminiStrator/bin/mailCaodaijun@piCa-S"projeCt_baCkup_$now"<<MESSAGEResult:'/bin/echo$result'MESSAGE给该脚本添加可执行权限。3,设定每天定时执行该脚本.#crontab-e输入如下内容:表示每天晚上23点运行此脚本。经过以上三步操作,就可以自动备份SVN资料了,且不管备份是否成功,都会给用户发送邮件信息。七,用SVnStat分析SVN数据.1,安装JAVASVnStat是JAVA应用程序,需要先安装JAVA环境。安装:2,下载SVnStat3,更新代码pwd/rootA project/teStA project/SerVerA project/clientCheckedoutreViSion5.4,生成SVnStat数据jaVa-claSSpathSVnStat-all.jarde.agentlab.SVnStat.SVnStat-jarSVnStat-all.jar-r/root/project.log-d/Var/www/html/5,用浏览器登录即可看到许多统计出来的图表。大致如下列图所示:∙⅛⅛⅛¾⅛⅞∖⅛4,gqhαα<lτ∙44⅞u⅞⅞-∙⅛⅛⅛⅛⅛⅛口,罩⅛⅛・CJ□r∣liiiΓ⅞To⅛lcommitsf⅛reachdaysep3Γ⅛t⅛dbyuser±jMHnt5'⅛≡i_gl,Jii⅛q.κιnJ(俺的测试代码很少,生成的图不成样子,拿官方的图来充当一下,:〕)八,用statsvn分析SVN数据1,下载statsvn2,生成StatSVn数据mkdir/var/www/html/statsvnjava-jarStatSVnjar-verbose-output-dir/var/www/html/statsvn//root/project.log/root/project3,用浏览器测测试效果如下列图:Developersff0⅛*Ei9∣3fiE<ι∏it 匚SIiD「UJmberDfDe√θlcρ≡rs-AUttl"AuthorLdChangesLirWS-mCodeLir∣⅛sPBrChange⅞M⅝∣t⅛m1(2≡.D⅛)-L7(0EaD⅛)Llel~s⅜r⅜a⅜-qr口u□3(75.DWj3(15.D⅛)ι.αΓ□tal≡4(1DD.D%]2∩(10D.Cr⅛j-RO-LaEt12MkI>"th∙AuthorUpto6∕20D97∕200⅛e/20099/2009lfl∕2TO911∕200⅞12∕2M91/2010I!HnOOQ(-)□ωQWɑ(-)ɑθɑ(-)口LJCE0E<1「IIrPLI口□(-)ɑ(-)口t-)口t-J0¢-)0¢-)α¢-)口MCTotals□<-)D(-)0f-)Dt-)ŋ¢-)□¢-)a(-)Dt-)CLines&fCode:ComributedLinesQfCode16]h"*/八骁.I.茜.GD.IWk.ne/dsCnMe.:!!,Z(⅛] UjllIUlP九,配置codestriker.1.安装codestriker依赖的Perl包.#perl-MCPAN-e'install

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论