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

Re: [PATCH 1/2] submodule: fix confusing variable name

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Aug 8, 2013, 17:44 UTC
Message-ID
<5203D8F6.2020102@ramsay1.demon.co.uk>
In-Reply-To
<20130804212938.GL19369@paksenarrion.iveqy.com>
Fredrik Gustafsson wrote:
Show 9 quoted lines
> On Sun, Aug 04, 2013 at 07:34:48PM +0200, Jens Lehmann wrote:
>> But we'll have to use sm_path here (like everywhere else in the
>> submodule script), because we'll run into problems under Windows
>> otherwise (see 64394e3ae9 for details). Apart from that the patch
>> is fine.
> 
> We're still using path= in the foreach-script. Or rather, we're setting
> it. From what I can see and from the commit message 64394e3ae9 it could
> possible be a problem.

Please do not use a $path variable in any script intended to be run on windows; those poor souls who would otherwise have to fix the bugs will thank you! :-D

Actually, it's not so much the use of a $path variable, rather the act of _exporting_ such a variable that causes the problem. (Which is why using $path with eval_gettext[ln] is such a problem, of course.)

As noted in the above commit, $path is unfortunately a documented part of the public API for the foreach subcommand. However, the foreach subcommand is (mostly) fine; given the fact that the user script is eval-ed in a context in which $path is not exported. The reason for the 'mostly' is simply that the user could shoot himself in the foot by export-ing $path in their script, so that something like:

    $ git submodule foreach 'export path; echo $path `git rev-parse HEAD`'
will indeed fail (ie git rev-parse will not execute).
> Not sure how to solve it though... Just a simple correction would break
> all script depending on that.

$path is part of the public API, so we can't just remove it. It would require a deprecation period, etc,. (Adding/documenting $sm_path as an alternative *may* be worth doing. dunno.)

HTH

ATB, Ramsay Jones

Previous: Jens LehmannNext: Fredrik Gustafsson
Message 7 of 17 in “Don't print status output with submodule.<name>.ignore=all”
  1. brian m. carlsonAug 3, 2013
  2. 1/2 submodule: fix confusing variable namebrian m. carlson, Aug 3, 2013
  3. Jonathan NiederAug 3, 2013
  4. Jens LehmannAug 4, 2013
  5. Fredrik GustafssonAug 4, 2013
  6. Jens LehmannAug 6, 2013
  7. Ramsay JonesAug 8, 2013
  8. Fredrik GustafssonAug 9, 2013
  9. Junio C HamanoAug 9, 2013
  10. Mark LevedahlAug 11, 2013
  11. 2/2 submodule: don't print status output with ignore=allbrian m. carlson, Aug 3, 2013
  12. Jonathan NiederAug 3, 2013
  13. Jens LehmannAug 4, 2013
  14. brian m. carlsonAug 10, 2013
  15. brian m. carlsonAug 11, 2013
  16. Jonathan NiederAug 11, 2013
  17. brian m. carlsonAug 17, 2013

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.