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

Re: git-diff passes <rev>:<path> args to GIT_EXTERNAL_DIFF incorrectly?

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Aug 30, 2019, 14:29 UTC
Message-ID
<20190830142932.GJ8571@szeder.dev>
In-Reply-To
<CAH53SykQWLtjt0gWVrz5KyH-9WyqaQ0GtkhmyLt09QEqcAS_dw@mail.gmail.com>
On Fri, Aug 30, 2019 at 04:23:13PM +0300, Dmitry Nikulin wrote:
Show 21 quoted lines
> On Fri, 30 Aug 2019 at 13:16, Phillip Wood <phillip.wood123@gmail.com> wrote:
> > I'm not sure why the last argument is being split in
> > your example. It is not split in the example below
> 
> I have replicated the splitting issue on my small demo repo [1]:
> 
> $ env GIT_EXTERNAL_DIFF=./print_argv.py git diff -M origin/branch1
> origin/branch1-mv -- file1.txt file1-mv.txt
> ['./print_argv.py',
>  'file1.txt',
>  '/tmp/EWaCSc_file1.txt',
>  '2bef330804cb3f6962e45a72a12a3071ee9b5888',
>  '100644',
>  '/tmp/mtEiSc_file1-mv.txt',
>  'f8fd6737fbe5a45c97ba9c9de495dc46ff11eccd',
>  '100644',
>  'file1-mv.txt',
>  'similarity index 90%\n'
>  'rename from file1.txt\n'
>  'rename to file1-mv.txt\n'
>  'index 2bef330..f8fd673 100644\n']
Another Python 2 vs 3 issue, perhaps?
  # Python2, good:
  $ GIT_EXTERNAL_DIFF='python2 ./print_argv.py' git --no-pager diff -M origin/branch1 origin/branch1-mv  -- file1.txt file1-mv.txt
  ['./print_argv.py',
   'file1.txt',
   '/tmp/ViB58B_file1.txt',
   '2bef330804cb3f6962e45a72a12a3071ee9b5888',
   '100644',
   '/tmp/p6OH9B_file1-mv.txt',
   'f8fd6737fbe5a45c97ba9c9de495dc46ff11eccd',
   '100644',
   'file1-mv.txt',
   'similarity index 90%\nrename from file1.txt\nrename to
  file1-mv.txt\nindex 2bef330..f8fd673 100644\n']
  # Python3, bad:
  $ GIT_EXTERNAL_DIFF='python3 ./print_argv.py' git --no-pager diff -M origin/branch1 origin/branch1-mv  -- file1.txt file1-mv.txt
  ['./print_argv.py',
   'file1.txt',
   '/tmp/5xD2DS_file1.txt',
   '2bef330804cb3f6962e45a72a12a3071ee9b5888',
   '100644',
   '/tmp/vvHQGS_file1-mv.txt',
   'f8fd6737fbe5a45c97ba9c9de495dc46ff11eccd',
   '100644',
   'file1-mv.txt',
   'similarity index 90%\n'
   'rename from file1.txt\n'
   'rename to file1-mv.txt\n'
   'index 2bef330..f8fd673 100644\n']

Let's just stick to plain old printf for now, as suggested by Phillip earlier, to reduce unnecessary confusion.

Previous: Dmitry NikulinNext: Junio C Hamano
Message 11 of 12 in “git-diff passes <rev>:<path> args to GIT_EXTERNAL_DIFF incorrectly?”
  1. Dmitry NikulinAug 27, 2019
  2. Dmitry NikulinAug 27, 2019
  3. Junio C HamanoAug 29, 2019
  4. Dmitry NikulinAug 29, 2019
  5. Phillip WoodAug 30, 2019
  6. Dmitry NikulinAug 30, 2019
  7. Phillip WoodAug 30, 2019
  8. Jeff KingAug 30, 2019
  9. Dmitry NikulinAug 30, 2019
  10. Dmitry NikulinAug 30, 2019
  11. SZEDER GáborAug 30, 2019
  12. Junio C HamanoAug 30, 2019

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.