Hello,

On Mon 29 Oct 2018 at 02:02PM GMT, Ian Jackson wrote:

> Sean Whitton writes ("Bug#903377: convert-from-gbp: `diverged', --overwrite 
> if no previous dgit push"):
>> On Mon 09 Jul 2018 at 10:48AM +0100, Ian Jackson wrote:
>> > has arguably made things worse for a different use case: if the user
>> > goes straight from (i) gbp without dgit, to (ii) gdr with dgit, then
>> > the new pseudomerge generation cannot work.  So there will be a new
>> > message about that.
>>
>> How offputting will this message be?  Sorry, I don't have a convenient
>> test case, since I always upload with dgit ;)
>
> It is generated by this code:
>
> +       print STDERR f_ <<END, "$@";
> +Cannot confirm dgit view: %s
> +Failed to stitch in dgit view (see messages above).
> +dgit --overwrite will be needed on the first dgit push after conversion.
> +END
>
> If you look in the body of the anon sub $previous_dgit_view you'll see
> the things which might appear in the %s.
>
> This message is not a snag; it just goes to stderr.  Unlike dgit, gdr
> is not, in general, very chatty, so the user will probably actually
> see it.

Good.  Your

    -will require I<--overwrite>.  Try pushing without this option first,
    -and then dgit will suggest using it if it is needed.
    +will have to pass I<--overwrite> to dgit.  git-debrebase will normally
    +tell you if this is will be needed.

seems right.

>> +In some cases where you used B<git debrebase convert-from-gbp> since
>> +the last upload, it is not possible for dgit to make your history
>> +fast-forwarding from the history on B<dgit-repos>.  In such cases you
>> +will require I<--overwrite>.  Try pushing without this option first,
>> +and then dgit will suggest using it if it is needed.
>
> This is not really right.  It does not make sense to try first without
> --overwrite, and then pass it if dgit complains that it is needed.
> The purpose of --overwrite is to reassure dgit that everything is OK.
> The only effect is to carry on rather than stopping, in certain cases.
>
> If you are going to pass --overwrite if dgit complains that it wants
> it, you might as well pass it unconditionally (unless you were a dgit
> developer and wanted to check that dgit was correctly flagging this
> issue).

Ah, indeed.

> Anyway, now that git-debrebase convert-from-{gbp,unapplied} will make
> the pseudomerge when it can, I think (hope!) that either (i) gdr will
> make the psuedomerge and --overwrite won't be needed or (ii) gdr will
> not be able to make the psuedomerge but will advise the user that
> --overwrite will be needed.
>
> So I think the user should use --overwrite iff gdr advised them that
> it would be needed.  In that case they need to check that the
> changelog doesn't lie.

Right.

> The background to all of this is that --overwrite (without a version
> number) is pretty safe: dgit will check that the version being
> overwritten is mentioned in a not-UNRELEASED entry in your
> debian/changelog.  So you can only lose work from --overwrite in a
> scenario which contains something isomorphic to this:
> [...]
> I notice persistent difficulties around when to use --overwrite.  I
> wonder if it needs a much longer discussion in one of the more
> discursive manpages.

I think so.  Going to file a bug.

-- 
Sean Whitton

Attachment: signature.asc
Description: PGP signature

Reply via email to