From: Martin Fick <mfick@codeaurora.org>
To: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
Cc: "Derrick Stolee" <stolee@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Lars Schneider" <larsxschneider@gmail.com>,
git <git@vger.kernel.org>, "Jeff King" <peff@peff.net>,
"Duy Nguyen" <pclouds@gmail.com>
Subject: Re: worktrees vs. alternates
Date: Wed, 16 May 2018 11:14:44 -0600 [thread overview]
Message-ID: <5972145.OdP4kjFpBj@mfick-lnx> (raw)
In-Reply-To: <0f19f9f8-d215-622e-5090-1341c013babc@linuxfoundation.org>
On Wednesday, May 16, 2018 10:58:19 AM Konstantin Ryabitsev
wrote:
>
> 1. Find every repo mentioning the parent repository in
> their alternates 2. Repack them without the -l switch
> (which copies all the borrowed objects into those repos)
> 3. Once all child repos have been repacked this way, prune
> the parent repo (it's safe now)
This is probably only true if the repos are in read-only
mode? I suspect this is still racy on a busy server with no
downtime.
> 4. Repack child repos again, this time with the -l flag,
> to get your savings back.
> I would heartily love a way to teach git-repack to
> recognize when an object it's borrowing from the parent
> repo is in danger of being pruned. The cheapest way of
> doing this would probably be to hardlink loose objects
> into its own objects directory and only consider "safe"
> objects those that are part of the parent repository's
> pack. This should make alternates a lot safer, just in
> case git-prune happens to run by accident.
I think that hard linking is generally a good approach to
solving many of the "pruning" races left in git.
I have uploaded a "hard linking" proposal to jgit that could
potentially solve a similar situation that is not alternate
specific, and only for packfiles, with the intent of
eventually also doing something similar for loose
objects. You can see this here:
https://git.eclipse.org/r/c/122288/2
I think it would be good to fill in more of these pruning
gaps!
-Martin
--
The Qualcomm Innovation Center, Inc. is a member of Code
Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2018-05-16 17:14 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-16 8:13 worktrees vs. alternates Lars Schneider
2018-05-16 9:29 ` Ævar Arnfjörð Bjarmason
2018-05-16 9:42 ` Robert P. J. Day
2018-05-16 11:07 ` Ævar Arnfjörð Bjarmason
2018-05-16 9:51 ` Lars Schneider
2018-05-16 10:33 ` Ævar Arnfjörð Bjarmason
2018-05-16 13:02 ` Derrick Stolee
2018-05-16 14:58 ` Konstantin Ryabitsev
2018-05-16 15:34 ` Ævar Arnfjörð Bjarmason
2018-05-16 15:49 ` Konstantin Ryabitsev
2018-05-16 17:54 ` Ævar Arnfjörð Bjarmason
2018-05-16 17:14 ` Martin Fick [this message]
2018-05-16 17:41 ` Konstantin Ryabitsev
2018-05-16 18:02 ` Ævar Arnfjörð Bjarmason
2018-05-16 18:12 ` Konstantin Ryabitsev
2018-05-16 18:26 ` Martin Fick
2018-05-16 19:01 ` Konstantin Ryabitsev
2018-05-16 19:03 ` Martin Fick
2018-05-16 19:11 ` Konstantin Ryabitsev
2018-05-16 19:18 ` Martin Fick
2018-05-16 19:23 ` Jeff King
2018-05-16 19:29 ` Konstantin Ryabitsev
2018-05-16 19:37 ` Jeff King
2018-05-16 19:40 ` Martin Fick
2018-05-16 20:06 ` Jeff King
2018-05-16 20:43 ` Martin Fick
2018-05-16 20:02 ` Konstantin Ryabitsev
2018-05-16 20:17 ` Jeff King
2018-05-17 0:43 ` Sitaram Chamarty
2018-05-17 3:31 ` Jeff King
2018-05-19 5:45 ` Duy Nguyen
2018-05-16 19:14 ` Jeff King
2018-05-16 21:18 ` Stefan Beller
2018-05-16 23:45 ` Jeff King
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=5972145.OdP4kjFpBj@mfick-lnx \
--to=mfick@codeaurora.org \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=konstantin@linuxfoundation.org \
--cc=larsxschneider@gmail.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=stolee@gmail.com \
/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).