summary refs log tree commit diff
path: root/worktree.h
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2016-06-03 19:19:39 +0700
committerJunio C Hamano <gitster@pobox.com>2016-06-03 21:58:18 -0700
commit6835314459794831a1b88bed56549653710e910c (patch)
treec387fabf54b670a19fcec4a02320ca5eb1197930 /worktree.h
parent0409e0b6dc169b07c05d02e8b62389b1cc975a45 (diff)
worktree.c: add find_worktree()
So far we haven't needed to identify an existing worktree from command
line. Future commands such as lock or move will need it. The current
implementation identifies worktrees by path (*). In future, the function
could learn to identify by $(basename $path) or tags...

(*) We could probably go cheaper with comparing inode number (and
probably more reliable than paths when unicode enters the game). But not
all systems have good inode that so let's stick to something simple for
now.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'worktree.h')
-rw-r--r--worktree.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/worktree.h b/worktree.h
index 13949093cc..7ad15da0dc 100644
--- a/worktree.h
+++ b/worktree.h
@@ -30,6 +30,14 @@ extern struct worktree **get_worktrees(void);
 extern const char *get_worktree_git_dir(const struct worktree *wt);
 
 /*
+ * Search a worktree that can be unambiguously identified by
+ * "arg". "prefix" must not be NULL.
+ */
+extern struct worktree *find_worktree(struct worktree **list,
+				      const char *prefix,
+				      const char *arg);
+
+/*
  * Free up the memory for worktree(s)
  */
 extern void free_worktrees(struct worktree **);