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

Re: [PATCH 0/6] Create Git/Packet.pm

From
Bryan Turner <bturner@atlassian.com>
Date
Oct 26, 2017, 09:08 UTC
Message-ID
<CAGyf7-Ho3eY8sE2ME+p-JdR9OUQGFc43TmjHpueJgwCBSznN5w@mail.gmail.com>
In-Reply-To
<CA+P7+xpcC7Daw5k3=XFyZRsqiBib6yY2YzLpjYfcS7yqfUzTpg@mail.gmail.com>
On Thu, Oct 26, 2017 at 2:07 AM, Jacob Keller <jacob.keller@gmail.com> wrote:
Show 48 quoted lines
> On Wed, Oct 25, 2017 at 10:38 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>>
>>> Note that the correct blib path starts with `C:\BuildAgent\_work` and
>>> the line
>>>
>>>       use lib (split(/:/, $ENV{GITPERLLIB}));
>>>
>>> splits off the drive letter from the rest of the path. Obviously, this
>>> fails to Do The Right Thing, and simply points to Yet Another Portability
>>> Problem with Git's reliance on Unix scripting.
>>
>> In our C code, we have "#define PATH_SEP ';'", and encourage our
>> code to be careful and use it.  Is there something similar for Perl
>> scripts, I wonder.
>>
>> I notice that t/{t0202,t9000,t9700}/test.pl share the same
>> split(/:/, $ENV{GITPERLLIB}); forcing this specific variable to use
>> the non-platform convention to accomodate the use of split(/:/)
>> certainly is a workaround, but it does feel dirty.
>>
>> It is hard to imagine that we were the first people who wants to
>> split the value of a variable into a list, where the value is a list
>> of paths, concatenated into a single string with a delimiter that
>> may be platform specific.  I wonder if we are going against a best
>> practice established in the Perl world, simply because we don't know
>> about it (i.e. basically, it would say "don't split at a colon
>> because not all world is Unix; use $this_module instead", similar to
>> "don't split at a slash, use File::Spec instead to extract path
>> components").
>>
>
> I thought there was a way to do this in File::Spec, but that's only
> for splitting regular paths, and not for splitting a list of paths
> separated by ":" or ";"
>
> We probably should find a better solution to allow this to work with
> windows style paths...? I know that python provides os.pathsep, but I
> haven't seen an equivalent for perl yet.
>
> The Env[1] core modules suggests using $Config::Config{path_sep}[2]..
> maybe we should be using this?
>
> Thanks,
> Jake
>
> [1] https://perldoc.perl.org/Env.html
> [2] https://perldoc.perl.org/Config.html
Previous: Jacob KellerNext: Bryan Turner
Message 26 of 32 in “Create Git/Packet.pm”
  1. 0/6 Create Git/Packet.pmChristian Couder, Oct 19, 2017
  2. 1/6 t0021/rot13-filter: refactor packet reading functionsChristian Couder, Oct 19, 2017
  3. Stefan BellerOct 19, 2017
  4. Junio C HamanoOct 22, 2017
  5. Christian CouderNov 5, 2017
  6. 3/6 t0021/rot13-filter: improve error messageChristian Couder, Oct 19, 2017
  7. 5/6 t0021/rot13-filter: add capability functionsChristian Couder, Oct 19, 2017
  8. Junio C HamanoOct 22, 2017
  9. Christian CouderNov 4, 2017
  10. Junio C HamanoNov 5, 2017
  11. 6/6 Add Git/Packet.pm from parts of t0021/rot13-filter.plChristian Couder, Oct 19, 2017
  12. Stefan BellerOct 19, 2017
  13. 2/6 t0021/rot13-filter: improve 'if .. elsif .. else' styleChristian Couder, Oct 19, 2017
  14. 4/6 t0021/rot13-filter: add packet_initialize()Christian Couder, Oct 19, 2017
  15. Junio C HamanoOct 22, 2017
  16. Junio C HamanoOct 27, 2017
  17. Christian CouderOct 27, 2017
  18. Lars SchneiderOct 28, 2017
  19. Junio C HamanoOct 29, 2017
  20. Junio C HamanoOct 22, 2017
  21. Philip OakleyOct 23, 2017
  22. Jeff KingOct 30, 2017
  23. Johannes SchindelinOct 25, 2017
  24. Junio C HamanoOct 26, 2017
  25. Jacob KellerOct 26, 2017
  26. Bryan TurnerOct 26, 2017
  27. Bryan TurnerOct 26, 2017
  28. Johannes SchindelinOct 27, 2017
  29. Johannes SchindelinOct 27, 2017
  30. Junio C HamanoOct 30, 2017
  31. Christian CouderOct 30, 2017
  32. Johannes SchindelinOct 30, 2017

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.