diff options
Diffstat (limited to 'builtin/checkout.c')
-rw-r--r-- | builtin/checkout.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index 2bf02f2841..f88d2c84a5 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -603,6 +603,16 @@ static int add_one_ref_to_rev_list_arg(const char *refname, return 0; } +static int clear_commit_marks_from_one_ref(const char *refname, + const unsigned char *sha1, + int flags, + void *cb_data) +{ + struct commit *commit = lookup_commit_reference_gently(sha1, 1); + if (commit) + clear_commit_marks(commit, -1); + return 0; +} static void describe_one_orphan(struct strbuf *sb, struct commit *commit) { @@ -674,6 +684,9 @@ static void orphaned_commit_warning(struct commit *commit) suggest_reattach(commit, &revs); else describe_detached_head("Previous HEAD position was", commit); + + clear_commit_marks(commit, -1); + for_each_ref(clear_commit_marks_from_one_ref, NULL); } static int switch_branches(struct checkout_opts *opts, struct branch_info *new) |