Merge pull request #4531 from tiennou/fix/checkout-default-safe checkout: change default strategy to SAFE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ba0cb4e..d138d74 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ v0.27 + 1
### Breaking API changes
+* The default checkout strategy changed from `DRY_RUN` to `SAFE` (#4531).
+
v0.27
---------
diff --git a/include/git2/checkout.h b/include/git2/checkout.h
index 4a9dbb0..c7b0c83 100644
--- a/include/git2/checkout.h
+++ b/include/git2/checkout.h
@@ -251,7 +251,7 @@ typedef void (*git_checkout_perfdata_cb)(
typedef struct git_checkout_options {
unsigned int version;
- unsigned int checkout_strategy; /**< default will be a dry run */
+ unsigned int checkout_strategy; /**< default will be a safe checkout */
int disable_filters; /**< don't apply filters like CRLF conversion */
unsigned int dir_mode; /**< default is 0755 */
@@ -295,7 +295,7 @@ typedef struct git_checkout_options {
} git_checkout_options;
#define GIT_CHECKOUT_OPTIONS_VERSION 1
-#define GIT_CHECKOUT_OPTIONS_INIT {GIT_CHECKOUT_OPTIONS_VERSION}
+#define GIT_CHECKOUT_OPTIONS_INIT {GIT_CHECKOUT_OPTIONS_VERSION, GIT_CHECKOUT_SAFE}
/**
* Initializes a `git_checkout_options` with default values. Equivalent to
diff --git a/src/rebase.c b/src/rebase.c
index 3be7512..f1cb22f 100644
--- a/src/rebase.c
+++ b/src/rebase.c
@@ -275,9 +275,6 @@ static int rebase_alloc(git_rebase **out, const git_rebase_options *rebase_opts)
GITERR_CHECK_ALLOC(rebase->options.rewrite_notes_ref);
}
- if ((rebase->options.checkout_options.checkout_strategy & (GIT_CHECKOUT_SAFE | GIT_CHECKOUT_FORCE)) == 0)
- rebase->options.checkout_options.checkout_strategy = GIT_CHECKOUT_SAFE;
-
*out = rebase;
return 0;
diff --git a/src/stash.c b/src/stash.c
index 8a8c57a..4b7e92a 100644
--- a/src/stash.c
+++ b/src/stash.c
@@ -738,9 +738,6 @@ static void normalize_apply_options(
memcpy(opts, &default_apply_opts, sizeof(git_stash_apply_options));
}
- if ((opts->checkout_options.checkout_strategy & (GIT_CHECKOUT_SAFE | GIT_CHECKOUT_FORCE)) == 0)
- opts->checkout_options.checkout_strategy = GIT_CHECKOUT_SAFE;
-
if (!opts->checkout_options.our_label)
opts->checkout_options.our_label = "Updated upstream";