This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [1.7] git-difftool paths unusable by win32 kdiff3

David Antliff wrote:
> On Wed, Dec 2, 2009 at 10:11, Jeremy Bopp wrote:
>> David Antliff wrote:
>>> On the other hand, this command does work:
>>> kdiff3 --auto --L1 "build.xml (A)" --L2 "build.xml (B)"
>>> c:/cygwin-1.7/tmp/Vc0BZy_build.xml build.xml
>> As a fairly simple workaround, you could create a wrapper script which
>> takes the same set of arguments git difftool gives to kdiff3 and
>> converts the given file paths using cygpath -w before exec'ing the real
>> kdiff3.  Then you can point to that wrapper by setting the git
>> configuration variable difftool.kdiff3.path to the path for the wrapper
>> script.  Run "git difftool --help" for more information.
> Jeremy, thank you for your reply.
> It's slightly more complicated than this, because I need a way to
> translate "/tmp" to the Cygwin installation directory. I.e. it's not a
> simple case of replacing "/tmp" with "c:/tmp" but rather
> "$CYGWIN_INSTALL_DIR/tmp" and I'm not sure CYGWIN_INSTALL_DIR or
> anything similar exists.
> This is because my users have cygwin installed in different places.
> For example, some have it on "c:\cygwin", others "d:\cygwin" and even
> "c:\cygwin-1.5" or  "c:\cygwin-1.7". I need a general way to determine
> the Cygwin installation path. Any ideas? Is there a supported way for
> a script to determine the Cygwin installation directory, perhaps
> relative to /cygdrive or as a DOS path?

There is a purpose built tool specifically to handle this which I
mentioned in my reply.  You can use the cygpath program to convert paths
back and forth between Windows-native and POSIX/Cygwin.  Given the file
path in POSIX format as your wrapper would receive it, you can do the
following to convert it to a Windows path:

cygpath -w /tmp/some_file

Assuming your Cygwin installation is in a path such as C:\cygwin, you
will see C:\cygwin\tmp\some_file as output.  This will work no matter
where Cygwin is installed because cygpath can figure it out
automatically.  This is the only supported method of which I'm aware to
convert paths.

Use the --help option for cygpath to see usage instructions for its many


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]