On Wed, Oct 10, 2018 at 11:51:24AM +0100, Ian Jackson wrote:
> > However I also see that:
> >  * without --include-dirty, it's completely ignoring the added
> >    d/source/format file
> 
> This is indeed wrong.  I think fixing "dgit: build-source and
> push-source disregard -wc" the way I plan to would fix this too.

ACK.

> >  * with --iclude-dirty is giving up with
> >     error: tree contains uncommitted files and --clean=check specified
> 
> That seems coherent.  Unless you think --include-dirty should turn
> --clean=check into --clean=none ?  That seems unwise.

ACK

> Consider --clean=dpkg-source --ignore-dirty, which means to run the
> rules clean target and then tolerate uncommitted stuff.

That's -wd/-wdd.  Mhh, You have a point here, I should try that in the
future.  I like -wc because it's impossibly quick and usually it's the
state I find myself in while working.

> >  * without -wc and with --include-dirty, it tries to its quilt
> >    linearisation, but it fails with:
> 
> I think this is because the algorithm used by dgit for quilt
> linearisation implicitly assumes that it can use the
> debian/source/format from your git tree.  I think trying to work with
> an uncommitted change to debian/source/format is sufficiently weird
> that I don't mind that it goes wrong.

That's a fair assumption.
You mentioned somewhere that you could add at least a warning when
d/source/format has uncommitted changes (or is present but untracked).
I think I would find that useful.

> The other question is what you expected dgit's quilt linearisation to
> do for you.  If you use --include-dirty with a tree with
> dpkg-source-uncommitted changes, I think you'll get the same error.
> There is no way round this because dgit's quilt fixup generates
> a *commit* containing the added patches.  It wouldn't make sense to
> commit patches for uncommitted changes.

Right, now I get this.  I think I didn't realize the not-so-little
detail about linearising commits, not changes.

> That --include-dirty does not cause dgit to try to do quilt fixup for
> uncommitted changes is perhaps implicit in
>   https://manpages.debian.org/unstable/dgit/dgit.7.en.html#FORMAT_3.0_(QUILT)
> and the description of `dgit quilt-fixup' in
>   https://manpages.debian.org/unstable/dgit/dgit.1.en.html
> but perhaps something should be included in the discussion of
> --include-dirty, maybe something like this:
> 
>   Changes not committed to git are not taken into account by dgit's
>   quilt fixup (see `FORMAT 3.0 (QUILT)' in dgit(7).  So you may need
>   to run dpkg-source --commit yourself.
> 
> ?

I must admit that I haven't recently read dgit's documnetation (as I did
last year, and costantly re-reading documentation you already read is
quite boring), so I wouldn't have noticed.
But perhaps making that point explicit could help others in the future.

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Attachment: signature.asc
Description: PGP signature

Reply via email to