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

[PATCH v2 01/12] revision.h: new flag in struct rev_info wrt. worktree-related refs

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Mar 18, 2017, 10:11 UTC
Message-ID
<20170318101153.6901-2-pclouds@gmail.com>
In-Reply-To
<20170318101153.6901-1-pclouds@gmail.com>

The revision walker can walk through per-worktree refs like HEAD or SHA-1 references in the index. These currently are from the current worktree only. This new flag is added to change rev-list behavior in this regard:

When single_worktree is set, only current worktree is considered. When it is not set (which is the default), all worktrees are considered.

The default is chosen so because the two big components that rev-list works with are object database (entirely shared between worktrees) and refs (mostly shared). It makes sense that default behavior goes per-repo too instead of per-worktree.

The flag will eventually be exposed as a rev-list argument with
documents. For now it stays internal until the new behavior is fully
implemented.
---
 revision.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/revision.h b/revision.h
index 9fac1a607d..c851b94ad8 100644
--- a/revision.h
+++ b/revision.h
@@ -88,6 +88,7 @@ struct rev_info {
 			topo_order:1,
 			simplify_merges:1,
 			simplify_by_decoration:1,
+			single_worktree:1,
 			tag_objects:1,
 			tree_objects:1,
 			blob_objects:1,
-- 
2.11.0.157.gd943d85
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 21 of 33 in “Fix git-gc losing objects in multi worktree”
  1. 00/15 Fix git-gc losing objects in multi worktreeNguyễn Thái Ngọc Duy, Feb 17, 2017
  2. 01/15 revision.h: new flag in struct rev_info wrt. worktree-related refsNguyễn Thái Ngọc Duy, Feb 17, 2017
  3. 02/15 revision.c: refactor add_index_objects_to_pending()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  4. 03/15 revision.c: --indexed-objects add objects from all worktreesNguyễn Thái Ngọc Duy, Feb 17, 2017
  5. 04/15 refs: move submodule slash stripping code to get_submodule_ref_storeNguyễn Thái Ngọc Duy, Feb 17, 2017
  6. 06/15 refs: add refs_head_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  7. 05/15 refs: add refs_read_ref[_full]()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  8. 07/15 refs: add refs_for_each_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  9. 08/15 refs: add a refs_for_each_in() and friendsNguyễn Thái Ngọc Duy, Feb 17, 2017
  10. 09/15 revision.c: use refs_for_each*() instead of for_each_*_submodule()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  11. 10/15 refs: remove dead for_each_*_submodule()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  12. 12/15 refs: add refs_for_each_reflog[_ent]()Nguyễn Thái Ngọc Duy, Feb 17, 2017
  13. 11/15 revision.c: --all adds HEAD from all worktreesNguyễn Thái Ngọc Duy, Feb 17, 2017
  14. 13/15 files-backend: make reflog iterator go through per-worktree reflogNguyễn Thái Ngọc Duy, Feb 17, 2017
  15. 14/15 revision.c: --reflog add HEAD reflog from all worktreesNguyễn Thái Ngọc Duy, Feb 17, 2017
  16. 15/15 rev-list: expose and document --single-worktreeNguyễn Thái Ngọc Duy, Feb 17, 2017
  17. Johannes SchindelinFeb 17, 2017
  18. 00/12 Fix git-gc losing objects in multi worktreeNguyễn Thái Ngọc Duy, Mar 18, 2017
  19. 03/12 revision.c: --indexed-objects add objects from all worktreesNguyễn Thái Ngọc Duy, Mar 18, 2017
  20. 04/12 refs.c: refactor get_submodule_ref_store(), share common free blockNguyễn Thái Ngọc Duy, Mar 18, 2017
  21. 01/12 revision.h: new flag in struct rev_info wrt. worktree-related refsNguyễn Thái Ngọc Duy, Mar 18, 2017
  22. 06/12 refs: add refs_head_ref()Nguyễn Thái Ngọc Duy, Mar 18, 2017
  23. 02/12 revision.c: refactor add_index_objects_to_pending()Nguyễn Thái Ngọc Duy, Mar 18, 2017
  24. 05/12 refs: move submodule slash stripping code to get_submodule_ref_storeNguyễn Thái Ngọc Duy, Mar 18, 2017
  25. 12/12 rev-list: expose and document --single-worktreeNguyễn Thái Ngọc Duy, Mar 18, 2017
  26. Junio C HamanoMar 18, 2017
  27. Duy NguyenApr 19, 2017
  28. Junio C HamanoApr 20, 2017
  29. 10/12 files-backend: make reflog iterator go through per-worktree reflogNguyễn Thái Ngọc Duy, Mar 18, 2017
  30. 09/12 revision.c: --all adds HEAD from all worktreesNguyễn Thái Ngọc Duy, Mar 18, 2017
  31. 11/12 revision.c: --reflog add HEAD reflog from all worktreesNguyễn Thái Ngọc Duy, Mar 18, 2017
  32. 08/12 refs: remove dead for_each_*_submodule()Nguyễn Thái Ngọc Duy, Mar 18, 2017
  33. 07/12 revision.c: use refs_for_each*() instead of for_each_*_submodule()Nguyễn Thái Ngọc Duy, Mar 18, 2017

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.