summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-11-03 15:32:25 -0800
committerJunio C Hamano <gitster@pobox.com>2015-11-03 15:32:25 -0800
commitf89baca1b99ff2882690d6b58dc2071195c6ae84 (patch)
tree2901be0d9c8d2b46710fe97681b66b116127fd96 /builtin
parentb05c2f9ed48adfd9670b28ecdd5c55a4e4698704 (diff)
parent067fbd4105c5aa8260a73cc6961854be0e93fa03 (diff)
downloadgit-f89baca1b99ff2882690d6b58dc2071195c6ae84.tar.gz
Merge branch 'jk/repository-extension' into maint
Prepare for Git on-disk repository representation to undergo backward incompatible changes by introducing a new repository format version "1", with an extension mechanism. * jk/repository-extension: introduce "preciousObjects" repository extension introduce "extensions" form of core.repositoryformatversion
Diffstat (limited to 'builtin')
-rw-r--r--builtin/gc.c20
-rw-r--r--builtin/prune.c3
-rw-r--r--builtin/repack.c3
3 files changed, 17 insertions, 9 deletions
diff --git a/builtin/gc.c b/builtin/gc.c
index 0ad8d30b56..b757d9ae4f 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -340,15 +340,17 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
if (gc_before_repack())
return -1;
- if (run_command_v_opt(repack.argv, RUN_GIT_CMD))
- return error(FAILED_RUN, repack.argv[0]);
-
- if (prune_expire) {
- argv_array_push(&prune, prune_expire);
- if (quiet)
- argv_array_push(&prune, "--no-progress");
- if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
- return error(FAILED_RUN, prune.argv[0]);
+ if (!repository_format_precious_objects) {
+ if (run_command_v_opt(repack.argv, RUN_GIT_CMD))
+ return error(FAILED_RUN, repack.argv[0]);
+
+ if (prune_expire) {
+ argv_array_push(&prune, prune_expire);
+ if (quiet)
+ argv_array_push(&prune, "--no-progress");
+ if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
+ return error(FAILED_RUN, prune.argv[0]);
+ }
}
if (prune_worktrees_expire) {
diff --git a/builtin/prune.c b/builtin/prune.c
index 10b03d3e4c..8f4f052285 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -119,6 +119,9 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, options, prune_usage, 0);
+ if (repository_format_precious_objects)
+ die(_("cannot prune in a precious-objects repo"));
+
while (argc--) {
unsigned char sha1[20];
const char *name = *argv++;
diff --git a/builtin/repack.c b/builtin/repack.c
index 70b9b1eaf1..945611006a 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -193,6 +193,9 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, builtin_repack_options,
git_repack_usage, 0);
+ if (delete_redundant && repository_format_precious_objects)
+ die(_("cannot delete packs in a precious-objects repo"));
+
if (pack_kept_objects < 0)
pack_kept_objects = write_bitmaps;