[PATCH 1/3] UBUNTU: git-ubuntu-log -- commonise duplicated log handling

Stefan Bader stefan.bader at canonical.com
Wed Feb 10 11:19:57 UTC 2010


Andy Whitcroft wrote:
> We have two copies of the handling for Bug: et al in get-ubuntu-log
> only differing in whether Ignore: handling is active.  Refactor this
> code to share a single copy of this processing.
> 
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  debian/scripts/misc/git-ubuntu-log |   45 +++++++++++++----------------------
>  1 files changed, 17 insertions(+), 28 deletions(-)
> 
> diff --git a/debian/scripts/misc/git-ubuntu-log b/debian/scripts/misc/git-ubuntu-log
> index 666e831..b7ca943 100755
> --- a/debian/scripts/misc/git-ubuntu-log
> +++ b/debian/scripts/misc/git-ubuntu-log
> @@ -168,6 +168,7 @@ sub changelog_input {
>  		elsif ($pstate == 4) {
>  			next unless /^\s*?(.*)/;
>  			my $ignore = 0;
> +			my $do_ignore = 0;
>  			my $bug = undef;
>  			my %bugz = ();
>  			my $k;
> @@ -180,42 +181,30 @@ sub changelog_input {
>  			$desc = $1;
>  
>  			if ($desc =~ /^ *(Revert "|)UBUNTU:/) {
> -				while (<STDIN>) {
> -					$ignore  =  1 if /^ *Ignore: yes/i;
> -					if    (/^ *Bug: *(#|)(.*)/i) {
> -						foreach $k (split('(,|)*\s*#', $2)) {
> -							$bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
> -						}
> -					}
> -					elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
> -						$bugz{$1} = 1;
> -					}
> -					elsif (/^ *(CVE-.*)/) {
> -						$cve = $1
> -					}
> -					last if /^commit /;
> -				}
> +				$do_ignore = 1;
>  			} else {

> +				$do_ignore = 0;
>  				$author = $kernel_auth;
>  				$ignore = 1 if $desc =~ /Merge /;

I believe this will be not doing what we intended (hopefully not again my lack
of pearl). If do_ignore is 0 then the record will not get ignored, even if it is
a merge (which was intended)

> -				while (<STDIN>) {
> -					if    (/^ *Bug: *(#|)(.*)/i) {
> -						foreach $k (split('(,|)*\s*#', $2)) {
> -							$bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
> -						}
> -					}
> -					elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
> -						$bugz{$1} = 1;
> -					}
> -					elsif (/^ *(CVE-.*)/) {
> -						$cve = $1
> +			}
> +			while (<STDIN>) {

> +				$ignore  =  1 if /^ *Ignore: yes/i;

If it would be possible to have it set ignore to 1 if the match is true and
do_ignore is true, then it might be what we want and you can make the below more
smb safe.

> +				if    (/^ *Bug: *(#|)(.*)/i) {
> +					foreach $k (split('(,|)*\s*#', $2)) {
> +						$bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
>  					}
> -					last if /^commit /;
>  				}
> +				elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
> +					$bugz{$1} = 1;
> +				}
> +				elsif (/^ *(CVE-.*)/) {
> +					$cve = $1
> +				}
> +				last if /^commit /;
>  			}
>  
>                          $bug = join(", #", keys(%bugz));
> -			if (!$ignore) {
> +			if (!$do_ignore || !$ignore) {

Could be if (!ignore) again if the above change is possible and what is intended.


-Stefan

>  				&shortlog_entry($author, $desc, $bug,
>  						$cve, $commit, 0);
>  			}





More information about the kernel-team mailing list