On Fri, 30 Aug 2019 at 13:16, Phillip Wood <[email protected]> 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']
This is, however, tangential to the original problem: documenting the
external diff CLI interface for diffing two blobs. Here is what I am
seeing:
$ env GIT_EXTERNAL_DIFF=./print_argv.py git diff
origin/branch1:file1.txt origin/branch1-mv:file1-mv.txt
['./print_argv.py',
'file1.txt',
'/tmp/n9USvy_file1.txt',
'2bef330804cb3f6962e45a72a12a3071ee9b5888',
'100644',
'/tmp/Zst0uy_file1-mv.txt',
'f8fd6737fbe5a45c97ba9c9de495dc46ff11eccd',
'100644',
'file1-mv.txt',
'index 2bef330..f8fd673 100644\n']
The meaning and origin of the last arg remains mysterious, and the
other args do not conform to the published documentation[2], which
states that the args should be:
path old-file old-hex old-mode new-file new-hex new-mode
Instead the args that are passed are:
path old-filename old-file old-hex old-mode new-file new-hex
new-mode new-filename something
[1]: https://github.com/dniku/git-external-diff-argv
[2]:
https://www.git-scm.com/docs/git#Documentation/git.txt-codeGITEXTERNALDIFFcode