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

Re: Pushing with --mirror over HTTP?

From
Eli Barzilay <eli@barzilay.org>
Date
Sep 8, 2011, 02:58 UTC
Message-ID
<20072.12104.965815.994761@winooski.ccs.neu.edu>
In-Reply-To
<20110907213950.GI13364@sigill.intra.peff.net>
5 hours ago, Jeff King wrote:
Show 15 quoted lines
> On Mon, Sep 05, 2011 at 12:05:37AM -0400, Eli Barzilay wrote:
> 
> > Is there anything broken with pushing with mirror over HTTP?  I'm
> > trying that with a github url, and I get a broken-looking error
> > message:
> > 
> >   remote part of refspec is not a valid name in :.have
> 
> It's probably nothing to do with http, but rather with alternate
> object databases on the server (which GitHub uses heavily). The
> server hands out fake ".have" refs telling you it has some other
> branch tips to base packs off of. So I suspect the "push --mirror"
> code is simply wrong for trying to update those refs (it may be
> exacerbated by using http, though, as the remote helper code seems
> to have some extra checks).

Ah -- I thought that this was some result of parsing some text message or something like that, maybe if the error was

  remote part of refspec is not a valid name in ":.have"
or even
  remote part of refspec is not a valid name in: :.have

it would have been clearer? Seems like it's a good place for this since some `:foo' is likely to appear there, and the colon can be confused as part of the text.

Also, maybe the man page should say something about `--mirror' not working well with such servers? It looks to me like mirroring to github and to google code would be pretty popular.

Show 17 quoted lines
> > and with the google code, I get:
> > 
> >   error: unable to push to unqualified destination: HEAD
> > 
> > Pushing to both of these work fine without `--mirror'.
> 
> This one, I'm not sure. It may be related.
> 
> > (BTW, as a workaround, I'm using
> >   push --force --tags <url> :
> > is this achieving the same effect for a repo without weird refs?)
> 
> Not quite. I think:
> 
>   git push --force <url> refs/*:refs/*
> 
> would be closer.
Thanks -- I'll use that instead.
> But even that's not quite right.  I believe that "--mirror" will
> also delete any remote refs that don't exist locally (which is why
> you are seeing the ":.have" refspec above, which attempts to delete
> it).

Is there some way of doing that? (We do use a branch during releases that is deleted after the release, so I need to propagate these deletions.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!
Previous: Jeff KingNext: Jeff King
Message 3 of 4 in “Pushing with --mirror over HTTP?”
  1. Eli BarzilaySep 5, 2011
  2. Jeff KingSep 7, 2011
  3. Eli BarzilaySep 8, 2011
  4. Jeff KingDec 19, 2011

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.