Prints "rebased" instead of "merged" if branch.<name>.rebase is true. Signed-off-by: Marc Branchaud <marcnarc@xxxxxxxxxxx> --- I'd like to be able to tell if my "git pull" is going to merge or rebase... builtin-remote.c | 13 ++++++++++--- t/t5505-remote.sh | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/builtin-remote.c b/builtin-remote.c index abc8dd8..ac3a88e 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -145,6 +145,7 @@ static int add(int argc, const char **argv) struct branch_info { char *remote; struct string_list merge; + int rebase; }; static struct string_list branch_list; @@ -164,7 +165,7 @@ static int config_read_branches(const char *key, const char *value, void *cb) char *name; struct string_list_item *item; struct branch_info *info; - enum { REMOTE, MERGE } type; + enum { REMOTE, MERGE, REBASE } type; key += 7; if (!postfixcmp(key, ".remote")) { @@ -173,6 +174,9 @@ static int config_read_branches(const char *key, const char *value, void *cb) } else if (!postfixcmp(key, ".merge")) { name = xstrndup(key, strlen(key) - 6); type = MERGE; + } else if (!postfixcmp(key, ".rebase")) { + name = xstrndup(key, strlen(key) - 7); + type = REBASE; } else return 0; @@ -185,7 +189,7 @@ static int config_read_branches(const char *key, const char *value, void *cb) if (info->remote) warning("more than one branch.%s", key); info->remote = xstrdup(value); - } else { + } else if (type == MERGE) { char *space = strchr(value, ' '); value = abbrev_branch(value); while (space) { @@ -196,6 +200,8 @@ static int config_read_branches(const char *key, const char *value, void *cb) space = strchr(value, ' '); } string_list_append(xstrdup(value), &info->merge); + } else { + info->rebase = 1; } } return 0; @@ -678,9 +684,10 @@ static int show(int argc, const char **argv) if (!info->merge.nr || strcmp(*argv, info->remote)) continue; - printf(" Remote branch%s merged with 'git pull' " + printf(" Remote branch%s %s with 'git pull' " "while on branch %s\n ", info->merge.nr > 1 ? "es" : "", + info->rebase ? "rebased" : "merged", branch->string); for (j = 0; j < info->merge.nr; j++) printf(" %s", info->merge.items[j].string); diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index 1f59960..be0316a 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -112,6 +112,8 @@ cat > test/expect << EOF URL: $(pwd)/one Remote branch merged with 'git pull' while on branch master master + Remote branch rebased with 'git pull' while on branch rebaser + side New remote branch (next fetch will store in remotes/origin) master Tracked remote branches @@ -136,7 +138,10 @@ test_expect_success 'show' ' refs/heads/master:refs/heads/upstream && git config --add remote.origin.push \ +refs/tags/lastbackup && + git branch --track rebaser origin/side && + git config --add branch.rebaser.rebase true && git remote show origin > output && + git branch -D rebaser && test_cmp expect output) ' -- 1.6.1.2.390.gba743 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html