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

[PATCH 07/11] worktree.c: add update_worktree_location()

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Nov 12, 2016, 02:23 UTC
Message-ID
<20161112022337.13317-8-pclouds@gmail.com>
In-Reply-To
<20161112022337.13317-1-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 worktree.c | 21 +++++++++++++++++++++
 worktree.h |  6 ++++++
 2 files changed, 27 insertions(+)
diff --git a/worktree.c b/worktree.c
index 7e15ec7..db63758 100644
--- a/worktree.c
+++ b/worktree.c
@@ -354,6 +354,27 @@ int validate_worktree(const struct worktree *wt, int quiet)
 	return 0;
 }
 
+int update_worktree_location(struct worktree *wt, const char *path_)
+{
+	struct strbuf path = STRBUF_INIT;
+	int ret = 0;
+
+	if (is_main_worktree(wt))
+		return 0;
+
+	strbuf_add_absolute_path(&path, path_);
+	if (fspathcmp(wt->path, path.buf)) {
+		write_file(git_common_path("worktrees/%s/gitdir",
+					   wt->id),
+			   "%s/.git", real_path(path.buf));
+		free(wt->path);
+		wt->path = strbuf_detach(&path, NULL);
+		ret = 0;
+	}
+	strbuf_release(&path);
+	return ret;
+}
+
 int is_worktree_being_rebased(const struct worktree *wt,
 			      const char *target)
 {
diff --git a/worktree.h b/worktree.h
index e782ae5..0477a3d 100644
--- a/worktree.h
+++ b/worktree.h
@@ -55,6 +55,12 @@ extern const char *is_worktree_locked(struct worktree *wt);
  */
 extern int validate_worktree(const struct worktree *wt, int quiet);
 
+/*
+ * Update worktrees/xxx/gitdir with the new path.
+ */
+extern int update_worktree_location(struct worktree *wt,
+				    const char *path_);
+
 /*
  * Free up the memory for worktree(s)
  */
-- 
2.8.2.524.g6ff3d78
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 5 of 39 in “git worktree (re)move”
  1. 00/11 git worktree (re)moveNguyễn Thái Ngọc Duy, Nov 12, 2016
  2. 06/11 worktree.c: add validate_worktree()Nguyễn Thái Ngọc Duy, Nov 12, 2016
  3. 02/11 copy.c: delete unused code in copy_file()Nguyễn Thái Ngọc Duy, Nov 12, 2016
  4. 03/11 copy.c: convert bb_(p)error_msg to error(_errno)Nguyễn Thái Ngọc Duy, Nov 12, 2016
  5. 07/11 worktree.c: add update_worktree_location()Nguyễn Thái Ngọc Duy, Nov 12, 2016
  6. 01/11 copy.c: import copy_file() from busyboxNguyễn Thái Ngọc Duy, Nov 12, 2016
  7. 05/11 copy.c: convert copy_file() to copy_dir_recursively()Nguyễn Thái Ngọc Duy, Nov 12, 2016
  8. 04/11 copy.c: style fixNguyễn Thái Ngọc Duy, Nov 12, 2016
  9. 10/11 worktree move: refuse to move worktrees with submodulesNguyễn Thái Ngọc Duy, Nov 12, 2016
  10. 09/11 worktree move: accept destination as directoryNguyễn Thái Ngọc Duy, Nov 12, 2016
  11. 08/11 worktree move: new commandNguyễn Thái Ngọc Duy, Nov 12, 2016
  12. 11/11 worktree remove: new commandNguyễn Thái Ngọc Duy, Nov 12, 2016
  13. 00/11 git worktree (re)moveNguyễn Thái Ngọc Duy, Nov 28, 2016
  14. 01/11 copy.c: import copy_file() from busyboxNguyễn Thái Ngọc Duy, Nov 28, 2016
  15. 02/11 copy.c: delete unused code in copy_file()Nguyễn Thái Ngọc Duy, Nov 28, 2016
  16. 03/11 copy.c: convert bb_(p)error_msg to error(_errno)Nguyễn Thái Ngọc Duy, Nov 28, 2016
  17. 04/11 copy.c: style fixNguyễn Thái Ngọc Duy, Nov 28, 2016
  18. 05/11 copy.c: convert copy_file() to copy_dir_recursively()Nguyễn Thái Ngọc Duy, Nov 28, 2016
  19. 06/11 worktree.c: add validate_worktree()Nguyễn Thái Ngọc Duy, Nov 28, 2016
  20. 07/11 worktree.c: add update_worktree_location()Nguyễn Thái Ngọc Duy, Nov 28, 2016
  21. 08/11 worktree move: new commandNguyễn Thái Ngọc Duy, Nov 28, 2016
  22. 09/11 worktree move: accept destination as directoryNguyễn Thái Ngọc Duy, Nov 28, 2016
  23. 10/11 worktree move: refuse to move worktrees with submodulesNguyễn Thái Ngọc Duy, Nov 28, 2016
  24. Stefan BellerDec 19, 2016
  25. 11/11 worktree remove: new commandNguyễn Thái Ngọc Duy, Nov 28, 2016
  26. Junio C HamanoNov 28, 2016
  27. Junio C HamanoNov 28, 2016
  28. Johannes SixtNov 28, 2016
  29. Duy NguyenNov 29, 2016
  30. Duy NguyenNov 29, 2016
  31. Duy NguyenNov 29, 2016
  32. Junio C HamanoNov 29, 2016
  33. Stefan BellerNov 30, 2016
  34. Johannes SixtNov 29, 2016
  35. Duy NguyenNov 30, 2016
  36. Duy NguyenNov 16, 2016
  37. Duy NguyenNov 16, 2016
  38. Junio C HamanoNov 16, 2016
  39. Junio C HamanoNov 16, 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.