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

Re: [QUESTION] Access to a huge GIT repository.

From
Junio C Hamano <junkio@cox.net>
Date
Nov 21, 2005, 20:45 UTC
Message-ID
<7vhda5pw6l.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<cda58cb80511211211l2ff6ff12j@mail.gmail.com>
Franck <vagabon.xyz@gmail.com> writes:
> ... But since I used grafting to "cut"
> my light repo and .git/info/grafts file is not copied during
> push/pull/clone operations it's not going to work. Is it a scheme that
> could work ?

If you tell your downloaders that your repository is incomplete and they need to have at least up to such and such commits from another repository, they should be able to slurp from you.

It might be possible to teach upload-pack (that is run when your downloaders run git-fetch or git-clone against your repository) to somehow send a customized error message to the client when it finds the other end needs certain objects that you yourself do not even have. In that message you could say something like "due to space constraints this repository is an incomplete one, and you can only use it on top of a clone of such and such repository, found at this URL: ...".

> Moreover, I'm wondering if my public repository really needs to store
> big repo's pack files as it is described in git tutorial ?

Copying is one way, but if the repository you are borrowing from lives on the same machine, you could use objects/info/alternates to point at it from your public repository. In either case, the point in that section is to reduce the need to transfer and expand much stuff in your public repository while keeping the repository complete. The recommended procedure in the tutorial always assumes that the public repository is kept fsck-objects clean and complete.

What you are trying to do is to keep your public repository fsck-objects *un*clean and still let downloaders work with it; so I suspect following that section of the tutorial procedure defeats the purpose your experiments.

Previous: FranckNext: Franck
Message 13 of 22 in “[QUESTION] Access to a huge GIT repository.”
  1. FranckNov 16, 2005
  2. Linus TorvaldsNov 16, 2005
  3. FranckNov 17, 2005
  4. Linus TorvaldsNov 17, 2005
  5. FranckNov 17, 2005
  6. Linus TorvaldsNov 17, 2005
  7. FranckNov 19, 2005
  8. Lukas SandströmNov 19, 2005
  9. Junio C HamanoNov 19, 2005
  10. Linus TorvaldsNov 19, 2005
  11. Junio C HamanoNov 19, 2005
  12. FranckNov 21, 2005
  13. Junio C HamanoNov 21, 2005
  14. FranckNov 22, 2005
  15. Junio C HamanoNov 22, 2005
  16. FranckNov 22, 2005
  17. Junio C HamanoNov 22, 2005
  18. FranckNov 22, 2005
  19. Junio C HamanoNov 16, 2005
  20. Martin LanghoffNov 16, 2005
  21. Linus TorvaldsNov 16, 2005
  22. Junio C HamanoNov 16, 2005

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.