Re: [PATCH v2 3/3] pack-objects: honor '.keep' files
- From
Brandon Casey <casey@nrlssc.navy.mil>
- Date
- Nov 5, 2008, 22:37 UTC
- Message-ID
- <GV8cY3fn8l5UV5cNoPN8bHchWt9u2tbZ8j_ypkiY-ZLfO1tx9d7ebA@cipher.nrlssc.navy.mil>
- In-Reply-To
- <LSyxMgVV7zAWRvSezvxyUc6-kz2gK6MRVKonKSf1pAmdqO-jeuMFIw@cipher.nrlssc.navy.mil>
Junio,
Please leave this in pu for now, I have some concerns that I haven't had time to write down yet.
-brandon
Brandon Casey wrote:
Show 54 quoted lines
> From: Brandon Casey <drafnel@gmail.com> > > By default, pack-objects creates a pack file with every object specified by > the user. There are two options which can be used to exclude objects which > are accessible by the repository. > > 1) --incremental > This excludes any object which already exists in an accessible pack. > > 2) --local > This excludes any object which exists in a non-local pack. > > With this patch, both arguments also cause objects which exist in packs > marked with a .keep file to be excluded. Only the --local option requires > an explicit check for the .keep file. If the user doesn't want the objects > in a pack marked with .keep to be exclude, then the .keep file should be > removed. > > Additionally, this fixes the repack bug which allowed porcelain repack to > create packs which contained objects already contained in existing packs > marked with a .keep file. > > Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> > --- > builtin-pack-objects.c | 2 +- > t/t7700-repack.sh | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c > index 15b80db..8be9113 100644 > --- a/builtin-pack-objects.c > +++ b/builtin-pack-objects.c > @@ -701,7 +701,7 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type, > break; > if (incremental) > return 0; > - if (local && !p->pack_local) > + if (local && (!p->pack_local || p->pack_keep)) > return 0; > } > } > diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh > index 27af5ab..5b1cd05 100755 > --- a/t/t7700-repack.sh > +++ b/t/t7700-repack.sh > @@ -4,7 +4,7 @@ test_description='git repack works correctly' > > . ./test-lib.sh > > -test_expect_failure 'objects in packs marked .keep are not repacked' ' > +test_expect_success 'objects in packs marked .keep are not repacked' ' > echo content1 > file1 && > echo content2 > file2 && > git add . &&