问题标签 [svn-hooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2990 浏览

visualsvn-server - 带有批处理文件的 VisualSVN 提交后挂钩

我在 Windows 服务器上运行 VisualSVN。

我正在尝试添加一个提交后挂钩,以便在提交发生时更新我们的暂存项目。

在 VisualSVN 中,如果我在钩子/提交后对话框中键入命令,一切都会很好。

但是,如果我使用完全相同的命令创建批处理文件,则会收到一条错误消息,提示 post-commit 挂钩失败。没有其他信息。

我的命令使用绝对路径。

我尝试将批处理文件放在 VisualSVN/bin 目录中,我在那里得到了同样的错误。

我已经确保 VisualSVN 对批处理文件所在的目录具有权限。

我唯一能想到的是我没有从 VisualSVN 正确调用它。我只是用批处理文件名(“c:\VisualSVN\bin\my-batch-file.bat”)替换钩子/提交后对话框中的 svn update 命令我已经尝试过使用和不使用路径(没有路径它根本找不到文件)。

我是否需要在 SVNCommit 对话框中使用不同的语法来调用批处理文件?在批处理文件中怎么样(它只有我的 svn update 命令。如果我从命令行运行批处理文件,它就可以工作。)

最终我想使用批处理文件,因为我想在提交后做更多的事情。

0 投票
2 回答
1037 浏览

svn - 颠覆任何预锁钩子导致解锁失败

我已经在 Windows XP 上安装了 VisualSVN 服务器。(身份验证方法 - 基本 Windows 身份验证)。我编辑了pre-lock.cmd脚本并添加了注释行,REM do nothing.

接下来我试图锁定一个文件。一切都很好,直到这一点!

然后我尝试释放锁并得到以下错误Server sent unexpected return value (400 Bad Request) in response to UNLOCK

请注意,我没有任何预/后解锁脚本。我正在使用 TortoiseSVN 客户端。我已经尝试了没有预锁定挂钩的锁定/解锁例程,它工作正常。

任何关于为什么必须发生这种情况的见解都会有所帮助。

0 投票
2 回答
2650 浏览

svn - 提交后挂钩上的颠覆失败?

我试图让 subversion 在提交时自动部署当前的工作副本。

例如,如果有人签出 'public_html' repo 然后提交更改,我需要 SVN 在运行 svn 的服务器上自动运行 'svn update /path/to/public_html/'。

我设置了一个提交后挂钩,它调用:

/usr/bin/svn 更新 /path/to/public_html/

我确保提交后挂钩是可执行的,如果我通过 SSH 手动运行脚本,它会正常运行并更新 /path/to/public_html/ 目录,因此我们知道提交后脚本工作正常。

我遇到的问题是,每当我提交时,我都会收到此错误:

事实是,SVN 是在说谎:提交实际上并没有失败——如果我手动更新目录(或手动运行提交后脚本),更新完成并且更改会反映在服务器上。

那么,有谁知道为什么我的提交后挂钩失败了?

我已经看过很多关于这个主题的帖子,但除了“尝试手动运行提交后脚本”之外似乎没有任何解决方案,我已经尝试过并且效果很好。所以提交后脚本不是t这个问题,似乎是SV​​N本身的问题。

任何帮助将不胜感激!!

0 投票
1 回答
314 浏览

windows - 用于 Windows 访问控制的颠覆挂钩模板

我在 windows XP 操作系统上为 subversion 设置了一个带有 bitnami 堆栈的 subversion 服务器。这是针对本地网络的,我想控制在访问 repo 时窃取锁定和打破锁定的能力。我将 pre-lock.tmpl 和 pre-unlock.tmpl 更改为可执行文件,但它仍然无法正常工作。当我在 linux 系统上测试它的 bitnami 堆栈时,它运行良好。当我查看模板脚本时,该脚本适用于 linux 系统。我可以让脚本在 Windows XP 上运行吗?

0 投票
1 回答
1836 浏览

svn - 在 Subversion 中创建标签时是否有可用的钩子?

我认为这个问题解释了一切,但让我解释一下我想做什么。

我正在考虑每当在我的存储库中创建标签时,自上一个标签以来输入的所有提交消息都会输入到 wiki 页面中。这样,人们就不需要访问 subversion 服务器来查看每个标签的提交内容。

也许有一种更简单的方法,但我想我可以通过在挂钩中连接来创建标签。想法?建议?

谢谢

0 投票
3 回答
5225 浏览

svn - SVN post commit:提交的用户是谁?

在 SVN 提交后挂钩中,如何获取执行提交的用户?

0 投票
1 回答
169 浏览

apache - SVN 钩子突然停止工作

我们的钩子突然停止工作。一切工作正常,突然停止 - 没有对 env 进行任何更新。任何。

除此之外,钩子在 shell 中作为 apache 用户执行时有效,但在通过 apache http 提交时无效。

所有的特权都很好,正如我首先写的那样,在相同的设置下工作正常......有什么想法吗?

颠覆版:1.6.6 阿帕奇版:2.2.3

即这是我们测试的一个钩子:

0 投票
2 回答
1032 浏览

windows - Groovy Subversion 挂钩脚本

我想在 Groovy 中编写一些 Subversion (SVN) 挂钩脚本。SVN 服务器将在 Windows 上运行,根据 SVN 书:

您需要提供一个程序,其基本名称是钩子的名称,其扩展名是 Windows 识别的可执行程序的特殊扩展名之一,例如程序的 .exe 和批处理文件的 .bat。

除了在本地机器上安装 Groovy、设置GROOVY HOMEenv var 和添加%GROOVY_HOME%\binPATH.SVN 之前,我还需要做什么才能执行 Groovy 钩子脚本?

谢谢,唐

0 投票
1 回答
399 浏览

svn - Subversion 合并插件 / 签入后 / 签出前挂钩

我想对一组构建为 zip 文件的文件进行源代码管理,其中包含 XML 文件。

由于目前这些文件按原样签入,因此它们被视为具有所有明显限制的二进制文件

由于这些文件包含 XML 文件,为了避免要求程序员压缩/解压缩,我想自动执行以下操作

对于签到:自动分解文件:

  • 这些文件具有唯一的扩展名,因此对于使用该扩展名签入的每个文件
  • 将该文件解压缩到内存/临时位置
  • 对于这些文件(XML)中的每一个,将它们标准化(用于比较/合并)
    • 以预定义的顺序(例如字母顺序)重新排序根的直接子节点
    • 有些项目有本地参考ID,排序后按顺序重写ID
  • 在 SVN 中创建一个与原始压缩文件同名的文件夹
  • 将 zip 中的文件签入该文件夹

对于签出:自动重新打包文件:

  • 不太重要 - 可以使用 Maven / Ant 完成
  • 检查展开的文件夹(或其任何内容文件)时
  • 而不是签出该文件夹/文件:
  • 压缩该文件夹中的所有文件
  • 并查看压缩文件

对于合并

我假设合并不是 SVN 服务器端,而是客户端的责任,所以有没有一种简单的方法来编写合并插件,(例如对于 Tortoise)

以上任何一种可能吗?如果是这样,那怎么办?有不止一种方法吗?

0 投票
2 回答
1004 浏览

php - 颠覆后提交挂钩

我有一种情况,我正在考虑使用 subversion/svn 作为项目的存储库/版本控制系统。我试图弄清楚是否有可能(如果有,如何)能够在提交后挂钩/进程上拥有颠覆系统,以将用户/文件/时间(可能还有 msg)写入其中一个外部文件 (csv) 或 mysql 数据库。

一旦我弄清楚如何调用 post commit 钩子将输出写入文件,我就可以修改我的问题跟踪器/项目应用程序,然后根据用户角色以及成功/失败来实现基本的工作流程过程存储库文件。

简短的样本/指针会有所帮助。

我的测试环境,在 centos5 上运行 subversion/svnserve。使用的脚本语言是 PHP/Python。