当前位置:首页 » 操作系统 » linuxsvn钩子

linuxsvn钩子

发布时间: 2022-04-22 04:19:49

A. 在lnmp下配置svn钩子

在写的时候首先要清楚几点:

  1. svn中的钩子函数实际就是linux的shell脚本,只不过svn赋予了它特殊的作用。

  2. 所谓的同步只不过就是在特定事件下使用shell脚本去通知固定目录去检出

明白这些以后,应该就知道了,只需要在钩子函数当中写入,svn updae /home/wwwroot/default/,这一句就可以了,然后在/home/wwwroot/default/下手工检出,保存账号密码。这样就没有任何的问题了

B. linux 下 svn 每次更新都提示被锁,哪怕我svn cleanup之后,下次还这样,而且,提示更新了但是线上没变

从你贴的信息来看,是SVN服务器端的post-commit这个钩子报错,从报错内容分析,估计是post-commit这个钩子调用了svn update去更新你们的线上测试环境,但update时发现html-dev文件夹被锁,要求你去cleanup这个文件夹。

我估计你cleanup的不是服务器上的那个文件夹,而是你自己客户端的这个文件夹。去把服务器上的那个文件夹cleanup一下,然后再从你的客户端commit一次看看效果。

C. 如何通过svn钩子脚本记录提交人,提交库,提交文件,提交时间

其实原理很简单,就是利用svn的钩子:post-commit,在提交过后想做什么在这个脚本里就写什么。
假设我们的SVN目录是:/home/svn
我们需要同步的web目录是:/home/www/web(前提,这个web目录也是从svn里面检出的)

D. SVN的POST-COMMIT钩子怎么用

利用SVN的POST-COMMIT钩子自动部署代码

我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目
标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。

post-commit内容:
--------------------------------------------
#!/bin/sh
#修改为服务编码
export LANG=zh_CN.gb2312

#Set variable
REPOS="$1"
REV="$2"

SVN=/usr/bin/svn
WEB=/data/home/htdocs
LOG=/data/home/auto_svn.log

#update the code from the SVN
$SVN update $WEB --username username --password password --non-interactive

#......................
if [ $? == 0 ]
then

echo "$REPOS" "$REV" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
fi
-----------------------------------------------
需要注意:
1、需要用export指定编码。
2、需要指定svn全路径。
3、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。必须要使用sudo su 等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试
Python代码
env – ./post-commit
==================================================================================
#!/bin/bash
export LANG=en_US.UTF-8
src=/data/webroot/ask.j1.com ##local checkout directory###
deswebroot=/data/wwwroot/ask
remoteip=210.14.70.4
/usr/local/svn/bin/svn update $src --username webapp --password | grep -v -i update|awk '{print $2}'| while read chfile
do
if [ -e $chfile ];then
if [ -f $chfile ];then
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::") ###only file name###
rsync -avz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile root@$remoteip:$deswebroot/$dfile
else
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::")
rsync -auvz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile/ root@$remoteip:$deswebroot/$dfile/
fi
fi
done

E. linux配置的svn,上传文件总是在root目录下,怎么改为我自定义的目录

1、需要在服务器上安装svn服务器端,启动svn服务,并创建一个svn库;
2、将当前的default文件夹变成新建的svn库的工作副本(客户端存放数据的文件夹),具体操作:将当前default文件夹下的内容import到新建的svn库中,然后再清空default,然后再将svn库中的内容checkout到default;
3、使用svn的post-commit钩子(这个钩子是在每次成功commit后被SVN服务器自动调用的),编辑这个钩子,内容就是svn update 文件夹default,这样每次commit成功后就会自动更新default文件夹;
4、在你自己的电脑上checkout那个svn库,然后你就可以从本地commit,然后服务器端就自动更新default文件夹了。

F. svn钩子:本地与服务器的同步,即:本地提交之后,服务器自动更新,请问可否实现如何实现

修改服务器上hooks文件夹下的post-commit这个钩子,在里面加上svn update指令,这就可以实现你的需求了

post-commit这个钩子就是在commit完成时自动执行的,如果服务器是windows系统,那么钩子文件名就说post-commit.bat,内容就是一个批处理文件

G. linux下svn的钩子怎么配置

svn 的钩子没有使用过,既然这几个编码都不行你用下GB2312 或者你看下配置svn服务器的编码是不是正确的,有可能是 svn的服务器编码就是识别不了中文。

H. SVN错误是由于服务器上的自定义钩子函数处理导致

从报错信息来看,是在SVN服务器端设置了pre-commit这个钩子,这个钩子在每次发起commit时自动执行,在这个钩子里检查了你的SVN库的占用空间,对于占用空间超过102400000的SVN库就拒绝继续提交

从这里看来,似乎你是租用了一个限制了容量的SVN服务器,但现在你的容量已经满了,估计你得联系SVN服务提供商给你扩容,或者搬迁到其他SVN服务器去了。

I. SVN钩子程序如何写,新手入门,完全不懂,从零开始

如果服务器端是windows环境的话,那么钩子实际就是批处理文件(扩展名bat)

这些钩子都存放在服务器端的hooks文件夹内,比较常用的钩子包括pre-commit.tmpl、post-commit.tmpl等,pre-commit.tmpl是当服务器端接收到commit请求的时候自动调用这个钩子,post-commit.tmpl是当完成commit操作的时候服务器端自动调用这个钩子,在windows环境下钩子程序的扩展名要改成bat,而不能用tmpl

至于钩子的内容,就看自己的发挥了,你需要熟悉DOS批处理文件的编写技巧,常见的应用比如:当commit完成后,自动调用钩子程序,通过svn update命令,将最新版本发布到服务器上的测试环境中

J. linux svn hooks怎么写

post-commit.bat
echo off
set SVN_HOME="C:\Program Files (x86)\VisualSVN Server"
set SVN_ROOT=D:\Repositories
set UNIX_SVN_ROOT=D:\Repositories
set Log=D:\svnbackup\Log_files
set DELTA_BACKUP_SVN_ROOT=D:\svn_backup
set LOG_FILE=%1\backup.log
echo backup revision %2 >> %LOG_FILE%
echo %date%%time% %1 backup revision %2 >> %Log%\backup.log
for /r %SVN_ROOT% %%I in (.) do if D:\Repositories\%%~nI == %1 %SVN_ROOT%\%%~nI\hooks\deltaBackup %%~nI %2
goto end
:end

热点内容
如何避免服务器暴露ip 发布:2024-10-01 21:38:24 浏览:215
pythonrequestjson 发布:2024-10-01 21:37:37 浏览:852
珠海java 发布:2024-10-01 21:07:29 浏览:819
服务器剩余维护是什么 发布:2024-10-01 21:03:46 浏览:543
php扩展编译安装 发布:2024-10-01 21:03:45 浏览:94
qq号密码怎么破解密码 发布:2024-10-01 20:58:37 浏览:714
加密的exe视频转换 发布:2024-10-01 20:58:37 浏览:285
通过域名查找实际服务器ip 发布:2024-10-01 20:10:40 浏览:186
光猫的密码怎么改 发布:2024-10-01 20:02:35 浏览:278
数据挖掘常用算法 发布:2024-10-01 19:52:40 浏览:649