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

Re: [PATCH v2] Test t5560: Fix test when run with dash

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jan 21, 2010, 16:15 UTC
Message-ID
<4B587DAE.9030208@alum.mit.edu>
In-Reply-To
<7v4ommoo4p.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
Show 17 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
>>> Yesterday, I saw rebase--interactive has a few codepaths where "output"
>>> shell function was used with the single-shot export; perhaps they need to
>>> also be fixed.
>> I knew these spots, and they were discussed when that code was introduced. 
>> Before I sent out the mail you were responding to, I tried various ways to 
>> show the failure in rebase--interactive, but it didn't fail...
> 
> It may be the case that the single-shot-ness of these GIT_AUTHOR_NAME
> exports do not matter at all in that program, even though the original
> versions may have been written carefully not to leak the value suitable
> for the current commit to later rounds.
> 
> I think the recent updates from Michael actually depends on the
> distinction not to matter.  For example, do_with_author() in 7756ecf
> (rebase -i: Extract function do_with_author, 2010-01-14) invokes "$@"
> that could be a shell function.

I have to say that I am a little bit over my head here. I didn't try to follow the complete data path of the GIT_AUTHOR_* shell variables, nor do I know exactly what git commands they affect. I just tried to locally refactor the code based on my mistaken assumption that shell functions are treated much like external commands WRT export of shell variables.

The use of the GIT_AUTHOR_* variables in git-rebase--interactive.sh were and are a bit peculiar anyway, since the variables are already set before do_with_author() is invoked, and the values are left to hang around afterwards. The do_with_author() function only tries to export these already-set variables.

So I suppose that the simplest solution is to export these variables explicitly in do_with_author(), something like this (similar to the third code block that was replaced by the do_with_author() function):

do_with_author() {
	export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE &&
	"$@"
}

But to ensure that this is a correct solution would require verification that these now-exported variables don't cause unwanted side-effects during any other external command invocations. Alternatively, I suppose that the variables could be exported within a subshell that also invokes the "$@" command; this subshell could even source the $AUTHOR_SCRIPT file if it were thought advantageous not to set the GIT_AUTHOR_* variables in the git-rebase--interactive.sh script at all.

Help would be most appreciated; I probably won't have time to work on this myself for a week or two.

Michael
Previous: Junio C Hamano
Message 31 of 31 in “Smart-http tests: Break test t5560-http-backend into pieces”
  1. 1/2 Smart-http tests: Break test t5560-http-backend into piecesTarmigan Casebolt, Dec 28, 2009
  2. 2/2 Smart-http tests: Test http-backend without curl or a webserverTarmigan Casebolt, Dec 28, 2009
  3. Junio C HamanoDec 30, 2009
  4. TarmiganDec 30, 2009
  5. 1/2 Smart-http tests: Break test t5560-http-backend into piecesTarmigan Casebolt, Dec 30, 2009
  6. 2/2 Smart-http tests: Test http-backend without curl or a webserverTarmigan Casebolt, Dec 30, 2009
  7. Junio C HamanoJan 1, 2010
  8. TarmiganJan 2, 2010
  9. 1/3 Smart-http tests: Improve coverage in test t5560Tarmigan Casebolt, Jan 2, 2010
  10. Shawn O. PearceJan 2, 2010
  11. 2/3 Smart-http tests: Break test t5560-http-backend into piecesTarmigan Casebolt, Jan 2, 2010
  12. Shawn O. PearceJan 2, 2010
  13. 1/3 Smart-http tests: Improve coverage in test t5560Tarmigan Casebolt, Jan 2, 2010
  14. 2/3 Smart-http tests: Break test t5560-http-backend into piecesTarmigan Casebolt, Jan 2, 2010
  15. 3/3 Smart-http tests: Test http-backend without curl or a webserverTarmigan Casebolt, Jan 2, 2010
  16. 3/3 Smart-http tests: Test http-backend without curl or a webserverTarmigan Casebolt, Jan 2, 2010
  17. Shawn O. PearceJan 2, 2010
  18. TarmiganJan 2, 2010
  19. Shawn O. PearceJan 2, 2010
  20. 3/3 Smart-http tests: Test http-backend without curl or a webserverTarmigan Casebolt, Jan 2, 2010
  21. Michael HaggertyJan 14, 2010
  22. Test t5560: Fix test when run with dashTarmigan Casebolt, Jan 14, 2010
  23. Michael HaggertyJan 14, 2010
  24. Junio C HamanoJan 14, 2010
  25. Test t5560: Fix test when run with dashTarmigan Casebolt, Jan 15, 2010
  26. Johannes SixtJan 15, 2010
  27. Junio C HamanoJan 15, 2010
  28. Johannes SixtJan 15, 2010
  29. Junio C HamanoJan 15, 2010
  30. Junio C HamanoJan 16, 2010
  31. Michael HaggertyJan 21, 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.