Control: forcemerge -1 842614
Felipe Sateler writes ("Bug#902534: dgit: needs a better integration story with
patches-unapplied maintainer trees"):
> Currently, dgit-maint-gbp(7) says:
> > dgit pull can't yet incorporate NMUs into patches-unapplied gbp branches.
> > You can just apply the NMU diff the traditional way. The next upload will
> > require --overwrite.
>
> This is an unfortunate limitation, given gbp is pretty popular (although
> not universal)[1]. It would be great if dgit could better integrate with
> such workflows. In particular, there are two different steps:
>
> 1. Not require --overwrite after incorporating an NMU.
> 2. Provide some tooling for pulling NMUs into the maintainer tree.
>
> I think the first one is more important. The second one is already
> partially solved by gbp itself (via gbp-import-dsc).
I don't think these can be separated. dgit wants the git history
structure to imply that what is in the maintainer's HEAD contains
everything that is in the NMU. That's analogous to the usual git fast
forward check. --overwrite is always needed when something has been
done which does not turn source-code-containment into
git-branch-ancestry.
At least, dgit does not make this problem any harder. Having to pass
--overwrite may *seem* like "making it harder" but what is really
going on is that the Debian archive has no fast forward checks,
so the old dput/dupload workflow is like passing --overwrite
*on every upload*.
I think doing this right is probably possible but it requires a lot of
thinking and will be distinctly nontrivial. I don't intend to spend
time on this in the near future. If I do work on making `dgit pull'
work in more cases, it will probably be to make git-debrebase cope
with general merges, as discussed in git-debrebase(5).
People who want a delta queue workflow which is better integrated with
git should perhaps consider using git-debrebase instead of gbp :-).
Of course contributions to improve this area would be very welcome. I
am happy to review patches etc.
Ian.