Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-30 Thread Dmitry Nikulin
I've figured it out. It's not a bug, it's a peculiarity of pprint(). It splits strings to avoid long lines and abuses the fact that in Python strings split with whitespace are concatenated by the parser. Also, in my example newlines are not parsed correctly in the shell. Escaping them, I get the e

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-30 Thread Dmitry Nikulin
On Fri, 30 Aug 2019 at 17:27, Jeff King wrote: > I think you have an extra "old-filename" in the second list. Agreed. My misunderstanding was that I had thought that when documentation said "path", it meant "argv[0], the path to the diff executable". > Interesting. I _don't_ see that splitting w

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-30 Thread Dmitry Nikulin
On Fri, 30 Aug 2019 at 13:16, Phillip Wood 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

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-29 Thread Dmitry Nikulin
Thank you for the reply. On Thu, 29 Aug 2019 at 06:54, Junio C Hamano wrote: > $ git diff -M branch1 branch2 -- file1 file2 > > if file1 and file2 have similar-enough contents, may have a better > chance of what you wanted to ask Git (if I am guessing what it is, > that is). The context here

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-27 Thread Dmitry Nikulin
I have put up a demo repo here: https://github.com/dniku/git-external-diff-argv On Tue, 27 Aug 2019 at 21:24, Dmitry Nikulin wrote: > > I wrote a very simple Python script to see which arguments git-diff > passes to the external diff program when comparing files across > branche

git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-27 Thread Dmitry Nikulin
I wrote a very simple Python script to see which arguments git-diff passes to the external diff program when comparing files across branches: $ env GIT_EXTERNAL_DIFF=./print_argv.py git diff origin/branch1:file1.txt origin/branch2:file2.txt ['./print_argv.py', 'file1.txt', '/tmp/QRaIJ1_file1.txt