Calling debian/build-git-snapshot with the --distribution switch has no effect. It seems that the variable isn't passed to the adjust_debian_changelog() function.
There is a colision with debug: 41 'distribution|D=s' => \$distribution, 46 'debug|d' => \$debug, It works with the long option name (--distribution)
Reading the code it seems like debug is better called verbose. Anyone object to a change to verbose?
Because of the whole --version/-v fixing case sensitivity seemed best.
Created attachment 91056 [details] [review] Bug 21000: Force case sensitivity on Getopt::Long Before patch: -D and -d are mistaken for --debug $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" Option d does not take an argument git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "squeeze-dev" -v "19.06~git+20190627205913.466f99e4-1" "Building git snapshot." dch warning: Recognised distributions are: experimental, unstable, testing, stable, oldstable, oldoldstable, {bullseye,buster,stretch,jessie,wheezy}-proposed-updates, {testing,stable,oldstable,oldoldstable}-proposed-updates, {bullseye,buster,stretch,jessie,wheezy}-security, {testing,stable,oldstable,oldoldstable}}-security, jessie-backports, stretch-backports and UNRELEASED. Using your request anyway. NOTE: squeeze-dev in the first dch line and warning about Option d. Apply patch: -D and -d are differentiated correctly. $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "stretch" -v "19.06~git+20190627210316.b3f919a7-1" "Building git snapshot." dch warning: Previous package version was Debian native whilst new version is not dch -r "Building git snapshot." NOTE: No more 'Option d' error, and "stretch" in the first dch line.
Created attachment 91294 [details] [review] Bug 21000: Force case sensitivity on Getopt::Long Before patch: -D and -d are mistaken for --debug $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" Option d does not take an argument git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "squeeze-dev" -v "19.06~git+20190627205913.466f99e4-1" "Building git snapshot." dch warning: Recognised distributions are: experimental, unstable, testing, stable, oldstable, oldoldstable, {bullseye,buster,stretch,jessie,wheezy}-proposed-updates, {testing,stable,oldstable,oldoldstable}-proposed-updates, {bullseye,buster,stretch,jessie,wheezy}-security, {testing,stable,oldstable,oldoldstable}}-security, jessie-backports, stretch-backports and UNRELEASED. Using your request anyway. NOTE: squeeze-dev in the first dch line and warning about Option d. Apply patch: -D and -d are differentiated correctly. $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "stretch" -v "19.06~git+20190627210316.b3f919a7-1" "Building git snapshot." dch warning: Previous package version was Debian native whilst new version is not dch -r "Building git snapshot." NOTE: No more 'Option d' error, and "stretch" in the first dch line. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Good catch, Mark. This always bothered me and didn't find the time to dig into the solution. Thanks!
Created attachment 91332 [details] [review] Bug 21000: Force case sensitivity on Getopt::Long Before patch: -D and -d are mistaken for --debug $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" Option d does not take an argument git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "squeeze-dev" -v "19.06~git+20190627205913.466f99e4-1" "Building git snapshot." dch warning: Recognised distributions are: experimental, unstable, testing, stable, oldstable, oldoldstable, {bullseye,buster,stretch,jessie,wheezy}-proposed-updates, {testing,stable,oldstable,oldoldstable}-proposed-updates, {bullseye,buster,stretch,jessie,wheezy}-security, {testing,stable,oldstable,oldoldstable}}-security, jessie-backports, stretch-backports and UNRELEASED. Using your request anyway. NOTE: squeeze-dev in the first dch line and warning about Option d. Apply patch: -D and -d are differentiated correctly. $ sudo DEB_BUILD_OPTIONS=nocheck ./debian/build-git-snapshot -r ~/debian -v 19.06~git --autoversion -d -D="stretch" git status --porcelain -unormal git rev-parse --short=8 HEAD dch --force-distribution -D "stretch" -v "19.06~git+20190627210316.b3f919a7-1" "Building git snapshot." dch warning: Previous package version was Debian native whilst new version is not dch -r "Building git snapshot." NOTE: No more 'Option d' error, and "stretch" in the first dch line. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Very sensible fix, thanks.. Passing QA
Nice work! Pushed to master for 19.11.00
Pushed to 19.05.x for 19.05.03
backported to 18.11.x for 18.11.09