On Sun, May 05, 2019 at 08:31:14PM +0100, Ian Jackson wrote:
> --overwrite is intended for this situation.  The documentation talking
> about "NMU changes" is speaking loosely, and should mention "changes
> in uploads which weren't done with git" too.
> 
> It will make a pseudomerge of the synthetic import.  Is that a problem
> for you ?

I'd been hoping to avoid the pseudomerge and have the histories be
exactly identical, but I probably shouldn't be too precious about that,
and you make a good point about allowing people with existing dgit
clones to fast-forward.

> I think the documentation should encourage you to use --overwrite.
> Indeed I would encourage you to do that.
> 
> You are free to use --deliberately-not-fast-forward if you want to,
> although I think it is less desirable.
> 
> HTH.
> 
> If this makes some kind of sense I think we should treat this as a
> docs bug.

That makes sense now, and I agree.  FWIW, I found the documentation
reasonably clear as far as it went, but the things I was missing were:

 * an explicit indication about --deliberately-not-fast-forward being
   non-fast-forwarding either from a synthetic local import or from the
   dgit server history;

 * an indication of which camp this particular situation falls into of
   the two options that are presented in various places and why, that
   is, the situation of a gap between two dgit pushes in which non-dgit
   uploads had happened.

In fact, now that I reread it, dgit-maint-native(7) is fairly clear, but
I found the reference documentation of the two options a bit ambiguous.

(A side note while I'm looking at this anyway: the use of "rewind" as a
synonym for "non-fast-forwarding", while somewhat common in git
terminology, is unfortunate.  The terms seem to be borrowed from video
playback systems, where "rewind" is often just the exact opposite of
"fast-forward", and so when I see "rewinding history" in a few places in
dgit(1) my initial interpretation is that it must mean "updating a ref
to point to an ancestor of the commit that it previously pointed to",
whereas I think dgit(1) means "any push that isn't a fast-forward".  I
don't know if I'm the only one for whom it has that connotation.)

Thanks for the clarification,

-- 
Colin Watson                                       [cjwat...@debian.org]

Reply via email to