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

Re: Cannot push anything via export transport helper after push fails.

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 12, 2014, 21:22 UTC
Message-ID
<5349ae827ef03_285f9032ecd1@nysa.notmuch>
In-Reply-To
<CAMP44s1YhQR0o-0CLc2PG-EJTZdN4tha-4BVEUy-K_Av81D=GQ@mail.gmail.com>
Felipe Contreras wrote:
Show 42 quoted lines
> On Sat, May 11, 2013 at 7:29 AM, Andrey Borzenkov <arvidjaar@gmail.com> wrote:
> > I noticed that using git-remote-bzr, but as far as I can tell this is
> > generic for all transport helpers using fast-export.
> >
> >
> >
> > What happened was "git push" failed due to merge conflict. So far so
> > good - but from now on git assumes everything is up to date.
> >
> > bor@opensuse:/tmp/test/git> git push origin master
> > To bzr::bzr+ssh://bor@localhost/tmp/test/bzr
> >  ! [rejected]        master -> master (non-fast-forward)
> > error: failed to push some refs to 'bzr::bzr+ssh://bor@localhost/tmp/test/bzr'
> > hint: Updates were rejected because the tip of your current branch is behind
> > hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
> > hint: before pushing again.
> > hint: See the 'Note about fast-forwards' in 'git push --help' for details.
> > bor@opensuse:/tmp/test/git> git push origin master
> > Everything up-to-date
> > bor@opensuse:/tmp/test/git>
> >
> > The problem seems to be that git fast-export updates marks
> > unconditionally, whether export actually applied or not. So next time
> > it assumes everything is already exported and does nothing.
> >
> > Is it expected behavior?
> 
> Indeed, this is the way it currently works, and it's not easy to fix.
> We would need some way to make fast-export wait until we know the exit
> status of the remote helper, and then tell it when it failed, so the
> marks are not updated.
> 
> However, the way remote-bzr/hg work is that the commits are still
> there anyway. So if you merge the next time you push those commits are
> already converted, so it's not a problem if fast-export is not
> exporting them again.
> 
> So even though it's not ideal, it should work.
> 
> The problem is when the remote-helper crashes and the marks of
> fast-export and the remote-helper are out of sync, and then the user
> is really screwed.
I sent patches that should fix this problem:
http://article.gmane.org/gmane.comp.version-control.git/246187
-- 
Felipe Contreras
Previous: Felipe Contreras
Message 9 of 9 in “Cannot push anything via export transport helper after push fails.”
  1. Andrey BorzenkovMay 11, 2013
  2. John KeepingMay 11, 2013
  3. Andrey BorzenkovMay 11, 2013
  4. Felipe ContrerasMay 11, 2013
  5. Andrey BorzenkovMay 11, 2013
  6. Felipe ContrerasMay 11, 2013
  7. Andrey BorzenkovMay 16, 2013
  8. Felipe ContrerasApr 12, 2014
  9. Felipe ContrerasApr 12, 2014

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.