threads / discuss / 4906

git-repack not removing files from $GIT_DIR/objects/[00-ff]

Subject: git-repack not removing files from $GIT_DIR/objects/[00-ff]

## tl;dr

6 messages between Jul 17, 2006 and Jul 17, 2006.

replies: 5people: 3as markdown or json

Post, Mark K· Jul 17, 2006, 00:44 UTC · lore

I'm having a problem that just started occurring with git-repack not removing the files from $GIT_DIR/objects/*, and therefore not removing the directories, since they're not empty. The command I'm using (as the git user) is this: GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l

This used to work, but then suddenly stopped working. I ran an strace -f -F with this same command, and I don't see any attempt being made to unlink the files in $GIT_DIR/objects/*/, but I do see the rmdir commands failing because the directories are not empty. All of the files in those directories are owned by git:git.

I tried upgrading to git 1.4.1, but the same thing happens. The gzipped strace output is almost 5MB in size, certainly not appropriate to attach here. I can make it available from the system's web server if anyone wants to look at it.

Please let me know if there's any other information needed.
Mark Post
Shawn Pearce· Jul 17, 2006, 01:21 UTC · re: Post, Mark K · lore

Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]

"Post, Mark K" <mark.post@eds.com> wrote:
Show 11 quoted lines
> I'm having a problem that just started occurring with git-repack not
> removing the files from $GIT_DIR/objects/*, and therefore not removing
> the directories, since they're not empty.  The command I'm using (as the
> git user) is this:
> GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l
> 
> This used to work, but then suddenly stopped working.  I ran an strace
> -f -F with this same command, and I don't see any attempt being made to
> unlink the files in $GIT_DIR/objects/*/, but I do see the rmdir commands
> failing because the directories are not empty.  All of the files in
> those directories are owned by git:git.

Try running `git-prune-packed` after git-repack. git-repack doesn't delete the loose objects.

I don't remember git-repack ever doing it either.
-- 
Shawn.
Post, Mark K· Jul 17, 2006, 01:47 UTC · re: Shawn Pearce · lore

RE: git-repack not removing files from $GIT_DIR/objects/[00-ff]

Thanks for the suggestion, but it didn't help. One reason is that this is a bare repository. When I ran the command, it aborted with "fatal: Not a git repository." Most likely because bare repositories don't have a .git directory in them.

Mark Post 
-----Original Message-----
From: spearce@spearce.org [mailto:spearce@spearce.org] 
Sent: Sunday, July 16, 2006 9:22 PM
To: Post, Mark K
Cc: git@vger.kernel.org
Subject: Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]
"Post, Mark K" <mark.post@eds.com> wrote:
> I'm having a problem that just started occurring with git-repack not
> removing the files from $GIT_DIR/objects/*, and therefore not removing
> the directories, since they're not empty.  The command I'm using (as
the
Show 5 quoted lines
> git user) is this:
> GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l
> 
> This used to work, but then suddenly stopped working.  I ran an strace
> -f -F with this same command, and I don't see any attempt being made
to
> unlink the files in $GIT_DIR/objects/*/, but I do see the rmdir
commands
> failing because the directories are not empty.  All of the files in
> those directories are owned by git:git.

Try running `git-prune-packed` after git-repack. git-repack doesn't delete the loose objects.

I don't remember git-repack ever doing it either.
-- 
Shawn.
Shawn Pearce· Jul 17, 2006, 01:51 UTC · re: Post, Mark K · lore

Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]

So try:
  GIT_DIR=/home/git/pub/scm/linux-2.6.git git-prune-packed

On a bare repository you should always set the GIT_DIR environment variable to the directory of the repository before running the command.

"Post, Mark K" <mark.post@eds.com> wrote:
Show 35 quoted lines
> Thanks for the suggestion, but it didn't help.  One reason is that this
> is a bare repository.  When I ran the command, it aborted with "fatal:
> Not a git repository."  Most likely because bare repositories don't have
> a .git directory in them.
> 
> 
> Mark Post 
> 
> -----Original Message-----
> From: spearce@spearce.org [mailto:spearce@spearce.org] 
> Sent: Sunday, July 16, 2006 9:22 PM
> To: Post, Mark K
> Cc: git@vger.kernel.org
> Subject: Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]
> 
> "Post, Mark K" <mark.post@eds.com> wrote:
> > I'm having a problem that just started occurring with git-repack not
> > removing the files from $GIT_DIR/objects/*, and therefore not removing
> > the directories, since they're not empty.  The command I'm using (as
> the
> > git user) is this:
> > GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l
> > 
> > This used to work, but then suddenly stopped working.  I ran an strace
> > -f -F with this same command, and I don't see any attempt being made
> to
> > unlink the files in $GIT_DIR/objects/*/, but I do see the rmdir
> commands
> > failing because the directories are not empty.  All of the files in
> > those directories are owned by git:git.
> 
> Try running `git-prune-packed` after git-repack.  git-repack doesn't
> delete the loose objects.
> 
> I don't remember git-repack ever doing it either.
-- 
Shawn.
Post, Mark K· Jul 17, 2006, 02:48 UTC · re: Shawn Pearce · lore

RE: git-repack not removing files from $GIT_DIR/objects/[00-ff]

That doesn't generate any error messages, but it also doesn't clean up the files in the object directory.

Mark Post 
-----Original Message-----
From: spearce@spearce.org [mailto:spearce@spearce.org] 
Sent: Sunday, July 16, 2006 9:52 PM
To: Post, Mark K
Cc: git@vger.kernel.org
Subject: Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]
So try:
  GIT_DIR=/home/git/pub/scm/linux-2.6.git git-prune-packed

On a bare repository you should always set the GIT_DIR environment variable to the directory of the repository before running the command.

"Post, Mark K" <mark.post@eds.com> wrote:
> Thanks for the suggestion, but it didn't help.  One reason is that
this
> is a bare repository.  When I ran the command, it aborted with "fatal:
> Not a git repository."  Most likely because bare repositories don't
have
Show 11 quoted lines
> a .git directory in them.
> 
> 
> Mark Post 
> 
> -----Original Message-----
> From: spearce@spearce.org [mailto:spearce@spearce.org] 
> Sent: Sunday, July 16, 2006 9:22 PM
> To: Post, Mark K
> Cc: git@vger.kernel.org
> Subject: Re: git-repack not removing files from
$GIT_DIR/objects/[00-ff]
> 
> "Post, Mark K" <mark.post@eds.com> wrote:
> > I'm having a problem that just started occurring with git-repack not
> > removing the files from $GIT_DIR/objects/*, and therefore not
removing
Show 6 quoted lines
> > the directories, since they're not empty.  The command I'm using (as
> the
> > git user) is this:
> > GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l
> > 
> > This used to work, but then suddenly stopped working.  I ran an
strace
Show 11 quoted lines
> > -f -F with this same command, and I don't see any attempt being made
> to
> > unlink the files in $GIT_DIR/objects/*/, but I do see the rmdir
> commands
> > failing because the directories are not empty.  All of the files in
> > those directories are owned by git:git.
> 
> Try running `git-prune-packed` after git-repack.  git-repack doesn't
> delete the loose objects.
> 
> I don't remember git-repack ever doing it either.
-- 
Shawn.
Jeff King· Jul 17, 2006, 03:26 UTC · re: Post, Mark K · lore

Re: git-repack not removing files from $GIT_DIR/objects/[00-ff]

On Sun, Jul 16, 2006 at 08:44:52PM -0400, Post, Mark K wrote:
Show 5 quoted lines
> I'm having a problem that just started occurring with git-repack not
> removing the files from $GIT_DIR/objects/*, and therefore not removing
> the directories, since they're not empty.  The command I'm using (as the
> git user) is this:
> GIT_DIR=/home/git/pub/scm/linux-2.6.git git-repack -a -d -l

git-prune-packed (which, contrary to what Shawn said, is run by git-repack -d) will only remove objects which are redundant because of their presence in packs. It will not remove objects which are not reachable (which is normal if you have, for example, done a rebase in this repository). Check out git-prune and git-fsck-objects.

-Peff

← back to recent threads