mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
![Elijah Newren](/assets/img/avatar_default.png)
hash.h depends upon and includes repository.h, due to the definition and use of the_hash_algo (defined as the_repository->hash_algo). However, most headers trying to include hash.h are only interested in the layout of the structs like object_id. Move the parts of hash.h that do not depend upon repository.h into a new file hash-ll.h (the "low level" parts of hash.h), and adjust other files to use this new header where the convenience inline functions aren't needed. This allows hash.h and object.h to be fairly small, minimal headers. It also exposes a lot of hidden dependencies on both path.h (which was brought in by repository.h) and repository.h (which was previously implicitly brought in by object.h), so also adjust other files to be more explicit about what they depend upon. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
#ifndef RESET_H
|
|
#define RESET_H
|
|
|
|
#include "hash-ll.h"
|
|
#include "repository.h"
|
|
|
|
#define GIT_REFLOG_ACTION_ENVIRONMENT "GIT_REFLOG_ACTION"
|
|
|
|
/* Request a detached checkout */
|
|
#define RESET_HEAD_DETACH (1<<0)
|
|
/* Request a reset rather than a checkout */
|
|
#define RESET_HEAD_HARD (1<<1)
|
|
/* Run the post-checkout hook */
|
|
#define RESET_HEAD_RUN_POST_CHECKOUT_HOOK (1<<2)
|
|
/* Only update refs, do not touch the worktree */
|
|
#define RESET_HEAD_REFS_ONLY (1<<3)
|
|
/* Update ORIG_HEAD as well as HEAD */
|
|
#define RESET_ORIG_HEAD (1<<4)
|
|
|
|
struct reset_head_opts {
|
|
/*
|
|
* The commit to checkout/reset to. Defaults to HEAD.
|
|
*/
|
|
const struct object_id *oid;
|
|
/*
|
|
* Optional value to set ORIG_HEAD. Defaults to HEAD.
|
|
*/
|
|
const struct object_id *orig_head;
|
|
/*
|
|
* Optional branch to switch to.
|
|
*/
|
|
const char *branch;
|
|
/*
|
|
* Flags defined above.
|
|
*/
|
|
unsigned flags;
|
|
/*
|
|
* Optional reflog message for branch, defaults to head_msg.
|
|
*/
|
|
const char *branch_msg;
|
|
/*
|
|
* Optional reflog message for HEAD, if this omitted but oid or branch
|
|
* are given then default_reflog_action must be given.
|
|
*/
|
|
const char *head_msg;
|
|
/*
|
|
* Optional reflog message for ORIG_HEAD, if this omitted and flags
|
|
* contains RESET_ORIG_HEAD then default_reflog_action must be given.
|
|
*/
|
|
const char *orig_head_msg;
|
|
/*
|
|
* Action to use in default reflog messages, only required if a ref is
|
|
* being updated and the reflog messages above are omitted.
|
|
*/
|
|
const char *default_reflog_action;
|
|
};
|
|
|
|
int reset_head(struct repository *r, const struct reset_head_opts *opts);
|
|
|
|
#endif
|