Re: git rebase --continue after solving conflicts doesn't work anymore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sebastián

On 19/02/2019 14:03, Sebastián Mancilla wrote:
My system is macOS Mojave 10.14.2. I normally use Git from Homebrew (currently
Git 2.20.1).

I investigated this further, and I think I found the problem on my end.

When I actually run "git rebase --interactive <commit>" from the terminal,
everything works fine.

But almost every time I start my rebases from inside "tig" [0], for which I
have this mapping:

         bind main R <git rebase -i %(commit)

tig will exit after running that command, and then I normally continue working
on the rebase from the shell. And it is when I start the rebase this way that
"git rebase --continue" fails after solving conflicts.

Second, I have tig installed with the Nix package manager [1], which shows

         $ ~/.nix-profile/bin/tig --version
         tig version 2.4.1
         ncursesw version 6.1.20180127
         readline version 6.3

So, I decided to try with tig from Homebrew, and then the problem
doesn't happen.
The Hombrew version of tig shows:

         $ /usr/local/bin/tig --version
         tig version 2.4.1
         ncurses version 5.7.20081102
         readline version 8.0

I will keep using tig from Homebrew to avoid issues for now.


In summary, the problem only happens when I start the rebase from inside tig,
but only when tig is the version from the Nix package manager, which has
different dependencies than the Homebrew version of tig.
And it happens for Git 2.20.x and master. Git <= 2.19.x works fine.


I also did bisect Git (I never though I would be bisecting Git itself).
It landed in this commit: 4d010a757c (sequencer: use read_author_script(),
2018-10-31).

And the content of .git/rebase-merge/author-script is always the same:

         GIT_AUTHOR_NAME='Sebastián Mancilla'
         GIT_AUTHOR_EMAIL='smancill@xxxxxxxx'
         GIT_AUTHOR_DATE='@1550530007 -0300


Thanks for all the details, the problem is that the older version of git that the Nix tig uses to start the rebase creates author scripts that are not correctly quoted (as you can see above) and cannot be read by the newer version of git you were using to continue the rebase (it should be possible to continue the rebase with the git bundled with Nix tig). Anyway I'm glad the Homebrew tig is working for you. When we made this change and discussed whether we needed backwards compatibility I think we only discussed the possibility of git being upgrading while a rebase was stopped for conflict resolution, not the possibility of people having two different versions of git installed and using one to start a rebase and the other to continue it.

Best Wishes

Phillip

Regards


[0]: https://github.com/jonas/tig
[1]: https://nixos.org/nix/

El mar., 19 de feb. de 2019 a la(s) 06:59, Phillip Wood
(phillip.wood@xxxxxxxxxxxx) escribió:

Dear Sebastián

On 19/02/2019 07:22, Eric Sunshine wrote:
[cc:+phillip.wood@xxxxxxxxxxxx]

Thanks Eric

On Tue, Feb 19, 2019 at 1:45 AM Christian Couder
<christian.couder@xxxxxxxxx> wrote:
On Tue, Feb 19, 2019 at 5:20 AM Sebastián Mancilla <smancill.m@xxxxxxxxx> wrote:
But since Git 2.20.x it doesn't work anymore. Now after solving the conflicts
and running "git rebase --continue" I get this error most of the time:

      error: unable to dequote value of 'GIT_AUTHOR_DATE'

It looks like this can happen only when an "author-script" file (most
likely .git/rebase-merge/author-script)

or it could be .git/rebase-apply/author-script depending on the options
passed to rebase when it started (the sequencer and am use the same code
for reading the author script now)

is read by the sequencer
mechanism. Could you show us the content of this file on your machine?

A very good suggestion considering that there have been changes
recently specifically related to the parsing of GIT_AUTHOR_DATE in C
code.

That would be very helpful, without seeing that it's hard to know what
the problem is.

Best Wishes

Phillip







[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux