Re: [PATCH v3] fetch-pack: fix object_id of exact sha1
- From
Gabriel Souza Franco <gabrielfrancosouza@gmail.com>
- Date
- Mar 3, 2016, 23:35 UTC
- Message-ID
- <CABaesJ+5B9WEqJQsK5s+WFczWMfvBgTx6UmVwjAL-WAf55zJUw@mail.gmail.com>
- In-Reply-To
- <20160301045453.GB19272@sigill.intra.peff.net>
On Tue, Mar 1, 2016 at 1:54 AM, Jeff King <peff@peff.net> wrote:
Show 26 quoted lines
> On Mon, Feb 29, 2016 at 11:12:56PM -0300, Gabriel Souza Franco wrote: > >> Commit 58f2ed0 (remote-curl: pass ref SHA-1 to fetch-pack as well, >> 2013-12-05) added support for specifying a SHA-1 as well as a ref name. >> Add support for specifying just a SHA-1 and set the ref name to the same >> value in this case. >> >> Signed-off-by: Gabriel Souza Franco <gabrielfrancosouza@gmail.com> >> --- >> >> I did keep the oid variable because ref is uninitialized at that point, >> and this means having to copy either name or old_oid afterwards anyway. > > Oh, right. That's why we had the variable in the first place (even in > the original, we could otherwise have gone without the extra variable). > >> builtin/fetch-pack.c | 16 +++++++++++++--- >> 1 file changed, 13 insertions(+), 3 deletions(-) > > The code looks good to me. Do we need documentation or test updates? > > Here's a test that can be squashed in. For documentation, it looks like > we don't cover the "<sha1> <ref>" form at all. That's maybe OK, as it's > mostly for internal use by remote-http (though fetch-pack _is_ plumbing, > so perhaps some other remote-* could make use of it). But perhaps we > should document that "<sha1>" should work.
Thanks for providing a test, I hadn't looked up those yet. For documentation, should it be on the same patch or a new one? Also, I'm not exactly sure how to word that <refs>... can also contain a hash instead of a ref.
Show 26 quoted lines
>
> diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
> index e5f83bf..9b9bec4 100755
> --- a/t/t5500-fetch-pack.sh
> +++ b/t/t5500-fetch-pack.sh
> @@ -531,6 +531,20 @@ test_expect_success 'shallow fetch with tags does not break the repository' '
> git fsck
> )
> '
> +
> +test_expect_success 'fetch-pack can fetch a raw sha1' '
> + git init hidden &&
> + (
> + cd hidden &&
> + test_commit 1 &&
> + test_commit 2 &&
> + git update-ref refs/hidden/one HEAD^ &&
> + git config transfer.hiderefs refs/hidden &&
> + git config uploadpack.allowtipsha1inwant true
> + ) &&
> + git fetch-pack hidden $(git -C hidden rev-parse refs/hidden/one)
> +'
> +
> check_prot_path () {
> cat >expected <<-EOF &&
> Diag: url=$1