[PATCH 1/1] UBUNTU: SAUCE: Adopt the use of "BugLink:" lines in git commit messages.
Andy Whitcroft
apw at canonical.com
Fri May 1 20:06:12 UTC 2009
On Fri, May 01, 2009 at 11:12:12AM -0700, Brad Figg wrote:
> From rtg:
>
> I think there are a couple of good reasons for doing this.
>
> 1) I'm a lazy typist. I find it quite convenient to simply click on the
> Buglink URL and be presented with the bug page.
>
> 2) The 'Bug:' field implies a certain context, which is useless when
> pushing our patches upstream. Rather then having to cleanse patches of
> irrelevant information, lets put it in the commit in an interesting and
> useful form to begin with. I suspect, given the feedback that Amit has
> already received from Andrew Morton, that the 'Bug:' field will not be
> well received in general.
>
> 3) Finally, if we start developing for the upstream kernel (as we will
> if I get my way), we can take advantage of BugLink goodness
> automatically as our upstream patches show up in stable and other
> places.
>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/370475
>
> Signed-off-by: Brad Figg <brad.figg at canonical.com>
> ---
> debian/scripts/misc/git-ubuntu-log | 29 +++++++++++++++++++++++++----
> 1 files changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/debian/scripts/misc/git-ubuntu-log b/debian/scripts/misc/git-ubuntu-log
> index 860990c..b880ce6 100755
> --- a/debian/scripts/misc/git-ubuntu-log
> +++ b/debian/scripts/misc/git-ubuntu-log
> @@ -60,7 +60,7 @@ sub add_entry($) {
> }
>
> sub shortlog_entry($$$$$) {
> - my ($name, $desc, $bug, $cve, $commit) = @_;
> + my ($name, $desc, $bug, $buglink, $cve, $commit) = @_;
> my $entry;
>
> $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g;
> @@ -74,6 +74,7 @@ sub shortlog_entry($$$$$) {
> $entry->{'cve'} = $cve;
> $entry->{'commit'} = $commit;
> $entry->{'author'} = $name;
> + $entry->{'buglink'} = $buglink;
>
> if ($desc =~ /^Revert "/) {
> push(@reverts, $entry);
> @@ -117,6 +118,23 @@ sub shortlog_output {
> }
> if (defined($entry->{'bugno'})) {
> print " - LP: #" . $entry->{'bugno'} . "\n";
> + # If there isn't a buglink, assume the bug number is to a bug
> + # in launchpad and generate the appropriate url
> + #
> + if (!defined($entry->{'buglink'})) {
> + print " - BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/" . $entry->{'bugno'} . "\n";
> + }
> + }
> + if (defined($entry->{'buglink'})) {
> + # If there isn't a bugno line, and if the buglink is into
> + # launchpad, use the buglink to create the launchpad bug number
> + #
> + if (!defined($entry->{'bugno'})) {
> + if ($entry->{'buglink'} =~ /https:\/\/.*.launchpad.net\/.*\/([0-9]+)\S*$/) {
> + print " - LP: #" . $1 . "\n";
> + }
> + }
> + print " - BugLink: " . $entry->{'buglink'} . "\n";
I don't think I was expecting to find the buglink going into the debian
changelog. Tim were you?
> }
> if (defined($entry->{'cve'})) {
> print " - " . $entry->{'cve'} . "\n";
> @@ -167,6 +185,7 @@ sub changelog_input {
> next unless /^\s*?(.*)/;
> my $ignore = 0;
> my $bug = undef;
> + my $buglink = undef;
>
> # skip lines that are obviously not
> # a 1-line cset description
> @@ -178,7 +197,8 @@ sub changelog_input {
> if ($desc =~ /^ *(Revert "|)UBUNTU:/) {
> while (<STDIN>) {
> $ignore = 1 if /^ *Ignore: yes/i;
> - $bug = $2 if /^ *Bug: *(#|)(.*)/;
> + $bug = $2 if /^ *Bug: *(#|)(.*)/i;
> + $buglink = $1 if /^ *BugLink: *(http.*)/i;
> $cve = $1 if /^ *(CVE-.*)/;
> last if /^commit /;
> }
> @@ -186,14 +206,15 @@ sub changelog_input {
> $author = $kernel_auth;
> $ignore = 1 if $desc =~ /Merge /;
> while (<STDIN>) {
> - $bug = $2 if /^ *Bug: *(#|)(.*)/;
> + $bug = $2 if /^ *Bug: *(#|)(.*)/i;
> + $buglink = $1 if /^ *BugLink: *(http.*)/i;
This form only allows us to put one BugLink: in the change. We rarely
but sometimes do do the following if more than one bug is fixed by the
same change:
Bug: #123456, #234567
If we don't need the BugLink: in the debian/changelog then I think we
could make multiple BugLink: <foo> headers work and simplify the patch
a lot by simply adding them to $bug, something like this:
$bug = ''
while (<STDIN>) {
$bug .= $2 . "," if /^ *Bug: *(#|)(.*)/i;
$bug .= $1 . "," if /^ *BugLink: *http.*\/([0-9]+)/i;
$cve = $1 if /^ *(CVE-.*)/;
last if /^commit /;
}
chop($bug);
> }
> }
>
> if (!$ignore) {
> - &shortlog_entry($author, $desc, $bug,
> + &shortlog_entry($author, $desc, $bug, $buglink,
> $cve, $commit, 0);
> }
>
> --
-apw
More information about the kernel-team
mailing list