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

Re: [PATCH 3/5] checkout --orphan: respect -l option always

From
Junio C Hamano <gitster@pobox.com>
Date
May 26, 2010, 05:07 UTC
Message-ID
<7vzkznqmir.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1274488119-6989-4-git-send-email-erick.mattos@gmail.com>
Erick Mattos <erick.mattos@gmail.com> writes:
> +			git_snpath(ref_file, sizeof(ref_file), "%s", old->path);
???
Show 8 quoted lines
> @@ -684,8 +709,8 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
>  	if (opts.new_orphan_branch) {
>  		if (opts.new_branch)
>  			die("--orphan and -b are mutually exclusive");
> -		if (opts.track > 0 || opts.new_branch_log)
> -			die("--orphan cannot be used with -t or -l");
> +		if (opts.track > 0)
> +			die("--orphan should not be used with -t");
Why s/cannot/should not/?  Just being curious.
Show 9 quoted lines
> +test_expect_success 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog' '
> +	git checkout master &&
> +	git checkout -l --orphan eta &&
> +	test -f .git/logs/refs/heads/eta &&
> +	test_must_fail PAGER= git reflog show eta &&
> +	git checkout master &&
> +	! test -f .git/logs/refs/heads/eta &&
> +	test_must_fail PAGER= git reflog show eta
> +'

I don't quite understand the title of this test, nor am I convinced that testing for .git/logs/refs/heads/eta is necessarily a good thing to do here. "eta" branch is first prepared in an unborn state with the working tree and the index prepared to commit what is in 'master', and the first "git reflog" would fail because there is no eta branch at that point yet. Moving to 'master' from that state would still leave "eta" branch unborn and we will not see "git reflog" for that branch (we will fail "git log eta" too for that matter). Perhaps two "test -f .git/logs/refs/heads/eta" shouldn't be there? It feels that it is testing a bit too low level an implementation detail.

Previous: Erick MattosNext: Erick Mattos
Message 9 of 18 in “checkout --orphan improvements”
  1. 0/5 checkout --orphan improvementsErick Mattos, May 22, 2010
  2. 1/5 Documentation: alter checkout --orphan descriptionErick Mattos, May 22, 2010
  3. 2/5 refs: split log_ref_write logic into log_ref_setupErick Mattos, May 22, 2010
  4. Junio C HamanoMay 26, 2010
  5. Erick MattosMay 26, 2010
  6. Junio C HamanoJun 2, 2010
  7. Erick MattosJun 2, 2010
  8. 3/5 checkout --orphan: respect -l option alwaysErick Mattos, May 22, 2010
  9. Junio C HamanoMay 26, 2010
  10. Erick MattosMay 26, 2010
  11. Erik Faye-LundMay 26, 2010
  12. Erick MattosMay 26, 2010
  13. Erick MattosJun 3, 2010
  14. Michael J GruberMay 26, 2010
  15. Erick MattosMay 26, 2010
  16. Michael J GruberMay 27, 2010
  17. 4/5 t3200: test -l with core.logAllRefUpdates optionsErick Mattos, May 22, 2010
  18. 5/5 bash completion: add --orphan to 'git checkout'Erick Mattos, May 22, 2010

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.