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

Re: `--rebase-merges' still failing badly

From
Michael Witten <mfwitten@gmail.com>
Date
Oct 11, 2018, 02:48 UTC
Message-ID
<9a2bd0246038424ab1cdfa68f07cdd4d-mfwitten@gmail.com>
In-Reply-To
<xmqqsh1djtij.fsf@gitster-ct.c.googlers.com>
On Thu, 11 Oct 2018 08:01:40 +0900, Junio wrote:
Show 32 quoted lines
> Michael Witten <mfwitten@gmail.com> writes:
>
>> On Wed, 10 Oct 2018 14:43:46 +0900, Junio wrote:
>>
>>> We haven't seen  much complaints and breakages  reported against the
>>> two big "rewrite in C" topics  around "rebase"; perhaps it is a good
>>> time to merge  them to 'next' soonish  to cook them for  a few weeks
>>> before moving them to 'master'?
>>
>> In my opinion, the `--rebase-merges' feature has been broken since the
>> beginning, and the builtin version should  be fixed before it is moved
>> ahead.
>
> [...]
>
> If "rebase-merges" has been broken since  the beginning, as long as the
> "rewrite in C" topics  around "rebase" do not make it  even worse, I do
> not think it is a good move  to block the topics moving forward. If the
> feature were so  broken that it is not practically  useful, then people
> wouldn't be using it  in the versions of Git before  the rewrite, so it
> won't harm  anybody if  the same  feature in  the rewritten  version is
> equally (or even  more severely) broken, as long as  the other parts of
> the feature works at least equally well compared to the older version.
>
> We are not in the business of hostage taking.
>
> What  *should*  block  the  rewrited  version  is  a  regression,  i.e.
> something that used  to work well no longer works  or works differently
> in such a way that established workflows need to be adjusted.
>
> [...] I do not think that is a reason to keep "rewrite in C" waiting in
> 'pu'.
* Your logic  is appealing,  and I  nearly pursuaded  myself by  the same
  reasoning to submit my email as  a separate discussion, as you suggest.
  However, what convinced me otherwise is the following:
      The  closer you  move  the rewrite  to  a fast-forward-only  public
      branch  name, the  more  likely downstream  projects  are going  to
      set  up  new,  long-lived  releases around  this  very  useful  but
      nevertheless broken feature.
  The moment you announce a new release, there are going to be a bunch of
  people who grab that release and then  NEVER look back, and so the rest
  of us will be stuck with this problem for who knows how long.
  So, not only is this an appeal  to the authors to fix this problem, but
  its also  an appeal  to you to  make sure that the  next  major release
  includes the fix.
* Also, I say the following without irony or tongue in cheek:
      Maybe, no one  has complained  because  few people  are using  this
      feature yet, or  their commit summaries are  simplistic, or they've
      got workarounds (as I've got).
  Not  only must  this feature  be turned  on explicitly,  but `git'  has
  existed for  over a decade  *without* it;  users who are  interested in
  sophisticated management of commit history have already developed other
  ways  to achieve  the  same result  (I  know I  did),  or their  commit
  messages are  so simplistic that  the bug  is never triggered,  or they
  just plan around it by automatically running a quick search/replace for
  the offending characters or for the irritating "labels".
  If the last decade has shown  us anything, it's that git's fundamentals
  are  so good  that programmers  can get  around any  bug on  their own,
  without having to appeal to others  for help. And, what is a programmer
  if not someone who is used to making things Just Work [Damnit]?
  As an illustration,  consider the recent `break' command  that is being
  added to the repertoire of `git  rebase -i'. Hell, I (and probably many
  others) have been doing that for YEARS with:
      x false
  No need for a "new" command. I bet that 10 years from now,  people will
  *still* be using their own ways,  and will *still* be totally oblivious
  to the existence of `break'.
  That is to say, I wouldn't put much faith in the degree to which people
  report issues. The programming world has a lot of itchy backs, and just
  as many personal inventions for scratching them.
As always, thanks for taking the time to review everyone's input.

Sincerely, Michael Witten

Previous: Junio C HamanoNext: Johannes Schindelin
Message 26 of 34 in “What's cooking in git.git (Oct 2018, #01; Wed, 10)”
  1. Junio C HamanoOct 10, 2018
  2. Ævar Arnfjörð BjarmasonOct 10, 2018
  3. Jeff KingOct 10, 2018
  4. builtin stash/rebase, was Re: What's cooking in git.git (Oct 2018, #01; Wed, 10)Johannes Schindelin, Oct 10, 2018
  5. Junio C HamanoOct 10, 2018
  6. Junio C HamanoOct 11, 2018
  7. js/mingw-wants-vista-or-above, was Re: What's cooking in git.git (Oct 2018, #01; Wed, 10)Johannes Schindelin, Oct 10, 2018
  8. Junio C HamanoOct 10, 2018
  9. Phillip WoodOct 10, 2018
  10. Junio C HamanoOct 11, 2018
  11. Junio C HamanoOct 11, 2018
  12. diff.c: die on unknown color-moved ws modeStefan Beller, Oct 11, 2018
  13. Stefan BellerOct 11, 2018
  14. Junio C HamanoOct 12, 2018
  15. Stefan BellerOct 11, 2018
  16. Junio C HamanoOct 12, 2018
  17. Phillip WoodOct 12, 2018
  18. Junio C HamanoOct 12, 2018
  19. Phillip WoodOct 16, 2018
  20. Stefan BellerOct 16, 2018
  21. Thomas GummererOct 10, 2018
  22. Junio C HamanoOct 11, 2018
  23. `--rebase-merges' still failing badlyMichael Witten, Oct 10, 2018
  24. Michael WittenOct 10, 2018
  25. Junio C HamanoOct 10, 2018
  26. Michael WittenOct 11, 2018
  27. Johannes SchindelinOct 12, 2018
  28. Stefan BellerOct 10, 2018
  29. Junio C HamanoOct 11, 2018
  30. Tim SchumacherOct 10, 2018
  31. Johannes SixtOct 10, 2018
  32. Junio C HamanoOct 11, 2018
  33. Derrick StoleeOct 11, 2018
  34. Duy NguyenOct 14, 2018

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.