标签: post-commit-hook

SVN post-commit和Jenkins的问题

我正试图让CI与詹金斯合作.到目前为止,我们一直在我们的环境中执行两个预定的构建,但我们的开发人员希望CI能够正常运行.我按照Jenkins Subversion插件维基页面中的说明操作:

https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin

这让我得到了一个在命令行执行的脚本就好了,但是当我在Subversion中提交更改(使用TortoiseSVN客户端)时,提交似乎挂了,我没有看到Jenkins得到通知.

这是我的脚本:

#!/bin/sh

REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
XSLT_FILE=/var/www/svn/codelog.xslt
RSS_FILE=/var/www/html/code_all.rss
MAX_RESULTS=40

/usr/bin/wget \
  --auth-no-challenge \
  --no-check-certificate \
  --header "Content-Type:text/plain;charset=UTF-8" \
  --post-data "`svnlook changed --revision $REV $REPOS`" \
  --output-document "-" \
  --timeout=2 \
  https://192.168.100.16/subversion/${UUID}/notifyCommit?rev=$REV
svn log "file://$REPOS" --limit "$MAX_RESULTS" -v --xml | xsltproc "$XSLT_FILE" - > "$RSS_FILE"
Run Code Online (Sandbox Code Playgroud)

RSS源已经在脚本中.这已经工作了一年多.

我已经更新了文件权限,以防出现问题:

[root@Subversion hooks]# ls post-commit -ao
-rwxrwxr-x 1 apache 530 Jul 17 06:27 post-commit
Run Code Online (Sandbox Code Playgroud)

svn post-commit-hook jenkins

8
推荐指数
2
解决办法
7557
查看次数

SVN提交后更新错误(无法从模板创建临时文件/权限被拒绝)

我的post-commit钩子是:

/ usr/bin/svn update/var/www/html/mysite/--username myusername --password mypassword --no-auth-cache >> /var/www/html/mysite/foo.txt 2>&1

执行提交后,我的post-commit钩子输出到foo.txt以下内容:

更新'/ var/www/html/mysite':svn:E000013:无法从模板'/var/www/html/mysite/.svn/tmp/svn-XXXXXX'创建临时文件:权限被拒绝

有任何想法吗??必须是与权限相关的内容.它曾经工作,但发生了一些事情.

linux svn post-commit-hook

8
推荐指数
2
解决办法
2万
查看次数

触发Jenkins使用Windows上的post-commit钩子进行远程构建

我正在设置我的Subversion post-commit钩子,以便在提交时远程触发Jenkins构建.

首先,我改post-commit.tmplpost-commit.bat,然后:

我先试了一下:

SET REPOS=%1
SET REV=%2
C:/wget_for_win/wget http://localhost:8080/jenkins/job/my_project/build
Run Code Online (Sandbox Code Playgroud)

然后我提交了一些代码,它按预期工作.但这只会构建一个项目,但我希望它更灵活,所以我改为post-commit.bat我在Jenkins Subversion插件页面上找到的那个:

SET REPOS=%1
SET REV=%2
SET UUID=`svnlook uuid %REPOS%`
C:/wget_for_win/wget \
 --header="Content-Type:text/plain;charset=UTF-8"
 --post-data="svnlook changed --revision %REV% %REPOS%"
 --output-document="-"
 --timeout=2
 http://localhost:8080/jenkins/subversion/%UUID%/notifyCommit?rev=%REV%
Run Code Online (Sandbox Code Playgroud)

但是这个不起作用.它没有触发Jenkins再建造.我在第二个脚本中做错了什么?

我认为在批处理文件中运行"svnlook"时存在问题.我svnlook uuid [REPO LOCATION]在cmd中运行,它显示了id.然后我把它放在一个批处理文件中:

SET UUID=svnlook uuid [REPO LOCATION]
ECHO %UUID%
Run Code Online (Sandbox Code Playgroud)

运行上面的批处理文件不会输出id.它只显示svnlook uuid [REPO LOCATION].

svn batch-file post-commit-hook jenkins

6
推荐指数
1
解决办法
5714
查看次数

为什么`git cherry-pick`(没有`--no-commit`)不运行我的提交后钩子?

如何使用命令触发提交后挂钩git cherry-pick <commit>

我试过的:

  • 我试过命令git commit -m '...'。它正常触发了提交后钩子。
  • 在 githooks 文档中,没有与cherry-pick 相关的钩子。
  • 在查看 Git 的源代码后,我发现它git merge在某些情况下使用,git commit在其他情况下使用。但我不确定何时使用哪个命令。

我的问题是:

  1. 为什么在我使用时提交后钩子不起作用git cherry-pick
  2. 有没有一个可以让cherry-pick运行的钩子?

git githooks post-commit-hook git-cherry-pick

6
推荐指数
1
解决办法
84
查看次数

SVN post-commit - 拒绝.svn/lock的权限

提交后,我收到一个post-commit hook failed错误:

svn: Can't open file '.svn/lock': Permission denied
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我的post-commit钩子文件在它自己运行时完全正常,只是在从实际提交中调用时.

现在,提交后文件结束了svn update另一个工作副本,所以我假设错误在这个工作副本中.

当我进入.svn这个工作副本时,没有locks文件/目录.这可能是脚本失败的原因.

这是我的提交后文件:

#!/bin/sh

REPOS="$1"
REV="$2"

cd /var/www
/usr/bin/svn update
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

svn post-commit-hook

5
推荐指数
1
解决办法
9650
查看次数

为什么非交互式rebase上的Git post-commit挂钩没有运行?

给定一个任意的,可执行的Git post-commit钩子,它不会在非交互式rebase期间运行,根据GIT-REBASE(1)Manpage,在非交互模式下,它既不是前者的同义词,rebase --force-rebase也不rebase --no-ff是前者的同义词.

但是通过使用rebase --interactive --no-ff相同的Git钩子进行交互式rebase,可以在post-commit上运行.

有人可以解释这种行为背后的基本原理.

git git-rebase non-interactive post-commit-hook

5
推荐指数
1
解决办法
483
查看次数