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 <gitster@pobox.com>
This commit is contained in:
13
commit.h
13
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 */
|
||||
|
Reference in New Issue
Block a user