diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-12-09 13:37:09 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-09 13:37:09 -0800 |
commit | eb8aa3d2c2849cb3a44396b89054339df38e2bfa (patch) | |
tree | 7af351487a380753f89376e78a9c860378d28bfb /commit.h | |
parent | a4043aeafed7962716a513e38ca1d5e192e7e831 (diff) | |
parent | 96b8d93a539f3a9f43f0fc38214db8753cac3c2e (diff) | |
download | git-eb8aa3d2c2849cb3a44396b89054339df38e2bfa.tar.gz |
Merge branch 'jc/pull-signed-tag'
* jc/pull-signed-tag:
commit-tree: teach -m/-F options to read logs from elsewhere
commit-tree: update the command line parsing
commit: teach --amend to carry forward extra headers
merge: force edit and no-ff mode when merging a tag object
commit: copy merged signed tags to headers of merge commit
merge: record tag objects without peeling in MERGE_HEAD
merge: make usage of commit->util more extensible
fmt-merge-msg: Add contents of merged tag in the merge message
fmt-merge-msg: package options into a structure
fmt-merge-msg: avoid early returns
refs DWIMmery: use the same rule for both "git fetch" and others
fetch: allow "git fetch $there v1.0" to fetch a tag
merge: notice local merging of tags and keep it unwrapped
fetch: do not store peeled tag object names in FETCH_HEAD
Split GPG interface into its own helper library
Conflicts:
builtin/fmt-merge-msg.c
builtin/merge.c
Diffstat (limited to 'commit.h')
-rw-r--r-- | commit.h | 37 |
1 files changed, 35 insertions, 2 deletions
@@ -181,8 +181,41 @@ static inline int single_parent(struct commit *commit) struct commit_list *reduce_heads(struct commit_list *heads); +struct commit_extra_header { + struct commit_extra_header *next; + char *key; + char *value; + size_t len; +}; + +extern void append_merge_tag_headers(struct commit_list *parents, + struct commit_extra_header ***tail); + extern int commit_tree(const char *msg, unsigned char *tree, - struct commit_list *parents, unsigned char *ret, - const char *author); + struct commit_list *parents, unsigned char *ret, + const char *author); + +extern int commit_tree_extended(const char *msg, unsigned char *tree, + struct commit_list *parents, unsigned char *ret, + const char *author, + struct commit_extra_header *); + +extern struct commit_extra_header *read_commit_extra_headers(struct commit *); +extern struct commit_extra_header *read_commit_extra_header_lines(const char *buf, size_t len); + +extern void free_commit_extra_headers(struct commit_extra_header *extra); + +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 */ |