From: Johannes Sixt <j.sixt@viscovery.net>
To: Dmitry Potapov <dpotapov@gmail.com>
Cc: Brian Foster <brian.foster@innova-card.com>, git@vger.kernel.org
Subject: Re: fsck --full is Ok, but clones are not, "missing commits"?!
Date: Wed, 16 Apr 2008 16:56:08 +0200 [thread overview]
Message-ID: <48061388.6090705@viscovery.net> (raw)
In-Reply-To: <20080416142551.GB3133@dpotapov.dyndns.org>
Dmitry Potapov schrieb:
> On Wed, Apr 16, 2008 at 03:22:04PM +0200, Johannes Sixt wrote:
>> Brian Foster schrieb:
>>> Dmitry Potapov <dpotapov@gmail.com> correctly deduced:
>>>> I suspect your original git repository has info/grafts
>>> hi Dmitry,
>>>
>>> bingo! YES, it does:
>> ...
>>> the goal is to put things into a sane state so any new
>>> clones are healthy. there's only one(?) existing clone,
>>> which may or may not be(? become?) an issue.
>> Just move info/grafts out of the way and you *may* be all set. Don't
>> delete it - there might be a reason that the file exists.
>
> I believe that parts of history hidden by info/grafts are removed now,
> otherwise git clone would not have problems to clone this repository.
No. The reason why git clone'd repositories have problems is that
git-upload-pack sends a pack that does not contain the hidden objects; but
since the cloned repository doesn't have the info/grafts, it tries to look
up the hidden, now missing, objects, and fails.
>> - The repository is broken. Then 'git repack -f -d -a' was done while the
>> grafts were in effect (and obviously the grafts had hidden parts of the
>> history, which are now no longer available).
>
> Actually, 'git repack -f -d -a' does not remove hidden parts of the
> history (because 'git prune-packed' does not remove hidden parts), but
> 'git prune' does remove hidden parts. I believe 'git prune' relies on
> 'git-fsck --unreachable', which outputs hidden parts as unreachable.
> Perhaps, git-fsck should be corrected, so it will not treat hidden as
> unreachable, because anything what is hidden is still reachable for
> anyone who is trying to clone the repository.
Actually, no. The trouble is that *all* tools obey grafts. Hence,
git-repack -f -d -a will remove the hidden objects. But a subsequent fsck
won't notice, because it *also* obeys the grafts. git prune will remove
hidden objects only as long as they are loose; if they are already packed,
then only a repack -f will remove them.
Here's a thread with a proposal by Linus how to improve the situation, but
nobody came along and implemented it:
http://thread.gmane.org/gmane.comp.version-control.git/37744/focus=37908
-- Hannes
next prev parent reply other threads:[~2008-04-16 14:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200804161334.17748.brian.foster@innova-card.com>
2008-04-16 11:48 ` Re: Re: fsck --full is Ok, but clones are not, "missing commits"?! Brian Foster
2008-04-16 12:14 ` Dmitry Potapov
2008-04-16 14:59 ` Petr Baudis
2008-04-16 16:23 ` Dmitry Potapov
2008-04-16 13:22 ` Johannes Sixt
2008-04-16 14:25 ` Dmitry Potapov
2008-04-16 14:56 ` Johannes Sixt [this message]
2008-04-16 16:17 ` Dmitry Potapov
2008-04-16 16:47 ` Jakub Narebski
2008-04-17 6:18 ` Johannes Sixt
[not found] <20080506115224.79802c7c@zebulon.innova-card.com>
2008-05-06 12:17 ` Johannes Sixt
[not found] <200804171756.39911.brian.foster@innova-card.com>
2008-04-17 18:44 ` Brian Foster
[not found] <200804161626.44174.brian.foster@innova-card.com>
2008-04-16 15:04 ` Brian Foster
2008-04-16 15:22 ` Johannes Sixt
2008-04-16 16:11 ` Brandon Casey
[not found] ` <200804171643.15504.brian.foster@innova-card.com>
2008-04-17 14:53 ` Brian Foster
2008-04-17 15:41 ` Brandon Casey
[not found] ` <200804180943.20933.brian.foster@innova-card.com>
2008-04-18 8:41 ` Brian Foster
2008-04-18 8:55 ` Johannes Sixt
[not found] ` <200804181114.47067.brian.foster@innova-card.com>
2008-04-18 9:29 ` Brian Foster
2008-04-16 17:15 ` Dmitry Potapov
[not found] <20080416062925.8028e952@zebulon.innova-card.com>
2008-04-16 6:37 ` Brian Foster
2008-04-16 9:14 ` David Kastrup
2008-05-05 4:25 ` Bryan Donlan
[not found] ` <200805051608.55200.brian.foster@innova-card.com>
2008-05-05 14:44 ` Brian Foster
2008-05-05 15:12 ` Johannes Sixt
[not found] ` <200805061231.30135.brian.foster@innova-card.com>
2008-05-06 10:58 ` Brian Foster
2008-05-06 11:12 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48061388.6090705@viscovery.net \
--to=j.sixt@viscovery.net \
--cc=brian.foster@innova-card.com \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).