From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: Re: Bringing a bit more sanity to $GIT_DIR/objects/info/alternates?
Date: Mon, 06 Aug 2012 14:55:35 -0700 [thread overview]
Message-ID: <7vboiny9bc.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <7vmx2a3pif.fsf@alter.siamese.dyndns.org> (Junio C. Hamano's message of "Sat, 04 Aug 2012 21:56:56 -0700")
Junio C Hamano <gitster@pobox.com> writes:
> - When you have one object store and a repository that does not yet
> borrow from it, you may want to make the repository borrow from
> the object store. Obviously you can run "echo" like the sample
> script in the previous item above, but it is not obvious how to
> perform the logical next step of shrinking $GIT_DIR/objects of
> the repository that now borrows the objects.
>
> I think "git repack -a -d" is the way to do this, but if you
> compare this command to "git repack -a -d -f" we saw previously
> in this message, it is not surprising that the users would be
> confused---it is not obvious at all.
>
> Some ideas:
>
> - (obvious: give a canned subcommand to do this)
The analysis of this item is wrong, I think. "git repack -a -d -l"
should be the way to do so.
The message looks wrong when it turns out that there is no need to
have any object in the borrowing repository, though. We only see
"Nothing new to pack" (which technically is correct), and the
command exits successfully. You can peek .git/objects/ to find out
that all the objects the borrower used to have its own copy are now
gone (because they are available at the alternate), but the message
gives a false impression that we thought about doing something,
found nothing new to be packed, and gave up without doing anything.
But that is not what is happening. We traversed the connectivity,
found that all the objects necessary for our history are housed in
our alternates, gave "Nothing new to pack" (because we do not have
to have any object on our own), and then removed all the object
files and packs in our repository.
next prev parent reply other threads:[~2012-08-06 21:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-05 4:56 Bringing a bit more sanity to $GIT_DIR/objects/info/alternates? Junio C Hamano
2012-08-05 9:38 ` Michael Haggerty
2012-08-05 19:01 ` Junio C Hamano
2012-08-07 6:16 ` Jeff King
2012-08-06 21:55 ` Junio C Hamano [this message]
2012-08-08 1:42 ` Sascha Cunz
2012-08-11 9:35 ` Hallvard Breien Furuseth
2012-08-27 22:39 ` Oswald Buddenhagen
2012-08-28 19:19 ` GC of alternate object store (was: Bringing a bit more sanity to $GIT_DIR/objects/info/alternates?) Hallvard Breien Furuseth
2012-08-29 7:42 ` Oswald Buddenhagen
2012-08-29 15:52 ` GC of alternate object store Junio C Hamano
2012-08-30 9:53 ` Oswald Buddenhagen
2012-08-30 16:03 ` Junio C Hamano
2012-08-31 16:26 ` Oswald Buddenhagen
2012-08-31 19:18 ` Dan Johnson
2012-08-31 19:45 ` Junio C Hamano
2012-09-01 4:25 ` [PATCH] fetch --all: pass --tags/--no-tags through to each remote Dan Johnson
2012-09-01 11:22 ` Jeff King
2012-09-01 11:25 ` [PATCH 1/2] argv-array: add pop function Jeff King
2012-09-01 11:27 ` [PATCH 2/2] fetch: use argv_array instead of hand-building arrays Jeff King
2012-09-01 14:34 ` Jens Lehmann
2012-09-01 15:27 ` [PATCH] submodule: " Jens Lehmann
2012-09-01 11:32 ` [PATCH] fetch --all: pass --tags/--no-tags through to each remote Jeff King
2012-09-01 11:34 ` [PATCH 3/2] argv-array: fix bogus cast when freeing array Jeff King
2012-09-05 21:22 ` [PATCHv2] fetch --all: pass --tags/--no-tags through to each remote Dan Johnson
2012-09-07 17:07 ` Junio C Hamano
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vboiny9bc.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.