summaryrefslogtreecommitdiff
path: root/worktree.h
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2015-10-26 15:55:16 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-10-26 15:55:16 -0700
commita46dcfb8403191ce042ad123a3314a174fa9ca4c (patch)
treefa2b1265bbc89430e02e5b4ebc59f85ab6b55eb7 /worktree.h
parentMerge branch 'jc/am-3-fallback-regression-fix' (diff)
parentworktree: add 'list' command (diff)
downloadtgif-a46dcfb8403191ce042ad123a3314a174fa9ca4c.tar.xz
Merge branch 'mr/worktree-list'
Add the "list" subcommand to "git worktree". * mr/worktree-list: worktree: add 'list' command worktree: add details to the worktree struct worktree: add a function to get worktree details worktree: refactor find_linked_symref function worktree: add top-level worktree.c
Diffstat (limited to 'worktree.h')
-rw-r--r--worktree.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/worktree.h b/worktree.h
new file mode 100644
index 0000000000..b4b3dda792
--- /dev/null
+++ b/worktree.h
@@ -0,0 +1,38 @@
+#ifndef WORKTREE_H
+#define WORKTREE_H
+
+struct worktree {
+ char *path;
+ char *git_dir;
+ char *head_ref;
+ unsigned char head_sha1[20];
+ int is_detached;
+ int is_bare;
+};
+
+/* Functions for acting on the information about worktrees. */
+
+/*
+ * Get the worktrees. The primary worktree will always be the first returned,
+ * and linked worktrees will be pointed to by 'next' in each subsequent
+ * worktree. No specific ordering is done on the linked worktrees.
+ *
+ * The caller is responsible for freeing the memory from the returned
+ * worktree(s).
+ */
+extern struct worktree **get_worktrees(void);
+
+/*
+ * Free up the memory for worktree(s)
+ */
+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.
+ */
+extern char *find_shared_symref(const char *symref, const char *target);
+
+#endif