Linux知识十:SVN安装配置与使用、SVN与Apache的整合

svn安装与使用知识:
svn安装所需软件:apr,apr-util,sqlite,neon,subversionyum install subversion:
在线安装版本库。./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib --enable-maintainer-mode:安装subversion时配置系数。
svn --version|svnserve --version:查看SVN版本。
svnserve -d|svnserve -d [--listen-port 端口号 ] -r /usr/bin:启动SVN服务。
netstat -nl|grep 3690:查看SVN占用3690端口状态。
ps -ef|grep svn:查看SVN进程是否启动。
htpasswd –c /SVNHome/conf/passwd.conf apache:在SVN账户文件中创建名为apache用户。
useradd -s /sbin/nologin -d /dev/null svn:创建svn专用用户。
chown -R svn.svn /usr/local/SVNHome/SVNRoot/husumiao:给目录分配属主、属组。
usage eg: svn delete ./tobeRemoveDir:从svn管理中排除,。
passwd.conf文件在Linux下设置规则:
 [test:/] //这表示,仓库test的根目录下的访问权限
 admin = rw //test仓库wooin用户具有读和写权限
 husumiao = r //test仓库bao用户具有读权限
 [test2:/] //test2仓库根目录下的访问权限
 wooin = r //wooin用户在test2仓库根目录下只有读权限
 bao = //bao用户在 test2仓库根目录下无任何权限
 [/] //这个表示在所有仓库的根目录下
 * = r //这个表示对所有的用户都具有读权限

SVN命令行知识:
svn help [命令]:查看命令帮助。
建立版本库的方法一:mkdir SVNHome文件和conf、SVNRoot 子文件后,在SVNRoot下使用svnadmin create husumiao:创建名为husumiao的版本库,修改husumiao/conf/passwd文件的svnserve.conf的password-db = ../../../conf/passwd。
svnadmin create --fs-type fsfs /usr/local/SVNHome/SVNRoot/husumiao:建立版本库方式二。
[[ 进入版本库存入目录:cd ../SVNHome  新建版本库名称:mkdir /test 创建版本库:svnadmin create --fs-type fsfs /SVNHome/test 修改验证机制:anon-access = none、auth-access = write、password-db = /opt/svn/conf/passwd、auth-db = /opt/svn/conf/authz、realm = module 之后授权版本库文件夹及子所有文件:chmod 777/775 -R text(文件夹名) ]]
创建版本库后建立统一的难证配置详细,在新建的版本库中找到conf/svnserve.conf文件添加或对应修改如下:
  anon-access = none
  auth-access = write
  password-db = /usr/local/SVNHome/conf/passwd
  auth-db   = /usr/local/SVNHome/conf/authz
  realm   = module
 /usr/local/SVNHome/conf/passwd文件信息配置:[users]用户名1  = 密码、用户名2 = 密码。
 /usr/local/SVNHome/conf/authz文件信息配置:[users]用户名1  = 密码、用户名2 = 密码。
svn import /要导入的目录 file:///usr/local/SVNRoot -m “说明文字”:导入数据到版本库,-m说明是必须的。
svn add ./文件:往svn中添加新的内容(文件或文件夹) 。
svn ci|commit -m “说明“:提交版本,-m说明是必须的。
svn delete svn://ip/版本库名/文件目录或文件 -m "说明":删除版本库指定文件,-m说明是必须的。
svn up|update -r 版本号 文件:在版本库中对文件更新到指定版本操作。
svn resolved:清理版本库。
svn lock -m “说明"  文件、svn unlock 文件:文件的锁定与解锁。
svn checkout一定要注意:ps -ef | grep svnserve 显示出来的信息svnserve指向的数据地址是你存放版本库地址(eg:usr/local/SVNHome/SVNRoot)。
    如果不是,先用pkill svnserve停止然后用 svnserve -d -r 存放版本库数据地址(eg:/usr/local/SVNHome/SVNRoot/),然后再使用 svn co svn:/ip/版本库名导出版本库。
svn co|checkout --username 用户名 --password 密码 svn://域名或IP地址/库名|svn checkout svn://域名或IP地址/库名:导出版本库操作。
svn co|checkout file:///版本库位置(eg:usr/local/SVNHome/SVNRoot/husumiao/):使用本地文件方式导出版本库。
svn checkout 后,svn会记住用户的信息,如果要更改,可以删去当前 os 用户 / .subversion/auth/svn.simple 里边的信息,也可以更改里边的文件或者svn --username abcd info svn://ip/版本库:将改成用户 abcd。
svnadmin dump 版本库位置(eg:/usr/local/SVNRoot/SVNHome/版本库名) >文件位置(eg:/www/文件名):导出一个版本库信息到一个文件中。
svnlook tree usr/local/SVNHome/SVNRoot/husumiao/:以列表的方式查看版本库中的文件结构。
svn ls|list svn://ip/版本库名|file:///版本库位置:查看版本库文件。
svn ls|list --verbose svn://ip/版本库名|file:///版本库位置:详细模式查看版本库文件,包括文件日期及权限等相关信息。
svn st|status path:目录下的文件和子目录的状态,正常状态不显示(不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定)。
svn st|status -v path:显示文件和子目录状态(第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人),注:svn status、svn diff和 svn revert命令在没有网络的情况下也可以执行,原因svn在本地的.svn中保留了本地版本的原始拷贝。
svn log path:查看日志信息(eg:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化)。
svn info path:查看文件详细信息(eg:svn info test.php)。
svn di|diff path:比较差异,将修改的文件与基础版本比较(eg:svn diff test.php)。
svn di|diff -r m:n path:对版本m和版本n比较差异,(eg:svn diff -r 200:201 test.php)。
svn merge -r m:n path:将两个版本之间的差异合并到当前文件(eg:svn merge -r 200:205 test.php,将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)。
svn sw|switchs:更新工作副本至不同的URL(eg:switch URL [PATH]|switch –relocate FROM TO [PATH...]。
svn resolved:解决冲突,移除工作副本的目录或文件的“冲突”状态(ef:resolved PATH…),本子命令不会依语法来解决冲突或是移除冲突标记,它只是移除冲突的,相关文件,然后让 PATH 可以再次提交。
svn cat 目标[@版本]: 输出指定文件或URL的内容,如果指定了版本,将从指定的版本开始查找(eg:svn cat -r PREV 文件 > 文件 (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的) 。
SVN一般问题:
SVN 由于目标机器积极拒绝,无法连接解决方案:svnserve -d -r 服务端服务打开、svnserve.conf文件在里面配置。
No repository found 解决方案:先用pkill svnserve停止然后用 svnserve -d -r 存放版本库数据地址(eg:/usr/local/SVNHome/SVNRoot/),然后再使用 svn co svn:/ip/版本库名导出版本库。
认证失败解决方案:查看svnserve.conf文件中的 password-db所对应的文件是否存在、对应文件的目录及后缀名。

SVN与Apache整合:
修改对应的httpd.conf文件,安装subversion后,apache的conf/httpd.conf文件会自动增加了模块。
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
相应的so文件也自动copy到了apache/modules,这些工作就不用自己动手了。需要自己动手修改apache下的httpd.conf最后增加以下内容:
<Location /svn>             #定义网页目录为/svn
 DAV svn              #开启svn(融合apache的svn哦)
 SVNPath /usr/local/SVNHome/SVNRoot       #版本库的目录
 SVNListParentPath On           #开启svn版本库父目录功能
 SVNParentPath /usr/local/SVNHome       #指定父目录位置,以后所有版本库都将存放在该目录下
 AuthType Basic             #指定授权模式
 AuthName "SVN REPOS"           #登陆窗口标题显示SVN REPOS
 AuthUserFile /usr/local/SVNHome/conf       #指定访问版本库的账户和密码存放文件,该文件需要用apache的htpasswd命令创建
 AuthzSVNAccessFile /usr/local/SVNHome/conf/auth    #指定访问版本库的用户和组的权限控制文件
 Require valid-user            #要求有效的用户才能访问
</Location> #字段结束标志
注意:
(1) SVNPath一定要跟./svnadmin create /data/svn/svnroot的目录一样。
(2) 目录svnroot的权限设置成755

编辑工作知识:
修改Zend Studio为中文/英文版方法:打开用户配置文件:……\ZDE\config_5.5\desktop_options.xml,
把其中的预览无高亮打印?
   1. <customized_property ID="desktop.language"> 
   2.    <locale language="en" country="" variant=""/> 
   3.   </customized_property> 
改为预览无高亮打印?
   1. <customized_property ID="desktop.language"> 
   2.    <locale language="zh" country="" variant=""/> 
   3.   </customized_property>libxml2知识:libxml2-2.6.32.tar.gz:安装包名。
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache --with-mysql:配置准备安装。
yum install libxml2:在线安装升级。
ps -ef | top:查看系统所有进程。
ps -ef | grep bash/conf/ssh/文件名/进程号:查看shell进程信息/系统各种配置/服务器能登录的账号/文件运行所占用的进程名称/进程状态。
ps -ef | more:运行时进程|分页查看功能。
gcc 文件名.c -o 编译后的文件名:使用系统编译C程序文件、编译之后使用 ./编译后的文件名:执行文件。
php 文件名.php:执行php文件。
pwd/man pwd:查看当前目录/查看当前目录相关信息。
cd -/cd/cd ..:回到之前的目录/最上级目录/上一级目录、cd /:进入根目录。

猜你喜欢

转载自berrywu.iteye.com/blog/809972