All of lore.kernel.org
 help / color / mirror / Atom feed
From: Duy Nguyen <pclouds@gmail.com>
To: Patrick Donnelly <batrick@batbytes.com>
Cc: Jeff King <peff@peff.net>, Dan Johnson <computerdruid@gmail.com>,
	Christian Halstrick <christian.halstrick@gmail.com>,
	Git <git@vger.kernel.org>
Subject: Re: Can I fetch an arbitrary commit by sha1?
Date: Tue, 7 Oct 2014 20:12:57 +0700	[thread overview]
Message-ID: <20141007131257.GA24348@lanh> (raw)
In-Reply-To: <CACsJy8B0dbE0C3M0PO-EfaZ_bSxwGJSFVejEGFzjHSOZKOc+Jw@mail.gmail.com>

On Tue, Oct 07, 2014 at 07:34:36PM +0700, Duy Nguyen wrote:
> If we can verify the asked sha-1 is reachable from the visible ref
> set, then we should allow it. With pack bitmaps, it's getting much
> cheaper to do such a test. If pack bitmaps are not used, we could
> set a default/configurable limit, like not traversing more than 1000
> commits from any ref for this reachability test).

Hmm.. Junio already did most of the work in 051e400 (helping
smart-http/stateless-rpc fetch race - 2011-08-05), so all we need to
do is enable uploadpack.allowtipsha1inwant and apply this patch

-- 8< --
diff --git a/upload-pack.c b/upload-pack.c
index c789ec0..493f8ee 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -454,10 +454,6 @@ static void check_non_tip(void)
 	char namebuf[42]; /* ^ + SHA-1 + LF */
 	int i;
 
-	/* In the normal in-process case non-tip request can never happen */
-	if (!stateless_rpc)
-		goto error;
-
 	cmd.argv = argv;
 	cmd.git_cmd = 1;
 	cmd.no_stderr = 1;
-- 8< --

If we already let smart-http do this, I don't see any harm in letting
git protocol do the same (even though it's the the original reason why
this code exists).
--
Duy

  reply	other threads:[~2014-10-07 13:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-02 13:57 Can I fetch an arbitrary commit by sha1? Christian Halstrick
2014-10-02 14:22 ` Dan Johnson
2014-10-02 16:10   ` Jeff King
2014-10-02 17:35     ` Jonathan Nieder
2014-10-05 20:49       ` Christian Halstrick
2014-10-06 18:25     ` Patrick Donnelly
2014-10-06 18:28       ` David Lang
2014-10-07 12:34       ` Duy Nguyen
2014-10-07 13:12         ` Duy Nguyen [this message]
2014-10-07 16:52           ` Junio C Hamano
2014-10-08 13:30             ` Duy Nguyen
2014-10-09 18:08               ` 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=20141007131257.GA24348@lanh \
    --to=pclouds@gmail.com \
    --cc=batrick@batbytes.com \
    --cc=christian.halstrick@gmail.com \
    --cc=computerdruid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    /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.