Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:post-receive电子邮件挂钩,包括差异补丁?_Git - Fatal编程技术网

Git:post-receive电子邮件挂钩,包括差异补丁?

Git:post-receive电子邮件挂钩,包括差异补丁?,git,Git,在谷歌搜索之后,我发现了一个Git的post接收钩子,我用它将所有提交发送到远程/共享回购 问题是它只能提供提交人、日志消息、日期和受影响的文件。我还想在电子邮件中查看受影响的文件生成的修补程序,以查看对代码所做的更改。Subversion很好地做到了这一点 是否有人有一个解决方案,可以将一个env变量传递给执行此操作的post-receive钩子?或者更好,一个已经被捏造出来的例子 谢谢大家 我已经有一段时间没有运行它了,但是(我相信)它是在线的。我拿了过去随git一起提供的东西,并根据自己的

在谷歌搜索之后,我发现了一个Git的post接收钩子,我用它将所有提交发送到远程/共享回购

问题是它只能提供提交人、日志消息、日期和受影响的文件。我还想在电子邮件中查看受影响的文件生成的修补程序,以查看对代码所做的更改。Subversion很好地做到了这一点

是否有人有一个解决方案,可以将一个env变量传递给执行此操作的post-receive钩子?或者更好,一个已经被捏造出来的例子


谢谢大家

我已经有一段时间没有运行它了,但是(我相信)它是在线的。我拿了过去随git一起提供的东西,并根据自己的喜好重新安排了它。我很久没有试过做类似的事情了

我有一些它的截图:

  • (两项承诺)
  • (替换以前的标签)
    • 参见本节

      echo ""
      echo "Summary of changes:"
      git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev
      
      在这里,git被要求提供差异,但随后也被要求对其进行总结。删除--stat和--summary标志,您将看到差异

      git diff-tree --find-copies-harder $oldrev..$newrev
      
      下面是显示所有修订的另一种方式,包括从$oldrev到$newrev的差异

      git --no-pager log --find-copies-harder $oldrev..$newrev
      

      最新的Git版本应该安装一个
      post-receive-email
      脚本。其中写道:

      hooks.showrev

      用于格式化电子邮件中每个修订的shell命令,带有 “%s”替换为提交id。默认为“git rev list-1” --漂亮的%s”,显示提交id、作者、日期和日志 消息要列出以空行分隔的完整修补程序,请 无法将其设置为“git show-C%s;echo”


      因此,只需在存储库中将hooks.showrev设置为“git show-C%s;echo”,并使用电子邮件挂钩即可。我在这里遇到了类似的问题:

      实际上,post-receive-email脚本有不同的版本——git.kernel.org上提供的版本通知并尊重hooks.showrev,而我没有


      但是这个讨论很酷,谢谢,我一定会看的!上面链接的另一个脚本也有gitweb链接功能,其他人在这方面做得怎么样?

      尽管这个问题已经有了公认的答案,但我认为这是我遇到的一个更好的post receive mailer挂钩:

      通过作者的博客帖子发现:


      如果您对颜色等感兴趣,这里还有另一个:

      你好,达斯汀。你有没有修改过使输出看起来与上面的截图相似?我很确定这就是我第一句话中的要点链接。如果没有,则没有:(不幸的是,不是每个人都可以查看您的屏幕截图。当我单击其中一个链接时,它会显示一个页面,您需要登录到Evernote,而您的屏幕截图在那里不可见。嗨,robin。我尝试了上述两种MOD,但仍然无法获得差异输出。对,我忘记了“-p”在两个版本中的选项。Bombe中,我都尝试过在命令行上设置以下内容,但没有成功。#git config--global hooks.showrev“git show-C%s;echo”没关系,您不能将其添加到--global,它必须是git config,否则您的解决方案是正确的,谢谢!在全局设置中设置所有必要的配置值都没有问题。或者,要配置更改前后的上下文行数:“git show-U20-C%s;echo”,其中-U20指定,例如,每行差异前后的二十行上下文。