Merge branch 'rs/use-strbuf-addbuf'
[gitweb.git] / builtin / remote.c
index 9f934cb7e8218bd669bc8c53450ce4d77f069ed7..9f6a6b3a9cea036d9a58c52f7d17c2b043a18f33 100644 (file)
@@ -247,7 +247,7 @@ struct branch_info {
        enum { NO_REBASE, NORMAL_REBASE, INTERACTIVE_REBASE } rebase;
 };
 
-static struct string_list branch_list;
+static struct string_list branch_list = STRING_LIST_INIT_NODUP;
 
 static const char *abbrev_ref(const char *name, const char *prefix)
 {
@@ -539,10 +539,6 @@ static int add_branch_for_removal(const char *refname,
                return 0;
        }
 
-       /* make sure that symrefs are deleted */
-       if (flags & REF_ISSYMREF)
-               return unlink(git_path("%s", refname));
-
        string_list_append(branches->branches, refname);
 
        return 0;
@@ -788,7 +784,7 @@ static int rm(int argc, const char **argv)
        strbuf_release(&buf);
 
        if (!result)
-               result = delete_refs(&branches);
+               result = delete_refs(&branches, REF_NODEREF);
        string_list_clear(&branches, 0);
 
        if (skipped.nr) {
@@ -952,7 +948,7 @@ static int show_local_info_item(struct string_list_item *item, void *cb_data)
        struct show_info *show_info = cb_data;
        struct branch_info *branch_info = item->util;
        struct string_list *merge = &branch_info->merge;
-       const char *also;
+       int width = show_info->width + 4;
        int i;
 
        if (branch_info->rebase && branch_info->merge.nr > 1) {
@@ -969,13 +965,12 @@ static int show_local_info_item(struct string_list_item *item, void *cb_data)
                return 0;
        } else if (show_info->any_rebase) {
                printf_ln(_(" merges with remote %s"), merge->items[0].string);
-               also = _("    and with remote");
+               width++;
        } else {
                printf_ln(_("merges with remote %s"), merge->items[0].string);
-               also = _("   and with remote");
        }
        for (i = 1; i < merge->nr; i++)
-               printf("    %-*s %s %s\n", show_info->width, "", also,
+               printf(_("%-*s    and with remote %s\n"), width, "",
                       merge->items[i].string);
 
        return 0;
@@ -1305,7 +1300,7 @@ static int prune_remote(const char *remote, int dry_run)
        string_list_sort(&refs_to_prune);
 
        if (!dry_run)
-               result |= delete_refs(&refs_to_prune);
+               result |= delete_refs(&refs_to_prune, 0);
 
        for_each_string_list_item(item, &states.stale) {
                const char *refname = item->util;