/** Copyright (C) the libgit2 contributors. All rights reserved.** This file is part of libgit2, distributed under the GNU GPL v2 with* a Linking Exception. For full terms see the included COPYING file.*/#ifndef INCLUDE_git_annotated_commit_h__#define INCLUDE_git_annotated_commit_h__#include "common.h"#include "repository.h"#include "types.h"/*** @file git2/annotated_commit.h* @brief A commit and information about how it was looked up by the user.* @defgroup git_annotated_commit Git annotated commit routines* @ingroup Git** An "annotated commit" is a commit that contains information about* how the commit was resolved, which can be used for maintaining the* user's "intent" through commands like merge and rebase. For example,* if a user wants to "merge HEAD" then an annotated commit is used to* both contain the HEAD commit _and_ the fact that it was resolved as* the HEAD ref.* @{*/GIT_BEGIN_DECL/*** Creates a `git_annotated_commit` from the given reference.* The resulting git_annotated_commit must be freed with* `git_annotated_commit_free`.** @param[out] out pointer to store the git_annotated_commit result in* @param repo repository that contains the given reference* @param ref reference to use to lookup the git_annotated_commit* @return 0 on success or error code*/GIT_EXTERN(int) git_annotated_commit_from_ref(git_annotated_commit **out,git_repository *repo,const git_reference *ref);/*** Creates a `git_annotated_commit` from the given fetch head data.* The resulting git_annotated_commit must be freed with* `git_annotated_commit_free`.** @param[out] out pointer to store the git_annotated_commit result in* @param repo repository that contains the given commit* @param branch_name name of the (remote) branch* @param remote_url url of the remote* @param id the commit object id of the remote branch* @return 0 on success or error code*/GIT_EXTERN(int) git_annotated_commit_from_fetchhead(git_annotated_commit **out,git_repository *repo,const char *branch_name,const char *remote_url,const git_oid *id);/*** Creates a `git_annotated_commit` from the given commit id.* The resulting git_annotated_commit must be freed with* `git_annotated_commit_free`.** An annotated commit contains information about how it was* looked up, which may be useful for functions like merge or* rebase to provide context to the operation. For example,* conflict files will include the name of the source or target* branches being merged. It is therefore preferable to use the* most specific function (eg `git_annotated_commit_from_ref`)* instead of this one when that data is known.** @param[out] out pointer to store the git_annotated_commit result in* @param repo repository that contains the given commit* @param id the commit object id to lookup* @return 0 on success or error code*/GIT_EXTERN(int) git_annotated_commit_lookup(git_annotated_commit **out,git_repository *repo,const git_oid *id);/*** Creates a `git_annotated_commit` from a revision string.** See `man gitrevisions`, or* http://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for* information on the syntax accepted.** @param[out] out pointer to store the git_annotated_commit result in* @param repo repository that contains the given commit* @param revspec the extended sha syntax string to use to lookup the commit* @return 0 on success or error code*/GIT_EXTERN(int) git_annotated_commit_from_revspec(git_annotated_commit **out,git_repository *repo,const char *revspec);/*** Gets the commit ID that the given `git_annotated_commit` refers to.** @param commit the given annotated commit* @return commit id*/GIT_EXTERN(const git_oid *) git_annotated_commit_id(const git_annotated_commit *commit);/*** Get the refname that the given `git_annotated_commit` refers to.** @param commit the given annotated commit* @return ref name.*/GIT_EXTERN(const char *) git_annotated_commit_ref(const git_annotated_commit *commit);/*** Frees a `git_annotated_commit`.** @param commit annotated commit to free*/GIT_EXTERN(void) git_annotated_commit_free(git_annotated_commit *commit);/** @} */GIT_END_DECL#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型