threads / discuss / 54238

git format-patch with useAutoBase = true

Subject: git format-patch with useAutoBase = true

## tl;dr

2 messages between Sep 15, 2020 and Sep 15, 2020.

replies: 1people: 2as markdown or json

Jacob Keller· Sep 15, 2020, 00:13 UTC · lore
Hi,
I just ran into a surprising and unexpected issue with git format-patch.

$ git format-patch -1 f7529b4ba3c98470b0e367ba447ad0da84dc308 fatal: base commit shouldn't be in revision list

It took me about 15 minutes to figure out this was referring to the fact that I have "useAutoBase" set to true in the git config, so that I get --base=auto by default.

It turns out, that if you, while this config is active, try to format an ancient patch that is historical, you will get this failure. Because --base wasn't specified on the command line, this made it very unintuitive what was going wrong.

(I started to try a git bisect thinking it was a some bug in my current version of git from the repo, which still failed..)

The failure occurs because the "automatic" base is newer than the requested commit. I am wondering if it would make sense to relax this restriction and make the format-patch automatically disable useAutoBase if it would conflict like this?

At the very least it would be helpful if the error message was more intuitive and potentially explained what was going on a bit better... :)

Thanks, Jake

Junio C Hamano· Sep 15, 2020, 20:24 UTC · re: Jacob Keller · lore

Re: git format-patch with useAutoBase = true

Jacob Keller <jacob.keller@gmail.com> writes:
Show 7 quoted lines
> $  git format-patch -1 f7529b4ba3c98470b0e367ba447ad0da84dc308
> fatal: base commit shouldn't be in revision list
> ...
> The failure occurs because the "automatic" base is newer than the
> requested commit. I am wondering if it would make sense to relax this
> restriction and make the format-patch automatically disable
> useAutoBase if it would conflict like this?

I agree that it does make a horrible end-user experience to die with the message like the above, trying to use a nonsense autobase.

← back to recent threads