From: Jeff King <peff@peff.net>
To: David Brown <davidb@codeaurora.org>
Cc: git@vger.kernel.org
Subject: Re: Enforcing clone/fetch to use references.
Date: Tue, 21 Sep 2010 17:31:35 -0400 [thread overview]
Message-ID: <20100921213135.GB1255@sigill.intra.peff.net> (raw)
In-Reply-To: <20100921204456.GA24357@huya.qualcomm.com>
On Tue, Sep 21, 2010 at 01:44:56PM -0700, David Brown wrote:
> Suppose I want to publish some changes to a tree. I have a server
> available where I can run a git daemon, but for one reason or another
> I want to force people to use the another git repo as a reference.
> The reason could be one of bandwidth, or someone who isn't comfortable
> making all of the other source available. Ideally, someone who
> already has the other git repo cloned, and just adds mine as a remote
> wouldn't notice the difference.
I think the gentoo people were talking about doing something like this.
They wanted you to use some faster and/or restartable protocol to clone
initially, and so they wanted to reject initial clones. I'm not sure if
they are doing that, and how (from the thread below, I suspect they run
a patched git).
The simplest thing would be a pre-upload-pack hook. There was some
discussion of that in this thread:
http://article.gmane.org/gmane.comp.version-control.git/137007
but there are some security implications. For a remote site, where the
user running upload-pack trusts the hook, it should be fine.
Once you have that hook, then you basically need to just check whether
they are requesting objects in your "you should have this in your
reference repository" set (probably by using merge-base to see if it is
contained in some "everything our alternate has" ref), and then just
echo >&2 Sorry, here's how to clone properly...
exit 1
which should go to the user over the sideband.
And that would cover both the "clone --reference" and "git remote add"
cases, as it is not looking at what the user invoked, but which objects
they're requesting.
-Peff
next prev parent reply other threads:[~2010-09-21 21:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-21 20:44 Enforcing clone/fetch to use references David Brown
2010-09-21 21:31 ` Jeff King [this message]
2010-09-21 22:12 ` David Brown
2010-09-23 12:39 ` Arun Raghavan
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=20100921213135.GB1255@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=davidb@codeaurora.org \
--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 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 NNTP newsgroup(s).