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

Re: git-rebase + git-mergetool results in broken state

From
David Aguilar <davvid@gmail.com>
Date
Mar 1, 2016, 16:38 UTC
Message-ID
<20160301163801.GA18095@gmail.com>
In-Reply-To
<CA+hqKG8M97SEmejrdr-OC0yQc=ofY4yWej4gG_6B2jsqGq8imw@mail.gmail.com>
On Tue, Feb 23, 2016 at 04:44:49PM -0600, Joe Einertson wrote:
> I'm experiencing an annoying issue which leaves the repository in a
> weird, broken state. I am attempting a rather vanilla rebase, rebasing
> the commits from a feature branch on top of the newest commits on
> master.

Can you tell us a little more about what's in the branch being rebased? Is it perhaps a public project that you can share so that we can reproduce the issue?

Here are a few more questions that can help narrow down the issue:

* What Git vesion are you using?
* What mergetool are you using?
  - See the output "git config merge.tool"
* What platform are you on?  Are you on Windows?
* Does the conflicting commit contain renames?

I'm trying to figure out whether we are missing a `mkdir -p` somewhere, and whether we hadn't run into this in the past because the merge needs to involve renames.

Show 23 quoted lines
> So, I run a typical series of commands:
> 1. git checkout feature-branch
> 2. git rebase master (conflicts ensue)
> 3. git mergetool
> 
> The conflicts are expected, but when using mergetool to resolve them,
> I encounter many "no such file or directory" errors.
> 
> mv: cannot stat
> ‘app/components/mediaManager/kbImageEditor.directive.coffee’: No such
> file or directory
> cp: cannot stat
> ‘./app/components/mediaManager/kbImageEditor.directive_BACKUP_13615.coffee’:
> No such file or directory
> mv: cannot move ‘.merge_file_ogGjXX’ to
> ‘./app/components/mediaManager/kbImageEditor.directive_BASE_13615.coffee’:
> No such file or directory
> /usr/lib/git-core/git-mergetool: 229: /usr/lib/git-core/git-mergetool:
> cannot create ./app/components/mediaManager/kbImageEditor.directive_LOCAL_13615.coffee:
> Directory nonexistent
> /usr/lib/git-core/git-mergetool: 229: /usr/lib/git-core/git-mergetool:
> cannot create ./app/components/mediaManager/kbImageEditor.directive_REMOTE_13615.coffee:
> Directory nonexistent
* Does the directory ./app/components/medaiManager/ exist in master?
* Did a commit on master perhaps move its content somewhere else?
* Does that directory have some chmod permissions, or is it owned
  by a different user?
* Are you able to create new files in that directory?
> This leaves weird dangling files like '.merge_file_ogGjXX' in the
> repo, and I assume I should not proceed with the merge since it
> couldn't even create the files to compare.

If you got a failure at this step you can safely delete those temporary dangling files and then follow the advice given by `git status`.

Typically it'll list files with conflicts. Open them with your $EDITOR, resolve conflicts like normal, and add the result using `git add`. Nonetheless, we'd like to get to the bottom of this issue.

> Is this a known issue? Is there any workaround? Is it safe to proceed
> with the merge?

I've never ran into this myself, and it's never been reported here so this is not a known issue.

It's still safe to proceed with the merge and resolve files the normal way. If you would rather undo the rebase and go back to your original state (before the rebase) then you can do `git rebase --abort` anytime.

I'm not sure about a workaround, but.. it might possibly work if you were to `mkdir -p` the directory mentioned above, but that's a guess. If that does workaround the issue then please let us know since that would be an interesting data point.

-- 
David
Previous: Joe EinertsonNext: Joe Einertson
Message 2 of 3 in “git-rebase + git-mergetool results in broken state”
  1. Joe EinertsonFeb 23, 2016
  2. David AguilarMar 1, 2016
  3. Joe EinertsonMar 2, 2016

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.