我正在尝试在 Launchpad 中创建 Bugzilla 4 包电力供应协议。一直得到格式错误的补丁,并且多次从头开始重做补丁,但没有任何成功。其中一个日志可以看到这里(它很长,所以只需按 ctrl+f 即可找到单词 fail/ed)。错误指的是我的代码中的以下几行:
diff -Naur bugzilla-srcdir.orig//Bugzilla.pm bugzilla-srcdir/Bugzilla.pm
--- bugzilla-srcdir.orig//Bugzilla.pm 2010-11-12 10:27:20.664915051 +0100
+++ bugzilla-srcdir/Bugzilla.pm 2010-11-12 10:28:19.721916586 +0100
@@ -144,7 +144,7 @@
if (!i_am_cgi()
&& grep { $_ eq $script } SHUTDOWNHTML_EXIT_SILENTLY)
{
- exit;
+ exit(0);
}
# For security reasons, log out users when Bugzilla is down.
@@ -178,7 +178,7 @@
$template->process("global/message.$extension.tmpl", $vars, \$t_output)
|| ThrowTemplateError($template->error);
print $t_output . "\n";
- exit;
+ exit(1);
}
}
diff -Naur bugzilla-srcdir.orig//chart.cgi bugzilla-srcdir/chart.cgi
--- bugzilla-srcdir.orig//chart.cgi 2010-11-12 10:26:25.625929357 +0100
+++ bugzilla-srcdir/chart.cgi 2010-11-12 10:28:19.721916586 +0100
@@ -79,7 +79,7 @@
if (grep(/^cmd-/, $cgi->param())) {
my $params = $cgi->canonicalise_query("format", "ctype", "action");
print $cgi->redirect("query.cgi?format=" . $cgi->param('query_format') .
($params ? "&$params" : ""));
- exit;
+ exit(0);
}
my $action = $cgi->param('action');
@@ -102,7 +102,7 @@
if ($action eq "search") {
my $params = $cgi->canonicalise_query("format", "ctype", "action");
print $cgi->redirect("buglist.cgi" . ($params ? "?$params" : ""));
- exit;
+ exit(0);
}
$user->in_group(Bugzilla->params->{"chartgroup"})
@@ -233,9 +233,9 @@
else {
ThrowUserError('unknown_action', {action => $action});
}
-exit;
+exit(0);
# Find any selected series and return either the first or all of them.
sub getAndValidateSeriesIDs {
忽略时间戳,因为我使用了Bugzilla 3.6在 Ubuntu Natty 中。
答案1
您尝试在分支中应用的补丁包含大量带有不正确空格或行数的补丁块。这两种情况都会导致补丁块应用失败。
在上面的例子中,第一个块的大多数行都缺少空格,导致它与源不匹配。第二个文件包含前面没有空格的行,导致补丁尝试将其解释为补丁信息。修复这些错误后,补丁中还有几个错误需要修复。