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

[PATCH 2/3] worktree: delete dead code

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Mar 3, 2018, 03:39 UTC
Message-ID
<20180303033918.15751-3-pclouds@gmail.com>
In-Reply-To
<20180303033918.15751-1-pclouds@gmail.com>

This "link" was a feature in early iterations of multiple worktree functionality but for some reason it was dropped. Since nobody creates this "link", there's no need to check it.

This is mostly used to let the user moves a worktree manually [1]. If you move a worktree within the same file system, this hard link count lets us know the worktree is still there even if we don't know where it is.

We're having proper worktree move support now and don't need this anymore.

[1] 23af91d102 (prune: strategies for linked checkouts - 2014-11-30)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Documentation/gitrepository-layout.txt | 5 -----
 builtin/worktree.c                     | 8 --------
 2 files changed, 13 deletions(-)
diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt
index c60bcad44a..e85148f05e 100644
--- a/Documentation/gitrepository-layout.txt
+++ b/Documentation/gitrepository-layout.txt
@@ -275,11 +275,6 @@ worktrees/<id>/locked::
 	or manually by `git worktree prune`. The file may contain a string
 	explaining why the repository is locked.
 
-worktrees/<id>/link::
-	If this file exists, it is a hard link to the linked .git
-	file. It is used to detect if the linked repository is
-	manually removed.
-
 SEE ALSO
 --------
 linkgit:git-init[1],
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 4e7c98758f..60440c4106 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -99,15 +99,7 @@ static int prune_worktree(const char *id, struct strbuf *reason)
 	}
 	path[len] = '\0';
 	if (!file_exists(path)) {
-		struct stat st_link;
 		free(path);
-		/*
-		 * the repo is moved manually and has not been
-		 * accessed since?
-		 */
-		if (!stat(git_path("worktrees/%s/link", id), &st_link) &&
-		    st_link.st_nlink > 1)
-			return 0;
 		if (st.st_mtime <= expire) {
 			strbuf_addf(reason, _("Removing worktrees/%s: gitdir file points to non-existent location"), id);
 			return 1;
-- 
2.16.1.435.g8f24da2e1a
Previous: Eric SunshineNext: Nguyễn Thái Ngọc Duy
Message 4 of 15 in “git worktree prune improvements”
  1. 0/3 git worktree prune improvementsNguyễn Thái Ngọc Duy, Mar 3, 2018
  2. 1/3 gc.txt: more details about what gc doesNguyễn Thái Ngọc Duy, Mar 3, 2018
  3. Eric SunshineMar 3, 2018
  4. 2/3 worktree: delete dead codeNguyễn Thái Ngọc Duy, Mar 3, 2018
  5. 3/3 worktree prune: improve prune logic when worktree is movedNguyễn Thái Ngọc Duy, Mar 3, 2018
  6. Eric SunshineMar 3, 2018
  7. Randall S. BeckerMar 3, 2018
  8. Duy NguyenMar 5, 2018
  9. 0/3 git worktree prune improvementsNguyễn Thái Ngọc Duy, Mar 15, 2018
  10. 1/3 gc.txt: more details about what gc doesNguyễn Thái Ngọc Duy, Mar 15, 2018
  11. 2/3 worktree: delete dead codeNguyễn Thái Ngọc Duy, Mar 15, 2018
  12. Eric SunshineMar 18, 2018
  13. 3/3 worktree prune: improve prune logic when worktree is movedNguyễn Thái Ngọc Duy, Mar 15, 2018
  14. Eric SunshineMar 18, 2018
  15. Eric SunshineMar 18, 2018

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.