From: David Aguilar <hidden> Date: 2016-06-15 23:02:41
From: Charles Bailey <redacted>
Signed-off-by: Charles Bailey <redacted>
Signed-off-by: David Aguilar <redacted>
---
Changes since v1:
NONGIT_OK=Yes was added to make it actually work outside of a git repo.
git-mergetool.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
From: David Aguilar <hidden> Date: 2016-06-15 23:02:41
From: Charles Bailey <redacted>
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 <redacted>
Helped-by: John Keeping [off-list ref]
Signed-off-by: David Aguilar <redacted>
---
Changes since v1:
The case statement for --tool-help=* was made simpler
thanks to John.
git-difftool.perl | 6 +-----
git-mergetool.sh | 4 ++++
2 files changed, 5 insertions(+), 5 deletions(-)
@@ -47,13 +47,9 @@ sub find_worktreesubprint_tool_help{-my$cmd='TOOL_MODE=diff';-$cmd.=' && . "$(git --exec-path)/git-mergetool--lib"';-$cmd.=' && show_tool_help';-# See the comment at the bottom of file_diff() for the reason behind# using system() followed by exit() instead of exec().-my$rc=system('sh','-c',$cmd);+my$rc=system(qw(git mergetool --tool-help=diff));exit($rc|($rc>>8));}
From: Charles Bailey <hidden> Date: 2016-06-15 23:02:41
On 10 Oct 2014, at 09:51, David Aguilar [off-list ref] wrote:
Changes since v1:
NONGIT_OK=Yes was added to make it actually work outside of a git repo.
Does this actually work? The reason that I haven't got around to resending my re-roll is that I found that I needed changes to git-sh-setup.sh because doing NONGIT_OK and then require_work_tree didn't correctly set GIT_DIR when it wasn't already explicitly set in the environment. (I believe the rest of mergetool relies on it.)
Perhaps I misunderstood, though.
From: David Aguilar <hidden> Date: 2016-06-15 23:02:41
On Fri, Oct 10, 2014 at 10:01:57AM +0100, Charles Bailey wrote:
On 10 Oct 2014, at 09:51, David Aguilar [off-list ref] wrote:
quoted
Changes since v1:
NONGIT_OK=Yes was added to make it actually work outside of a git repo.
Does this actually work? The reason that I haven't got around
to resending my re-roll is that I found that I needed changes
to git-sh-setup.sh because doing NONGIT_OK and then
require_work_tree didn't correctly set GIT_DIR when it wasn't
already explicitly set in the environment. (I believe the rest
of mergetool relies on it.)
Perhaps I misunderstood, though.
Thanks for the heads-up.
I tested mergetool and it seems fine but indeed there's an
`if test -e "$GIT_DIR/MERGE_RR"` in there that is surely not
working as intended.
One solution would be to move the work done in the test -z "$NONGIT_OK"
block in git-sh-setup into a function e.g. git_dir_init () so
that we can defer the GIT_DIR initialization until after
require_work_tree has been called.
--
David
From: Charles Bailey <hidden> Date: 2016-06-15 23:02:41
On 11 Oct 2014, at 09:29, David Aguilar [off-list ref] wrote:
Thanks for the heads-up.
I tested mergetool and it seems fine but indeed there's an
`if test -e "$GIT_DIR/MERGE_RR"` in there that is surely not
working as intended.
One solution would be to move the work done in the test -z "$NONGIT_OK"
block in git-sh-setup into a function e.g. git_dir_init () so
that we can defer the GIT_DIR initialization until after
require_work_tree has been called.
I believe I had a very similar idea but the vast number of things that would potentially be affected by changing git-sh-setup.sh made me put things on hold in case I had any other ideas.
I haven't so I think this is probably the best approach.