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
signature.asc
Description: PGP signature

