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

Re: Push tag from shallow clone?

From
Sskillzero@gmail.com <skillzero@gmail.com>
Date
Mar 20, 2009, 00:01 UTC
Message-ID
<2729632a0903191701k4af0045clfb99dd28119e97b3@mail.gmail.com>
In-Reply-To
<20090319180216.GT23521@spearce.org>
On Thu, Mar 19, 2009 at 11:02 AM, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 18 quoted lines
> skillzero@gmail.com wrote:
>> The documentation for git clone says that if you use --depth=1 to make
>> a shallow clone that you can't push it. But I made a shallow clone,
>> created a tag, then tried to push that tag and it worked. Am I just
>> getting lucky or is it safe to push a tag with a shallow clone?
>
> Yea, you are getting lucky.  The tag is easily identified as one
> object head of the current branch on the remote, and the client is
> able to produce the pack and send it.
>
> If the remote branch gets modified in the interm, the builder may
> not be able to deduce what it needs to send, and will attempt to
> pack a lot more data, potentially finding the missing parents from
> where it is shallow.
>
> Why not just have a central area on the build server that keeps
> full clones of everything, and use "git clone -s" or "git clone
> --reference" in order to create the new work area for the builder?

Thanks for the info. As for using --reference, one of the things that the builder does is archive the build in its entirety so it can be reproduced later on a different machine. I'll probably just need to use a full clone (or do some kind of stripping after the build succeeds and before it archives).

Previous: Shawn O. Pearce
Message 3 of 3 in “Push tag from shallow clone?”
  1. skillzero@gmail.comMar 19, 2009
  2. Shawn O. PearceMar 19, 2009
  3. skillzero@gmail.comMar 20, 2009

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.