diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-03-26 20:13:16 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-03-26 20:13:16 -0700 |
commit | 4d46ee74e11416e7edf6624611242fe2f98f078c (patch) | |
tree | 68504e315fd1cfeb0a8308285a7fd8148f32322b /builtin | |
parent | Merge branch 'jc/maint-rerere-in-workdir' (diff) | |
parent | checkout: tweak detached-orphan warning format (diff) | |
download | tgif-4d46ee74e11416e7edf6624611242fe2f98f078c.tar.xz |
Merge branch 'jk/checkout-orphan-warning'
* jk/checkout-orphan-warning:
checkout: tweak detached-orphan warning format
checkout: clear commit marks after detached-orphan check
checkout: add basic tests for detached-orphan warning
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/checkout.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index 2bf02f2841..686d0ffd30 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -603,13 +603,26 @@ 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) { struct pretty_print_context ctx = { 0 }; parse_commit(commit); - strbuf_addstr(sb, " - "); + strbuf_addstr(sb, " "); + strbuf_addstr(sb, + find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV)); + strbuf_addch(sb, ' '); pretty_print_commit(CMIT_FMT_ONELINE, commit, sb, &ctx); strbuf_addch(sb, '\n'); } @@ -674,6 +687,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) |