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

Re: [PATCH v3 3/3] git-p4: fix Git LFS pointer parsing

From
Sebastian Schuberth <sschuberth@gmail.com>
Date
Apr 24, 2016, 19:16 UTC
Message-ID
<CAHGBnuMs6h478FXGA_x2nP1D6BJCxGzhumR_xq5JFmNgzM6Sdw@mail.gmail.com>
In-Reply-To
<1461524292-20490-4-git-send-email-larsxschneider@gmail.com>
On Sun, Apr 24, 2016 at 8:58 PM,  <larsxschneider@gmail.com> wrote:
Show 15 quoted lines
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -1064,8 +1064,15 @@ class GitLFS(LargeFileSystem):
>          if pointerProcess.wait():
>              os.remove(contentFile)
>              die('git-lfs pointer command failed. Did you install the extension?')
> -        pointerContents = [i+'\n' for i in pointerFile.split('\n')[2:][:-1]]
> -        oid = pointerContents[1].split(' ')[1].split(':')[1][:-1]
> +
> +        # Git LFS removed the preamble in the output of the 'pointer' command
> +        # starting from version 1.2.0. Check for the preamble here to support
> +        # earlier versions.
> +        # c.f. https://github.com/github/git-lfs/commit/da2935d9a739592bc775c98d8ef4df9c72ea3b43
> +        if pointerFile.startswith('Git LFS pointer for'):
> +            re.sub(r'Git LFS pointer for.*\n\n', '', pointerFile)

I liked the code from v2 better. I know Ben said "there could be expansions or other modifications applied by git-lfs between input and output", but I believe it's better to be too strict than too lenient if you're omitting lines from the output. Also, the regex matches against the whole multi-line string. That is, if the file for some reason was ending in '\n\n' instead of just '\n', the '.*' would match almost all content of the pointer file, not just the remains of the preamble. One way to fix this would be to use

re.sub(r'Git LFS pointer for [^\n]+\n\n', '', pointerFile)
instead.

Regards, Sebastian

Previous: larsxschneider@gmail.comNext: Lars Schneider
Message 7 of 9 in “git-p4: fix Git LFS pointer parsing”
  1. 0/3 git-p4: fix Git LFS pointer parsinglarsxschneider@gmail.com, Apr 24, 2016
  2. 1/3 travis-ci: update Git-LFS and P4 to the latest versionlarsxschneider@gmail.com, Apr 24, 2016
  3. 2/3 travis-ci: express Linux/OS X dependency versions more clearlylarsxschneider@gmail.com, Apr 24, 2016
  4. Eric SunshineApr 25, 2016
  5. Lars SchneiderApr 25, 2016
  6. 3/3 git-p4: fix Git LFS pointer parsinglarsxschneider@gmail.com, Apr 24, 2016
  7. Sebastian SchuberthApr 24, 2016
  8. Lars SchneiderApr 25, 2016
  9. Sebastian SchuberthApr 25, 2016

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.