git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 1/3] diff-merges: improve --diff-merges documentation

From
Elijah Newren <newren@gmail.com>
Date
Oct 9, 2023, 17:04 UTC
Message-ID
<CABPp-BGL_QzRd3mRhSF7rHYNA4pFWfKPA+UuZDODFgEv-1BHhA@mail.gmail.com>
In-Reply-To
<xmqqmswv3p11.fsf@gitster.g>
On Fri, Oct 6, 2023 at 11:49 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
>
> Junio C Hamano <gitster@pobox.com> writes:
>
> > Elijah Newren <newren@gmail.com> writes:
> >
> >> In my opinion, --remerge-diff does this better; wouldn't we want a
> >> ...
> > Between -c and --cc, I do not think there is anything that makes us
> > favor -c over --cc.  While the algorithm to decide which hunks out
> > of -c's output to omit was being polished, comparison with -c served
> > a good way to give baseline, but once --cc has become solid, I do
> > not think I've used -c myself.

Perhaps, then, the user manual should either omit -c, or recommend users use --cc instead?

> > I personally find that a very trivial merge resolution is far easier
> > to read with --cc than --remerge-diff, the latter being way too
> > verbose.

Ah, indeed, for those that know the --cc output format well (it takes a bit to figure out for newcomers), your example demonstrates this nicely. Thanks.

Show 5 quoted lines
> > Also, --cc and -c should work inside a read-only repository where
> > you only have read access to.  If remerge needs to write some
> > objects to the repository, then you'd need some hack to give a
> > writable object store overlay via the alternate odb mechanism, or
> > something, right?

Well, it does use a temporary object store with the alternate odb mechanism already, but I don't think there's any code to allow the user to input the location for the temporary store, and thus we'd probably attempt to write it underneath the same read-only directory. So, yes, read-only repositories would likely be problematic for --remerge-diff.

However, are read-only repositories worth mentioning in the documentation here?
Show 16 quoted lines
> Well, the above did not come out as well as I intended, as I forgot
> to prefix it with something I thought was obvious from what I said
> in the recent discussion in the earlier iteration of this topic,
> where I said that it would be "--remerge-diff", if I were to pick an
> option that is so useful that it deserves short and sweet single
> letter.  Narutally, it came after we gained experience with "--cc",
> so it would be surprising if it did worse.  Just like it is natural
> to expect that "--cc" would give more useful output than "-m -p"
> that predates everybody else.
>
> In short, I would say "--remerge-diff" would give output that is the
> easiest to grok among the three modern variants to show the changes
> a merge introduces.
>
> The above two cases, where I said cc does better than remerge-diff,
> were meant as _exceptions_ for that general sentiment.

Thanks, this is useful. This does make me wonder, though: Should we perhaps guide users as to what we recommend (and recommend against) in this documentation?

If we have lots of options and they all shine on different usecases, it makes sense to just provide a long list of possibilities for users. But if we generally feel that one is entirely supplanted by another (e.g. -c by --cc) it seems beneficial to mention that, and if we generally feel that one will often be clearer or more useful than the others (e.g. --remerge-diff), it seems beneficial to recommend it. Thoughts?

Also, perhaps this would be best to include in a follow-up series (as it appears from Sergey's latest iteration that we are leaving other tweaks for a later series anyway), if we do decide we want to do it...

Previous: Junio C HamanoNext: Junio C Hamano
Message 42 of 55 in “diff-merges: introduce '-d' option”
  1. 0/2 diff-merges: introduce '-d' optionSergey Organov, Sep 9, 2023
  2. 2/2 diff-merges: introduce '-d' optionSergey Organov, Sep 9, 2023
  3. Junio C HamanoSep 11, 2023
  4. Sergey OrganovSep 12, 2023
  5. Junio C HamanoSep 14, 2023
  6. Sergey OrganovSep 14, 2023
  7. Junio C HamanoSep 15, 2023
  8. Sergey OrganovSep 16, 2023
  9. Junio C HamanoSep 26, 2023
  10. Sergey OrganovSep 26, 2023
  11. Junio C HamanoSep 26, 2023
  12. Sergey OrganovSep 26, 2023
  13. 1/2 diff-merges: improve --diff-merges documentationSergey Organov, Sep 9, 2023
  14. Junio C HamanoSep 11, 2023
  15. Sergey OrganovSep 12, 2023
  16. Junio C HamanoSep 13, 2023
  17. Sergey OrganovSep 18, 2023
  18. Junio C HamanoSep 19, 2023
  19. Sergey OrganovSep 19, 2023
  20. 0/2 diff-merges: introduce '-d' optionSergey Organov, Sep 20, 2023
  21. 2/2 diff-merges: introduce '-d' optionSergey Organov, Sep 20, 2023
  22. 1/2 diff-merges: improve --diff-merges documentationSergey Organov, Sep 20, 2023
  23. 0/3 diff-merges: introduce '--dd' optionSergey Organov, Oct 4, 2023
  24. 2/3 diff-merges: introduce '--dd' optionSergey Organov, Oct 4, 2023
  25. Junio C HamanoOct 5, 2023
  26. Sergey OrganovOct 6, 2023
  27. 1/3 diff-merges: improve --diff-merges documentationSergey Organov, Oct 4, 2023
  28. Eric SunshineOct 4, 2023
  29. Sergey OrganovOct 4, 2023
  30. Junio C HamanoOct 5, 2023
  31. Sergey OrganovOct 6, 2023
  32. Junio C HamanoOct 5, 2023
  33. Elijah NewrenOct 6, 2023
  34. Sergey OrganovOct 6, 2023
  35. Sergey OrganovOct 6, 2023
  36. Junio C HamanoOct 6, 2023
  37. Sergey OrganovOct 6, 2023
  38. Junio C HamanoOct 6, 2023
  39. Elijah NewrenOct 7, 2023
  40. Junio C HamanoOct 7, 2023
  41. Junio C HamanoOct 7, 2023
  42. Elijah NewrenOct 9, 2023
  43. Junio C HamanoOct 10, 2023
  44. [silly] worldview documents?Junio C Hamano, Oct 10, 2023
  45. Emily ShafferOct 10, 2023
  46. Sergey OrganovOct 6, 2023
  47. Sergey OrganovOct 6, 2023
  48. 3/3 completion: complete '--dd'Sergey Organov, Oct 4, 2023
  49. Junio C HamanoOct 5, 2023
  50. Sergey OrganovOct 6, 2023
  51. 0/3 diff-merges: introduce '--dd' optionSergey Organov, Oct 9, 2023
  52. 2/3 diff-merges: introduce '--dd' optionSergey Organov, Oct 9, 2023
  53. 1/3 diff-merges: improve --diff-merges documentationSergey Organov, Oct 9, 2023
  54. 3/3 completion: complete '--dd'Sergey Organov, Oct 9, 2023
  55. Junio C HamanoOct 9, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.