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

Re: [PATCH 2/2] index-v4: document the entry format

From
Junio C Hamano <gitster@pobox.com>
Date
May 2, 2012, 17:04 UTC
Message-ID
<7vlilaikfo.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CAJo=hJvFfVbYRKtPDJbd8MXKFDAyk==Sbm8oTgypbpE2O4o1=w@mail.gmail.com>
Shawn Pearce <spearce@spearce.org> writes:
Show 8 quoted lines
> IMHO, keep this in next to avoid releasing it until we know the
> outcome of the GSoC project. The handful of WebKit developers that use
> Git that really benefit from index v4 can use it by building and
> installing their own next.
> ...
> Its only a few months to wait and see where "v5" goes. If v5 is
> successful, v4 will just be a minor footnote in the history of Git,
> and other tools won't need to support v4, they can go straight to v5.

You may not have noticed this, but there is no practical difference between keeping it in 'next' and releasing it to 'master' from the third-party tool's point of view.

There is _only_ one way to end up with v4 version of index: running "git update-index --index-version 4". When creating a new index, or working in a repository, starting from an index written in the current version, you will get v2 (or v3) index (this gentle handling of backward compatibility comes from later parts of the series). It is either running that command or running 'next' version *and* running that command---either way, the user deliberately has to ask for it, and if a third-party tool like jgit chooses to ignore v4, it is not the end of the world. The user opted-in can run "git update-index --index-version 2" to revert it before using such a tool.

For a third-party tool, lack of support of v4 is similar to not supporting a config file that does not record the core.repositoryformatversion, which the user can manually add it with the editor, and much less serious than not supporting the v3 version of the index, which the user cannot do much about it.

I would say that the cost of not merging the refactoring in the earlier parts of the series and the gentler handling of backward compatibility in the later parts of the series is much higher.

Previous: Shawn PearceNext: Shawn Pearce
Message 26 of 27 in “Prefix-compress on-disk index entries”
  1. 0/9 Prefix-compress on-disk index entriesJunio C Hamano, Apr 3, 2012
  2. 1/9 varint: make it available outside the context of packJunio C Hamano, Apr 3, 2012
  3. 2/9 cache.h: hide on-disk index detailsJunio C Hamano, Apr 3, 2012
  4. 3/9 read-cache.c: allow unaligned mapping of the index fileJunio C Hamano, Apr 3, 2012
  5. 4/9 read-cache.c: make create_from_disk() report number of bytes it consumedJunio C Hamano, Apr 3, 2012
  6. 5/9 read-cache.c: report the header version we do not understandJunio C Hamano, Apr 3, 2012
  7. 6/9 read-cache.c: move code to copy ondisk to incore cache to a helper functionJunio C Hamano, Apr 3, 2012
  8. 7/9 read-cache.c: move code to copy incore to ondisk cache to a helper functionJunio C Hamano, Apr 3, 2012
  9. 8/9 read-cache.c: read prefix-compressed names in index on-disk version v4Junio C Hamano, Apr 3, 2012
  10. 9/9 read-cache.c: write index v4 formatJunio C Hamano, Apr 3, 2012
  11. David BarrApr 4, 2012
  12. Junio C HamanoApr 4, 2012
  13. Junio C HamanoApr 4, 2012
  14. 2/2 update-index: upgrade/downgrade on-disk index versionJunio C Hamano, Apr 4, 2012
  15. Nguyen Thai Ngoc DuyApr 4, 2012
  16. Junio C HamanoApr 4, 2012
  17. David BarrApr 6, 2012
  18. Nguyen Thai Ngoc DuyMay 2, 2012
  19. David BarrMay 2, 2012
  20. 1/2 unpack-trees: preserve the index file version of originalJunio C Hamano, Apr 27, 2012
  21. 2/2 index-v4: document the entry formatJunio C Hamano, Apr 27, 2012
  22. Thomas RastApr 30, 2012
  23. Junio C HamanoMay 1, 2012
  24. Thomas RastMay 1, 2012
  25. Shawn PearceMay 2, 2012
  26. Junio C HamanoMay 2, 2012
  27. Shawn PearceMay 2, 2012

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.