Re: bug in git-fsck-cache?

2005-08-31 Thread Junio C Hamano
Stephen Rothwell <[EMAIL PROTECTED]> writes:

>> Stephen Rothwell <[EMAIL PROTECTED]> writes:
>> 
>> > The commit c594adad5653491813959277fb87a2fef54c4e05 is shown as
>> > "connected" (in Linus' tree, not one of my patches) by gitk, so I am happy
>> > that git prune did not get rid of it, but why does fsck-cache report it as
>> > dangling?
>> 
>> Hmph.  You ran fsck-cache by hand without --full (i.e. you told
>> it not to worry about objects already in packs); 'git prune'
>> runs it with '--full' to do the full connectivity analysis.  I
>> think that's where the difference comes from.
>
> ok, with '--full' nothing gets reported as dangling.  That commit is not
> in a pack, but is in an object directory referenced through
> objects/info/alternates.

Ahh.  Yes, it is the same thing.  I said "not in the pack", but I
should have said "exists locally unpacked".

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: bug in git-fsck-cache?

2005-08-31 Thread Stephen Rothwell
On Wed, 31 Aug 2005 13:13:56 -0700 Junio C Hamano <[EMAIL PROTECTED]> wrote:
>
> Stephen Rothwell <[EMAIL PROTECTED]> writes:
> 
> > The commit c594adad5653491813959277fb87a2fef54c4e05 is shown as
> > "connected" (in Linus' tree, not one of my patches) by gitk, so I am happy
> > that git prune did not get rid of it, but why does fsck-cache report it as
> > dangling?
> 
> Hmph.  You ran fsck-cache by hand without --full (i.e. you told
> it not to worry about objects already in packs); 'git prune'
> runs it with '--full' to do the full connectivity analysis.  I
> think that's where the difference comes from.

ok, with '--full' nothing gets reported as dangling.  That commit is not
in a pack, but is in an object directory referenced through
objects/info/alternates.

> Is that commit reachable from any of the refs hanging under your
> $GIT_DIR/refs/?  For example, do you have the Linus tip of the
> master branch in $GIT_DIR/refs/heads/origin?

yes, master == origin and that commit is reachable from master according
to gitk.

> If an object is already in a pack and later became unreachable
> from any of your refs, there is no way to remove that object
> from the pack, so dangling commits in a pack will be left
> dangling even after 'git prune'.

It is still reachable as fsck-cache --full shows (I guess).

Cheers,
Stephen Rothwell
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: bug in git-fsck-cache?

2005-08-31 Thread Junio C Hamano
Stephen Rothwell <[EMAIL PROTECTED]> writes:

> The commit c594adad5653491813959277fb87a2fef54c4e05 is shown as
> "connected" (in Linus' tree, not one of my patches) by gitk, so I am happy
> that git prune did not get rid of it, but why does fsck-cache report it as
> dangling?

Hmph.  You ran fsck-cache by hand without --full (i.e. you told
it not to worry about objects already in packs); 'git prune'
runs it with '--full' to do the full connectivity analysis.  I
think that's where the difference comes from.

Is that commit reachable from any of the refs hanging under your
$GIT_DIR/refs/?  For example, do you have the Linus tip of the
master branch in $GIT_DIR/refs/heads/origin?

If an object is already in a pack and later became unreachable
from any of your refs, there is no way to remove that object
from the pack, so dangling commits in a pack will be left
dangling even after 'git prune'.

Originally, the distinction between with and without --full was
made so that once you fsck and repack, you do not have to spend
time doing full object integrity analysis (I think it still does
full reachability analysis, but I have to check).  It might be
better to remove '--full' option from fsck-cache and make the
default ot do full integrity, and introduce '--fast' option to
skip it, that is, to default on the safe side.

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


bug in git-fsck-cache?

2005-08-30 Thread Stephen Rothwell
Hi all,

I have a tree that is a copy of Linus' git kernel tree in which I have
been doing development and pulling updates and rebasing my patches etc.

It now does this:

$ git fsck-cache
dangling tree 34d23b379f39922dff3cee671e28d41f3be56167
dangling blob 3eab2290b12a2cb683e4eadc20253bde37c84859
dangling blob 578e30193b7b67b71da1bdf0e822b8d783d8c245
dangling blob 7798f01f77b4aeacfd14586e9847deee1bf7ca74
dangling blob 81e94f8aa84684862edacb2fafff9cf9dca6878d
dangling blob 85420bb37d581bc725d07c34254e4a3a1a834038
dangling tree 908ef958d87158278502966ed4f941478e18c5d7
dangling blob 93c437a0911b9d00d4ce76be30686144e8063f5e
dangling tree 9c14b3618c3977e7ea58d25632585543e56f5e09
dangling tree b8c7a5af99058a82dab51eb7b27ad81987ffa5df
dangling tree c004aeb8be7b0520174174e574d2655a610844a8
dangling commit c594adad5653491813959277fb87a2fef54c4e05
dangling blob d0960a82708cad4196c2d44f0a16cb3e80f77c00
dangling tree ed4e5baf7854719c19177988eb864b9be5867fa7
dangling tree ede09c2983717a0ad040e9c79f37dcb801fe49b6
dangling tree f0f3c408b22634fbd5c6409610c566ae7c92ddc3
$ git prune
$ git fsck-cache
dangling tree 34d23b379f39922dff3cee671e28d41f3be56167
dangling blob 3eab2290b12a2cb683e4eadc20253bde37c84859
dangling blob 578e30193b7b67b71da1bdf0e822b8d783d8c245
dangling blob 7798f01f77b4aeacfd14586e9847deee1bf7ca74
dangling blob 81e94f8aa84684862edacb2fafff9cf9dca6878d
dangling blob 85420bb37d581bc725d07c34254e4a3a1a834038
dangling tree 908ef958d87158278502966ed4f941478e18c5d7
dangling blob 93c437a0911b9d00d4ce76be30686144e8063f5e
dangling tree 9c14b3618c3977e7ea58d25632585543e56f5e09
dangling tree b8c7a5af99058a82dab51eb7b27ad81987ffa5df
dangling tree c004aeb8be7b0520174174e574d2655a610844a8
dangling commit c594adad5653491813959277fb87a2fef54c4e05
dangling blob d0960a82708cad4196c2d44f0a16cb3e80f77c00
dangling tree ed4e5baf7854719c19177988eb864b9be5867fa7
dangling tree ede09c2983717a0ad040e9c79f37dcb801fe49b6
dangling tree f0f3c408b22634fbd5c6409610c566ae7c92ddc3
$

The commit c594adad5653491813959277fb87a2fef54c4e05 is shown as
"connected" (in Linus' tree, not one of my patches) by gitk, so I am happy
that git prune did not get rid of it, but why does fsck-cache report it as
dangling?

Even stranger, I actually pull Linus' tree into another tree that I have
never otherwise modified and I pull updates to my work tree from it.
fsck-cache finds not problems in the pristine tree.

Cheers,
Stephen Rothwell
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html