<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git-difftool.perl, branch gitk-resize-error</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=gitk-resize-error</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=gitk-resize-error'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2017-01-17T21:32:47Z</updated>
<entry>
<title>difftool: add a skeleton for the upcoming builtin</title>
<updated>2017-01-17T21:32:47Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2017-01-17T15:54:57Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=be8a90e59ce4c7603207a8255284fdbbffff1a2e'/>
<id>urn:sha1:be8a90e59ce4c7603207a8255284fdbbffff1a2e</id>
<content type='text'>
This adds a builtin difftool that still falls back to the legacy Perl
version, which has been renamed to `legacy-difftool`.

The idea is that the new, experimental, builtin difftool immediately hands
off to the legacy difftool for now, unless the config variable
difftool.useBuiltin is set to true.

This feature flag will be used in the upcoming Git for Windows v2.11.0
release, to allow early testers to opt-in to use the builtin difftool and
flesh out any bugs.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: use Git::* functions instead of passing around state</title>
<updated>2016-07-28T21:01:55Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2016-07-19T03:57:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=32b8c581ecf35e73bebe2c6e9f6de617807b7f91'/>
<id>urn:sha1:32b8c581ecf35e73bebe2c6e9f6de617807b7f91</id>
<content type='text'>
Call Git::command() and friends directly wherever possible.
This makes it clear that these operations can be invoked directly
without needing to manage the current directory and related GIT_*
environment variables.

Eliminate find_repository() since we can now use wc_path() and
not worry about side-effects involving environment variables.

Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: avoid $GIT_DIR and $GIT_WORK_TREE</title>
<updated>2016-07-28T21:01:55Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2016-07-19T03:57:55Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=98f917ed421a477e0575c58f801ac25f0e261b9d'/>
<id>urn:sha1:98f917ed421a477e0575c58f801ac25f0e261b9d</id>
<content type='text'>
Environment variables are global and hard to reason about.
Use the `--git-dir` and `--work-tree` arguments when invoking `git`
instead of relying on the environment.

Add a test to ensure that difftool's dir-diff feature works when these
variables are present in the environment.

Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: fix argument handling in subdirs</title>
<updated>2016-07-19T18:12:27Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2016-07-19T03:57:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=9ec26e797781239b36ebccb87c590e5778358007'/>
<id>urn:sha1:9ec26e797781239b36ebccb87c590e5778358007</id>
<content type='text'>
When in a subdirectory of a repository, path arguments should be
interpreted relative to the current directory not the root of the
working tree.

The Git::repository object passed into setup_dir_diff() is configured to
handle this correctly but we create a new Git::repository here without
setting the WorkingSubdir argument.  By simply using the existing
repository, path arguments are handled relative to the current
directory.

Reported-by: Bernhard Kirchen &lt;bernhard.kirchen@rwth-aachen.de&gt;
Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
Acked-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: handle unmerged files in dir-diff mode</title>
<updated>2016-05-16T21:53:05Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2016-05-16T18:05:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=366f9cea18fbb7ebb0a75735da8c2a9d5a916809'/>
<id>urn:sha1:366f9cea18fbb7ebb0a75735da8c2a9d5a916809</id>
<content type='text'>
When files are unmerged they can show up as both unmerged and
modified in the output of `git diff --raw`.  This causes
difftool's dir-diff to create filesystem entries for the same
path twice, which fails when it encounters a duplicate path.

Ensure that each worktree path is only processed once.
Add a test to demonstrate the breakage.

Reported-by: Jan Smets &lt;jan@smets.cx&gt;
Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: initialize variables for readability</title>
<updated>2016-05-16T21:53:03Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2016-05-16T18:05:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=951b551d0f349f145f8606b946d64fc452ad6a51'/>
<id>urn:sha1:951b551d0f349f145f8606b946d64fc452ad6a51</id>
<content type='text'>
The code always goes into one of the two conditional blocks but make it
clear that not doing so is an error condition by setting $ok to 0.

Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: ignore symbolic links in use_wt_file</title>
<updated>2015-10-29T20:43:10Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2015-10-29T18:19:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=cfe2d4be9126f03d8ca198f9da36762cdf59b52f'/>
<id>urn:sha1:cfe2d4be9126f03d8ca198f9da36762cdf59b52f</id>
<content type='text'>
The caller is preparing a narrowed-down copy of the working tree and
this function is asked if the path should be included in that copy.
If we say yes, the path from the working tree will be either symlinked
or copied into the narrowed-down copy.

For any path that is a symbolic link, the caller later fixes up the
narrowed-down copy by unlinking the path and replacing it with a
regular file it writes out that mimics the way how "git diff"
compares symbolic links.

Let's answer "no, you do not want to copy/symlink the working tree
file" for all symbolic links from this function, as we know the
result will not be used because it will be overwritten anyway.

Incidentally, this also stops the function from feeding a symbolic
link in the working tree to hash-object, which is a wrong thing to
do to begin with. The link may be pointing at a directory, or worse
may be dangling (both would be noticed as an error).  Even if the
link points at a regular file, hashing the contents of a file that
is pointed at by the link is not correct (Git hashes the contents of
the link itself, not the pointee).

Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'da/difftool'</title>
<updated>2014-10-29T17:09:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-10-29T17:09:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=9ce57f12280eb6a95043e28ad68ff2b6c70c09ad'/>
<id>urn:sha1:9ce57f12280eb6a95043e28ad68ff2b6c70c09ad</id>
<content type='text'>
Allow diff tool backend to stop early by exiting with a non-zero
status.

* da/difftool:
  difftool: add support for --trust-exit-code
  difftool--helper: exit when reading a prompt answer fails
</content>
</entry>
<entry>
<title>difftool: add support for --trust-exit-code</title>
<updated>2014-10-28T17:36:57Z</updated>
<author>
<name>David Aguilar</name>
<email>davvid@gmail.com</email>
</author>
<published>2014-10-27T01:15:42Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=2b52123fcf840686b69e10807fd0f985ec4167f3'/>
<id>urn:sha1:2b52123fcf840686b69e10807fd0f985ec4167f3</id>
<content type='text'>
Teach difftool to exit when a diff tool returns a non-zero exit
code when either --trust-exit-code is specified or
difftool.trustExitCode is true.

Forward exit codes from invoked diff tools to the caller when
--trust-exit-code is used.

Suggested-by: Adri Farr &lt;14farresa@gmail.com&gt;
Helped-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>difftool: don't assume that default sh is sane</title>
<updated>2014-10-15T21:12:20Z</updated>
<author>
<name>Charles Bailey</name>
<email>cbailey32@bloomberg.net</email>
</author>
<published>2014-10-11T08:39:38Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=4fb4b02d98310f4f859f7d52f57f36d49198be5c'/>
<id>urn:sha1:4fb4b02d98310f4f859f7d52f57f36d49198be5c</id>
<content type='text'>
git-difftool used to create a command list script containing $( ... )
and explicitly calls "sh -c" with this list.

Instead, allow mergetool --tool-help to take a mode parameter and call
mergetool directly to invoke the show_tool_help function. This mode
parameter is intented for use solely by difftool.

Signed-off-by: Charles Bailey &lt;cbailey32@bloomberg.net&gt;
Helped-by: John Keeping &lt;john@keeping.me.uk&gt;
Signed-off-by: David Aguilar &lt;davvid@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
