git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] pull: refuse complete src:dst fetchspec arguments

From
Sean Estabrooks <seanlkml@sympatico.ca>
Date
Oct 20, 2009, 20:30 UTC
Message-ID
<BLU0-SMTP97AA2287062D9A104101C8AEC00@phx.gbl>
In-Reply-To
<d561e70f0aa802ceb96eba16d3bb2316134d69c8.1256062808.git.trast@student.ethz.ch>

On Tue, 20 Oct 2009 20:23:06 +0200 Thomas Rast <trast@student.ethz.ch> wrote:

Hi Thomas,
Show 14 quoted lines
> git-pull has historically accepted full fetchspecs, meaning that you
> could do
> 
>   git pull $repo A:B
> 
> which would simultaneously fetch the remote branch A into the local
> branch B and merge B into HEAD.  This got especially confusing if B
> was checked out.  New users variously mistook pull for fetch or read
> that command as "merge the remote A into my B", neither of which is
> correct.
> 
> Since the above usage should be very rare and can be done with
> separate calls to fetch and merge, we just disallow full fetchspecs in
> git-pull.

It is however a handy shortcut to be able to specify the full refspec and specify where you want the head stored locally. It seems a shame to throw away that functionality because of one confusing case. Wouldn't it be better to test of the confusing case and instead error out if the local refname is already checked out?

[...]
Show 25 quoted lines
> diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
> index dd2ee84..a566a99 100755
> --- a/t/t5520-pull.sh
> +++ b/t/t5520-pull.sh
> @@ -29,18 +29,6 @@ test_expect_success 'checking the results' '
>  	diff file cloned/file
>  '
>  
> -test_expect_success 'pulling into void using master:master' '
> -	mkdir cloned-uho &&
> -	(
> -		cd cloned-uho &&
> -		git init &&
> -		git pull .. master:master
> -	) &&
> -	test -f file &&
> -	test -f cloned-uho/file &&
> -	test_cmp file cloned-uho/file
> -
> -
>  test_expect_success 'test . as a remote' '
>  
>  	git branch copy master &&
> -- 
> 

Instead of removing this test it should be modified or replaced with a test that ensures the new functionality operates correctly. In this case that would mean checking that using a full refspec errors out.

Cheers, Sean

Previous: Wesley J. LandakerNext: Junio C Hamano
Message 4 of 21 in “pull: refuse complete src:dst fetchspec arguments”
  1. pull: refuse complete src:dst fetchspec argumentsThomas Rast, Oct 20, 2009
  2. Thomas RastOct 20, 2009
  3. Wesley J. LandakerOct 20, 2009
  4. Sean EstabrooksOct 20, 2009
  5. Junio C HamanoOct 20, 2009
  6. Daniel BarkalowOct 21, 2009
  7. Sean EstabrooksOct 21, 2009
  8. Daniel BarkalowOct 21, 2009
  9. Sean EstabrooksOct 21, 2009
  10. Björn SteinbrinkOct 21, 2009
  11. Daniel BarkalowOct 21, 2009
  12. Thomas RastOct 21, 2009
  13. Jeff KingOct 23, 2009
  14. Daniel BarkalowOct 23, 2009
  15. Jeff KingOct 24, 2009
  16. Junio C HamanoOct 24, 2009
  17. Thomas RastOct 21, 2009
  18. Thomas RastNov 15, 2009
  19. Junio C HamanoNov 15, 2009
  20. Nanako ShiraishiDec 29, 2009
  21. Junio C HamanoDec 29, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.