]> git.ipfire.org Git - thirdparty/git.git/blobdiff - worktree.h
path.c: refactor and add worktree_git_path()
[thirdparty/git.git] / worktree.h
index 3198c8da2a614ed705a0ee25a7c5a9a7c217eaff..0da8c1f2bdf0c7037a3ee82d2a913efbf546b5c2 100644 (file)
@@ -8,6 +8,7 @@ struct worktree {
        unsigned char head_sha1[20];
        int is_detached;
        int is_bare;
+       int is_current;
 };
 
 /* Functions for acting on the information about worktrees. */
@@ -35,10 +36,18 @@ extern void free_worktrees(struct worktree **);
 
 /*
  * Check if a per-worktree symref points to a ref in the main worktree
- * or any linked worktree, and return the path to the exising worktree
- * if it is.  Returns NULL if there is no existing ref.  The caller is
- * responsible for freeing the returned path.
+ * or any linked worktree, and return the worktree that holds the ref,
+ * or NULL otherwise. The result may be destroyed by the next call.
  */
-extern char *find_shared_symref(const char *symref, const char *target);
+extern const struct worktree *find_shared_symref(const char *symref,
+                                                const char *target);
+
+/*
+ * Similar to git_path() but can produce paths for a specified
+ * worktree instead of current one
+ */
+extern const char *worktree_git_path(const struct worktree *wt,
+                                    const char *fmt, ...)
+       __attribute__((format (printf, 2, 3)));
 
 #endif