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

[PATCH v2 2/5] worktree.c: add is_main_worktree()

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
May 22, 2016, 10:43 UTC
Message-ID
<20160522104341.656-3-pclouds@gmail.com>
In-Reply-To
<20160522104341.656-1-pclouds@gmail.com>

Main worktree _is_ different. You can lock a linked worktree but not the main one, for example. Provide an API for checking that.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 worktree.c | 5 +++++
 worktree.h | 5 +++++
 2 files changed, 10 insertions(+)
diff --git a/worktree.c b/worktree.c
index c5d45a6..6b3015b 100644
--- a/worktree.c
+++ b/worktree.c
@@ -226,6 +226,11 @@ struct worktree *find_worktree_by_path(struct worktree **list,
 	return *list;
 }
 
+int is_main_worktree(const struct worktree *wt)
+{
+	return !wt->id;
+}
+
 int is_worktree_being_rebased(const struct worktree *wt,
 			      const char *target)
 {
diff --git a/worktree.h b/worktree.h
index 91627fd..39f1aa2 100644
--- a/worktree.h
+++ b/worktree.h
@@ -35,6 +35,11 @@ extern const char *get_worktree_git_dir(const struct worktree *wt);
 extern struct worktree *find_worktree_by_path(struct worktree **list,
 					      const char *path_);
 
+/*
+ * Return true if the given worktree is the main one.
+ */
+extern int is_main_worktree(const struct worktree *wt);
+
 /*
  * Free up the memory for worktree(s)
  */
-- 
2.8.2.524.g6ff3d78
Previous: Duy NguyenNext: Nguyễn Thái Ngọc Duy
Message 102 of 162 in “possible to checkout same branch in different worktree”
  1. Reto HablützelApr 15, 2016
  2. Junio C HamanoApr 15, 2016
  3. Duy NguyenApr 16, 2016
  4. 0/7 fix checking out a being-rebased branchNguyễn Thái Ngọc Duy, Apr 17, 2016
  5. 1/7 path.c: add git_common_path() and strbuf_git_common_path()Nguyễn Thái Ngọc Duy, Apr 17, 2016
  6. 2/7 worktree.c: store "id" instead of "git_dir"Nguyễn Thái Ngọc Duy, Apr 17, 2016
  7. 3/7 path.c: refactor and add worktree_git_path()Nguyễn Thái Ngọc Duy, Apr 17, 2016
  8. 4/7 worktree.c: add worktree_git_path_..._head()Nguyễn Thái Ngọc Duy, Apr 17, 2016
  9. 5/7 wt-status.c: make wt_status_get_state() support worktreeNguyễn Thái Ngọc Duy, Apr 17, 2016
  10. 6/7 worktree.c: avoid referencing to worktrees[i] multiple timesNguyễn Thái Ngọc Duy, Apr 17, 2016
  11. 7/7 checkout: prevent checking out a branch being rebased in another worktreeNguyễn Thái Ngọc Duy, Apr 17, 2016
  12. Junio C HamanoApr 18, 2016
  13. Duy NguyenApr 19, 2016
  14. Junio C HamanoApr 19, 2016
  15. 00/12 fix checking out a being-rebased branchNguyễn Thái Ngọc Duy, Apr 20, 2016
  16. 01/12 path.c: add git_common_path() and strbuf_git_common_path()Nguyễn Thái Ngọc Duy, Apr 20, 2016
  17. Eric SunshineApr 20, 2016
  18. Duy NguyenApr 21, 2016
  19. 02/12 worktree.c: store "id" instead of "git_dir"Nguyễn Thái Ngọc Duy, Apr 20, 2016
  20. 03/12 worktree.c: make find_shared_symref() return struct worktree *Nguyễn Thái Ngọc Duy, Apr 20, 2016
  21. Junio C HamanoApr 20, 2016
  22. Eric SunshineApr 21, 2016
  23. 04/12 worktree.c: mark current worktreeNguyễn Thái Ngọc Duy, Apr 20, 2016
  24. Eric SunshineApr 21, 2016
  25. Duy NguyenApr 21, 2016
  26. Duy NguyenApr 21, 2016
  27. Eric SunshineApr 21, 2016
  28. Jeff KingApr 21, 2016
  29. Junio C HamanoApr 21, 2016
  30. Jeff KingApr 21, 2016
  31. Junio C HamanoApr 21, 2016
  32. 05/12 path.c: refactor and add worktree_git_path()Nguyễn Thái Ngọc Duy, Apr 20, 2016
  33. 06/12 wt-status.c: split rebase detection out of wt_status_get_state()Nguyễn Thái Ngọc Duy, Apr 20, 2016
  34. Ramsay JonesApr 20, 2016
  35. Duy NguyenApr 20, 2016
  36. 07/12 wt-status.c: make wt_status_check_rebase() work on any worktreeNguyễn Thái Ngọc Duy, Apr 20, 2016
  37. 08/12 worktree.c: avoid referencing to worktrees[i] multiple timesNguyễn Thái Ngọc Duy, Apr 20, 2016
  38. 09/12 worktree.c: test if branch being rebased in another worktreeNguyễn Thái Ngọc Duy, Apr 20, 2016
  39. Junio C HamanoApr 20, 2016
  40. Duy NguyenApr 21, 2016
  41. 10/12 wt-status.c: split bisect detection out of wt_status_get_state()Nguyễn Thái Ngọc Duy, Apr 20, 2016
  42. 11/12 worktree.c: test if branch being bisected in another worktreeNguyễn Thái Ngọc Duy, Apr 20, 2016
  43. 12/12 branch: do not rename a branch under bisect or rebaseNguyễn Thái Ngọc Duy, Apr 20, 2016
  44. Junio C HamanoApr 20, 2016
  45. 00/13 nd/worktree-various-headsNguyễn Thái Ngọc Duy, Apr 22, 2016
  46. 01/13 dir.c: rename str(n)cmp_icase to fspath(n)cmpNguyễn Thái Ngọc Duy, Apr 22, 2016
  47. 02/13 path.c: add git_common_path() and strbuf_git_common_path()Nguyễn Thái Ngọc Duy, Apr 22, 2016
  48. 03/13 worktree.c: store "id" instead of "git_dir"Nguyễn Thái Ngọc Duy, Apr 22, 2016
  49. 04/13 worktree.c: make find_shared_symref() return struct worktree *Nguyễn Thái Ngọc Duy, Apr 22, 2016
  50. 05/13 worktree.c: mark current worktreeNguyễn Thái Ngọc Duy, Apr 22, 2016
  51. Eric SunshineMay 6, 2016
  52. Duy NguyenMay 6, 2016
  53. Duy NguyenMay 10, 2016
  54. 1/7 completion: support git-worktreeNguyễn Thái Ngọc Duy, May 10, 2016
  55. 2/7 worktree.c: rewrite mark_current_worktree() to avoid strbufNguyễn Thái Ngọc Duy, May 10, 2016
  56. Eric SunshineMay 11, 2016
  57. 3/7 git-worktree.txt: keep subcommand listing in alphabetical orderNguyễn Thái Ngọc Duy, May 10, 2016
  58. 4/7 worktree.c: use is_dot_or_dotdot()Nguyễn Thái Ngọc Duy, May 10, 2016
  59. 5/7 worktree.c: add clear_worktree()Nguyễn Thái Ngọc Duy, May 10, 2016
  60. Eric SunshineMay 11, 2016
  61. Eric SunshineMay 11, 2016
  62. Duy NguyenMay 22, 2016
  63. 6/7 worktree: avoid 0{40}, too many zeroes, hard to readNguyễn Thái Ngọc Duy, May 10, 2016
  64. 7/7 worktree: simplify prefixing pathsNguyễn Thái Ngọc Duy, May 10, 2016
  65. Junio C HamanoMay 10, 2016
  66. Duy NguyenMay 11, 2016
  67. Eric SunshineMay 11, 2016
  68. 1/5 worktree.c: add find_worktree_by_path()Nguyễn Thái Ngọc Duy, May 10, 2016
  69. 2/5 worktree.c: add is_main_worktree()Nguyễn Thái Ngọc Duy, May 10, 2016
  70. Eric SunshineMay 13, 2016
  71. 3/5 worktree.c: add is_worktree_locked()Nguyễn Thái Ngọc Duy, May 10, 2016
  72. Eric SunshineMay 13, 2016
  73. Duy NguyenMay 22, 2016
  74. Eric SunshineMay 23, 2016
  75. 4/5 worktree: add "lock" commandNguyễn Thái Ngọc Duy, May 10, 2016
  76. Eric SunshineMay 16, 2016
  77. Duy NguyenMay 22, 2016
  78. Eric SunshineMay 23, 2016
  79. Eric SunshineMay 16, 2016
  80. 5/5 worktree: add "unlock" commandNguyễn Thái Ngọc Duy, May 10, 2016
  81. Eric SunshineMay 16, 2016
  82. Eric SunshineMay 13, 2016
  83. Junio C HamanoMay 10, 2016
  84. Junio C HamanoMay 10, 2016
  85. Duy NguyenMay 11, 2016
  86. 0/6 nd/worktree-cleanup-post-head-protection updateNguyễn Thái Ngọc Duy, May 22, 2016
  87. 1/6 completion: support git-worktreeNguyễn Thái Ngọc Duy, May 22, 2016
  88. 2/6 worktree.c: rewrite mark_current_worktree() to avoid strbufNguyễn Thái Ngọc Duy, May 22, 2016
  89. 3/6 git-worktree.txt: keep subcommand listing in alphabetical orderNguyễn Thái Ngọc Duy, May 22, 2016
  90. 4/6 worktree.c: use is_dot_or_dotdot()Nguyễn Thái Ngọc Duy, May 22, 2016
  91. 5/6 worktree: avoid 0{40}, too many zeroes, hard to readNguyễn Thái Ngọc Duy, May 22, 2016
  92. 6/6 worktree: simplify prefixing pathsNguyễn Thái Ngọc Duy, May 22, 2016
  93. Eric SunshineMay 22, 2016
  94. Eric SunshineMay 23, 2016
  95. Duy NguyenMay 23, 2016
  96. Eric SunshineMay 23, 2016
  97. 0/5 worktree lock/unlockNguyễn Thái Ngọc Duy, May 22, 2016
  98. 1/5 worktree.c: add find_worktree_by_path()Nguyễn Thái Ngọc Duy, May 22, 2016
  99. Eric SunshineMay 23, 2016
  100. Eric SunshineMay 23, 2016
  101. Duy NguyenMay 30, 2016
  102. 2/5 worktree.c: add is_main_worktree()Nguyễn Thái Ngọc Duy, May 22, 2016
  103. 3/5 worktree.c: add is_worktree_locked()Nguyễn Thái Ngọc Duy, May 22, 2016
  104. 4/5 worktree: add "lock" commandNguyễn Thái Ngọc Duy, May 22, 2016
  105. Eric SunshineMay 23, 2016
  106. 5/5 worktree: add "unlock" commandNguyễn Thái Ngọc Duy, May 22, 2016
  107. Eric SunshineMay 23, 2016
  108. Eric SunshineMay 23, 2016
  109. Duy NguyenMay 23, 2016
  110. 0/6 worktree lock/unlockNguyễn Thái Ngọc Duy, May 30, 2016
  111. 1/6 worktree.c: add find_worktree()Nguyễn Thái Ngọc Duy, May 30, 2016
  112. 2/6 worktree.c: find_worktree() learns to identify worktrees by basenameNguyễn Thái Ngọc Duy, May 30, 2016
  113. Junio C HamanoMay 31, 2016
  114. Duy NguyenJun 1, 2016
  115. Junio C HamanoJun 1, 2016
  116. Duy NguyenJun 2, 2016
  117. Junio C HamanoJun 2, 2016
  118. Duy NguyenJun 3, 2016
  119. Junio C HamanoJun 3, 2016
  120. Johannes SchindelinJun 5, 2016
  121. 3/6 worktree.c: add is_main_worktree()Nguyễn Thái Ngọc Duy, May 30, 2016
  122. Junio C HamanoMay 31, 2016
  123. 4/6 worktree.c: retrieve lock status (and optionally reason) in get_worktrees()Nguyễn Thái Ngọc Duy, May 30, 2016
  124. Junio C HamanoMay 31, 2016
  125. Duy NguyenJun 1, 2016
  126. Junio C HamanoJun 1, 2016
  127. 5/6 worktree: add "lock" commandNguyễn Thái Ngọc Duy, May 30, 2016
  128. Junio C HamanoMay 31, 2016
  129. Junio C HamanoMay 31, 2016
  130. 6/6 worktree: add "unlock" commandNguyễn Thái Ngọc Duy, May 30, 2016
  131. Junio C HamanoMay 31, 2016
  132. Duy NguyenJun 1, 2016
  133. Junio C HamanoMay 31, 2016
  134. Junio C HamanoMay 31, 2016
  135. 0/6 worktree lock/unlockNguyễn Thái Ngọc Duy, Jun 3, 2016
  136. 1/6 worktree.c: add find_worktree()Nguyễn Thái Ngọc Duy, Jun 3, 2016
  137. Ramsay JonesJun 3, 2016
  138. Duy NguyenJun 13, 2016
  139. 2/6 worktree.c: add is_main_worktree()Nguyễn Thái Ngọc Duy, Jun 3, 2016
  140. 3/6 worktree.c: add is_worktree_locked()Nguyễn Thái Ngọc Duy, Jun 3, 2016
  141. 4/6 worktree: add "lock" commandNguyễn Thái Ngọc Duy, Jun 3, 2016
  142. 5/6 worktree: add "unlock" commandNguyễn Thái Ngọc Duy, Jun 3, 2016
  143. 6/6 worktree.c: find_worktree() search by path suffixNguyễn Thái Ngọc Duy, Jun 3, 2016
  144. Junio C HamanoJun 4, 2016
  145. 0/6 worktree lock/unlockNguyễn Thái Ngọc Duy, Jun 13, 2016
  146. 1/6 worktree.c: add find_worktree()Nguyễn Thái Ngọc Duy, Jun 13, 2016
  147. 2/6 worktree.c: add is_main_worktree()Nguyễn Thái Ngọc Duy, Jun 13, 2016
  148. 3/6 worktree.c: add is_worktree_locked()Nguyễn Thái Ngọc Duy, Jun 13, 2016
  149. 4/6 worktree: add "lock" commandNguyễn Thái Ngọc Duy, Jun 13, 2016
  150. 5/6 worktree: add "unlock" commandNguyễn Thái Ngọc Duy, Jun 13, 2016
  151. 6/6 worktree.c: find_worktree() search by path suffixNguyễn Thái Ngọc Duy, Jun 13, 2016
  152. Torsten BögershausenJun 27, 2016
  153. fixup! worktree: add "lock" commandNguyễn Thái Ngọc Duy, Jun 30, 2016
  154. 06/13 path.c: refactor and add worktree_git_path()Nguyễn Thái Ngọc Duy, Apr 22, 2016
  155. 07/13 wt-status.c: split rebase detection out of wt_status_get_state()Nguyễn Thái Ngọc Duy, Apr 22, 2016
  156. 08/13 wt-status.c: make wt_status_check_rebase() work on any worktreeNguyễn Thái Ngọc Duy, Apr 22, 2016
  157. 09/13 worktree.c: avoid referencing to worktrees[i] multiple timesNguyễn Thái Ngọc Duy, Apr 22, 2016
  158. 10/13 worktree.c: check whether branch is rebased in another worktreeNguyễn Thái Ngọc Duy, Apr 22, 2016
  159. 11/13 wt-status.c: split bisect detection out of wt_status_get_state()Nguyễn Thái Ngọc Duy, Apr 22, 2016
  160. 12/13 worktree.c: check whether branch is bisected in another worktreeNguyễn Thái Ngọc Duy, Apr 22, 2016
  161. Eric SunshineMay 11, 2016
  162. 13/13 branch: do not rename a branch under bisect or rebaseNguyễn Thái Ngọc Duy, Apr 22, 2016

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.