mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 09:49:58 +00:00
remote: add prune option to fetch
Add a prune setting in the fetch options to allow to fall back to the configuration (the default) or to set it on or off.
This commit is contained in:
parent
22261344de
commit
6fb373a0e8
@ -505,6 +505,21 @@ GIT_EXTERN(int) git_remote_init_callbacks(
|
||||
git_remote_callbacks *opts,
|
||||
unsigned int version);
|
||||
|
||||
typedef enum {
|
||||
/**
|
||||
* Use the setting from the configuration
|
||||
*/
|
||||
GIT_FETCH_PRUNE_FALLBACK,
|
||||
/**
|
||||
* Force pruning on
|
||||
*/
|
||||
GIT_FETCH_PRUNE,
|
||||
/**
|
||||
* Force pruning off
|
||||
*/
|
||||
GIT_FETCH_NO_PRUNE,
|
||||
} git_fetch_prune_t;
|
||||
|
||||
typedef struct {
|
||||
int version;
|
||||
|
||||
@ -512,6 +527,11 @@ typedef struct {
|
||||
* Callbacks to use for this fetch operation
|
||||
*/
|
||||
git_remote_callbacks callbacks;
|
||||
|
||||
/**
|
||||
* Whether to perform a prune after the fetch
|
||||
*/
|
||||
git_fetch_prune_t prune;
|
||||
} git_fetch_options;
|
||||
|
||||
#define GIT_FETCH_OPTIONS_VERSION 1
|
||||
|
12
src/remote.c
12
src/remote.c
@ -973,6 +973,7 @@ int git_remote_fetch(
|
||||
const char *reflog_message)
|
||||
{
|
||||
int error;
|
||||
bool prune = false;
|
||||
git_buf reflog_msg_buf = GIT_BUF_INIT;
|
||||
const git_remote_callbacks *cbs = NULL;
|
||||
|
||||
@ -1008,7 +1009,16 @@ int git_remote_fetch(
|
||||
if (error < 0)
|
||||
return error;
|
||||
|
||||
if (remote->prune_refs)
|
||||
if (opts && opts->prune == GIT_FETCH_PRUNE)
|
||||
prune = true;
|
||||
else if (opts && opts->prune == GIT_FETCH_PRUNE_FALLBACK && remote->prune_refs)
|
||||
prune = true;
|
||||
else if (opts && opts->prune == GIT_FETCH_NO_PRUNE)
|
||||
prune = false;
|
||||
else
|
||||
prune = remote->prune_refs;
|
||||
|
||||
if (prune)
|
||||
error = git_remote_prune(remote, cbs);
|
||||
|
||||
return error;
|
||||
|
Loading…
Reference in New Issue
Block a user