diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-10-26 15:55:16 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-10-26 15:55:16 -0700 |
commit | a46dcfb8403191ce042ad123a3314a174fa9ca4c (patch) | |
tree | fa2b1265bbc89430e02e5b4ebc59f85ab6b55eb7 /worktree.h | |
parent | Merge branch 'jc/am-3-fallback-regression-fix' (diff) | |
parent | worktree: add 'list' command (diff) | |
download | tgif-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.h | 38 |
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 |