From ae8e4c9ce10ea9439a88b79a40aeff4696d40416 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 7 Nov 2011 13:26:22 -0800 Subject: merge: make usage of commit->util more extensible The merge-recursive code uses the commit->util field directly to annotate the commit objects given from the command line, i.e. the remote heads to be merged, with a single string to be used to describe it in its trace messages and conflict markers. Correct this short-signtedness by redefining the field to be a pointer to a structure "struct merge_remote_desc" that later enhancements can add more information. Store the original objects we were told to merge in a field "obj" in this struct, so that we can recover the tag we were told to merge. Signed-off-by: Junio C Hamano --- commit.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'commit.h') diff --git a/commit.h b/commit.h index 009b113e5b..5b57eab578 100644 --- a/commit.h +++ b/commit.h @@ -185,4 +185,17 @@ extern int commit_tree(const char *msg, unsigned char *tree, struct commit_list *parents, unsigned char *ret, const char *author); +struct merge_remote_desc { + struct object *obj; /* the named object, could be a tag */ + const char *name; +}; +#define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util)) + +/* + * Given "name" from the command line to merge, find the commit object + * and return it, while storing merge_remote_desc in its ->util field, + * to allow callers to tell if we are told to merge a tag. + */ +struct commit *get_merge_parent(const char *name); + #endif /* COMMIT_H */ -- cgit v1.2.3