interpret_branch_name: always respect "namelen" parameter
[gitweb.git] / builtin / repack.c
index 52846f8d7281cc114a34ac25baef69c25052dbe5..91e2363c7172ae3db9304e1490234b2b4cfbe381 100644 (file)
@@ -123,7 +123,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
        struct string_list rollback = STRING_LIST_INIT_NODUP;
        struct string_list existing_packs = STRING_LIST_INIT_DUP;
        struct strbuf line = STRBUF_INIT;
-       int nr_packs, ext, ret, failed;
+       int ext, ret, failed;
        FILE *out;
 
        /* variables to be filled by option parsing */
@@ -231,23 +231,21 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
 
        ret = start_command(&cmd);
        if (ret)
-               return 1;
+               return ret;
 
-       nr_packs = 0;
        out = xfdopen(cmd.out, "r");
        while (strbuf_getline(&line, out, '\n') != EOF) {
                if (line.len != 40)
                        die("repack: Expecting 40 character sha1 lines only from pack-objects.");
                string_list_append(&names, line.buf);
-               nr_packs++;
        }
        fclose(out);
        ret = finish_command(&cmd);
        if (ret)
-               return 1;
+               return ret;
        argv_array_clear(&cmd_args);
 
-       if (!nr_packs && !quiet)
+       if (!names.nr && !quiet)
                printf("Nothing new to pack.\n");
 
        /*
@@ -327,7 +325,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                                chmod(fname_old, statbuffer.st_mode);
                        }
                        if (rename(fname_old, fname))
-                               exit(errno);
+                               die_errno(_("renaming '%s' failed"), fname_old);
                        free(fname);
                        free(fname_old);
                }
@@ -341,7 +339,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                                        packdir,
                                        item->string,
                                        exts[ext]);
-                       remove_path(fname);
+                       if (remove_path(fname))
+                               warning(_("removing '%s' failed"), fname);
                }
        }