在 SVN 中(使用命令行 SVN),是否有一种命令可以获取作者(提交者)的电子邮件?或者我们可以将每个用户名设置为一个电子邮件,并从挂钩脚本中获取作者的电子邮件吗?
在 SVN 中(使用命令行 SVN),是否有一种命令可以获取作者(提交者)的电子邮件?或者我们可以将每个用户名设置为一个电子邮件,并从挂钩脚本中获取作者的电子邮件吗?
与Git不同,SVN(Subversion)不关心作者的电子邮件地址。它只有作者名字,通常是一个用户名。在大多数组织中,您可以通过在用户名后添加@domain.com
来获取电子邮件。
在 commit-email.pl 文件中,在 $author 后面,我添加了:
my @authoremail = &read_from_process('php', '-f', '/usr/bin/svnemail.php', '/var/lib/submin', $author);
$mail_from = shift @authoremail;
脚本内容位于 /usr/bin/svnemail.php:
<?php
if (isset($argv[1])) {$fpath1=$argv[1];} else die("dummy@dummy.dummy\n");
if (isset($argv[2])) {$usrnm=$argv[2];} else die("dummy@dummy.dummy\n");
$file = fopen($fpath1."/userproperties.conf", "r");
$loginfound=false;
$emailnotfound=true;
while ((!feof($file)) and ($emailnotfound)){
$line = fgets($file);
if ($loginfound) {
if (substr($line,0,1)=="[") {
die ("dummy@dummy.dummy\n");
}
if (substr($line,0,8)=="email = ") {
echo substr($line,8);
$emailnotfound=false;
}
}
if (substr($line,0,strlen($argv[2])+2)=="[".$argv[2]."]") {
$loginfound=true;
}
}
if ($emailnotfound) {
echo "dummy@dummy.dummy\n";
}
fclose($file);
?>
我不是程序员,所以请不要因这段代码惩罚我。谢谢。