SVN中继-是否有办法创建;委托书;比如SVN存储库?

SVN中继-是否有办法创建;委托书;比如SVN存储库?,svn,Svn,简而言之,我正在使用免费的SVN托管服务,我想将JIRA与SVN集成。然而,我想为SVN实现预提交钩子,以验证针对JIRA中问题的提交评论,并在适当的情况下拒绝此类评论。我无法直接访问SVN服务器ofc,所以我想知道是否可以在另一台主机上配置SVN,使其充当“代理”。提交流类似于: 1) User -> commit to proxy -> validation ok -> commit to external repository 2) User -> commit

简而言之,我正在使用免费的SVN托管服务,我想将JIRA与SVN集成。然而,我想为SVN实现预提交钩子,以验证针对JIRA中问题的提交评论,并在适当的情况下拒绝此类评论。我无法直接访问SVN服务器ofc,所以我想知道是否可以在另一台主机上配置SVN,使其充当“代理”。提交流类似于:

 1) User -> commit to proxy -> validation ok -> commit to external repository
 2) User -> commit to proxy -> commit validation failed -> return to user with error message
这和所谓的“外部”(不管是什么)有什么关系吗

看一看。它重量轻,易于配置。它可以做的是在每次提交后运行一个任务。它可以编译代码、运行单元测试、部署,并且可以完成您认为需要提交后和提交前挂钩的大多数任务

如果Jira问题被错误地归因于,我对拒绝承诺非常谨慎。发生的情况是,在其他票证下悄悄地进行了更改,或者生成了一个假票证,并且所有提交都是针对该票证进行的。我在一家银行,除非有一张Jira票,否则你不能兑现,那张票是开着的,是分配给你的。所发生的事情是,在代码中发现的已知错误没有被修复,单元测试无法工作,而且当开发人员修复东西时,他们只是将其应用于他们知道已打开的票据,而与修复无关。吉拉的信息变得毫无意义

我做的第一件事是删除预提交触发器,并将其作为开发过程的一部分添加到Jenkins中。突然,提交速度加快了,开发人员开始自行处理发现的问题。随着开发人员确保单元测试能够通过新的单元测试,单元测试的数量增加了,代码也得到了改进。更令人惊讶的是,开发人员开始添加Jira票证信息,并根据Jenkins提供更详细的提交消息

Jenkins通常会在每次提交后进行构建。构建可能包括其他内容,例如运行单元测试、构建文档以及报告(使用图形)提交中发现的任何问题。Jenkins甚至可以部署代码并运行功能测试

但是,每个构建都显示提交消息。如果提交消息中有Jira票证,则会有指向该Jira票证的链接。更妙的是,Jenkins在Jira记录单中添加了一条注释,说明该bug是在特定Jenkins构建中处理的(带有指向该构建的链接)

现在,Jenkins不仅仅是一个开发工具,而是一个QA工具。QA将发现一个在Jira中标记为已修复的问题,查看修复该问题的Jenkins构建,然后测试该特定构建。(Jenkins的另一个特性是:它可以在每个构建中存储可部署的工件。)。如果需要,QA可以重新打开问题,或者报告发现的新错误。QA并没有在sprint(或发布)的最后阶段介入,而是积极地跟踪开发人员。bug可以在开发人员编写它们的第二天检测到,并在第二天修复

项目经理还发现詹金斯和吉拉是一个有用的组合。他们现在可以确切地说出将在生产中部署什么构建。生成在各种环境中测试时进行了标记。UAT不再批准构建,开发人员偷偷地进行一些代码更改,这些更改在生产之前从未测试过

由于来自QA和项目经理的压力,开发经理迫使他们的开发人员添加好的提交消息,并添加所需的Jira票证。此外,开发经理还发现Jenkins中的信息很有用。提交消息不能单独查看,而是针对特定的构建、一组单元测试和特性。甚至开发人员自己也发现这些信息很有用。这是开发人员第一次费心查看提交消息。以前,提交消息毫无意义。开发人员主要输入无意义的Jira信息,并提交“修复错误”之类的消息。现在,提交消息是有意义的,开发人员可以使用它们来跟踪更改

最后,我们去掉了pre-commit钩子,Jira票证信息实际上在提交消息中得到了改进。它改进了,因为我们改变了组织的文化。这就是好的CM发生的方式。工具不再妨碍工作。相反,它们对你的工作变得很重要。每个人都看到了软件质量的提高,并成为该过程的拥护者


现在谈谈你的实际问题: 有几种方法可以使用代理Subversion服务器。Wandisco提供了他们所称的代理Subversion服务器,允许您在世界各地安装代理Subversion服务器。然而,这些主要是为了允许远程开发人员使用本地Subversion存储库。Wandisco确保对所有存储库进行所有提交

问题是您希望代理阻止主Subversion存储库中的提交。这是不可能的——除非您部署预提交钩子来强制主存储库等待代理决定是否允许进行提交——这是不可能的。否则,您的代理将不会具有主存储库中的提交

此外,为什么还要麻烦代理呢?如果可以设置代理,为什么不简单地将代理用作主Subversion服务器呢

但是,您可以在一小时内安装Jenkins服务器,并在Jenkins、Jira和Subversion存储库之间实现真正的集成。你的牌打对了,你不仅会发现这个解决方案足够好,而且比依赖预提交钩子要好


如果你把你的开发者当作一群爱发牢骚的小学生,他们必须被仔细观察,这样他们才不会违反规则,他们就会这样做。如果你像对待高素质的专业人员一样对待你的开发人员,他们就会这样做。

哈,你写了很多!我知道詹基斯的事。我在寻找免费CI环境时找到了它