summaryrefslogtreecommitdiff
path: root/revision.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-09-06 02:12:09 -0700
committerJunio C Hamano <junkio@cox.net>2006-09-07 02:46:03 -0700
commit106d710bc13f34aec1a15c4cff80f062f384edf6 (patch)
treee6ff5d78fca3d9292cf71e47a97c4671b6b5a0ec /revision.h
parent8d1d8f83b5d918c6071b606e321de9c31fed9e68 (diff)
downloadgit-106d710bc13f34aec1a15c4cff80f062f384edf6.tar.gz
pack-objects --unpacked=<existing pack> option.
Incremental repack without -a essentially boils down to: rev-list --objects --unpacked --all | pack-objects $new_pack which picks up all loose objects that are still live and creates a new pack. This implements --unpacked=<existing pack> option to tell the revision walking machinery to pretend as if objects in such a pack are unpacked for the purpose of object listing. With this, we could say: rev-list --objects --unpacked=$active_pack --all | pack-objects $new_pack instead, to mean "all live loose objects but pretend as if objects that are in this pack are also unpacked". The newly created pack would be perfect for updating $active_pack by replacing it. Since pack-objects now knows how to do the rev-list's work itself internally, you can also write the above example by: pack-objects --unpacked=$active_pack --all $new_pack </dev/null Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'revision.h')
-rw-r--r--revision.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/revision.h b/revision.h
index c1f71afe6f..a5c35d05cb 100644
--- a/revision.h
+++ b/revision.h
@@ -38,7 +38,7 @@ struct rev_info {
blob_objects:1,
edge_hint:1,
limited:1,
- unpacked:1,
+ unpacked:1, /* see also ignore_packed below */
boundary:1,
parents:1;
@@ -57,6 +57,10 @@ struct rev_info {
unsigned int shown_one:1,
abbrev_commit:1,
relative_date:1;
+
+ const char **ignore_packed; /* pretend objects in these are unpacked */
+ int num_ignore_packed;
+
unsigned int abbrev;
enum cmit_fmt commit_format;
struct log_info *loginfo;