From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Junio C Hamano'" <gitster@pobox.com>
Cc: "'Torsten Bögershausen'" <tboegi@web.de>,
"'Steven Penny'" <svnpenn@gmail.com>,
git@vger.kernel.org
Subject: RE: Cygwin Git with Windows paths
Date: Mon, 19 Nov 2018 07:22:45 -0500 [thread overview]
Message-ID: <006d01d48002$9741aa60$c5c4ff20$@nexbridge.com> (raw)
In-Reply-To: <xmqqbm6leo7g.fsf@gitster-ct.c.googlers.com>
On November 18, 2018 22:33, Junio C Hamano wrote:
> "Randall S. Becker" <rsbecker@nexbridge.com> writes:
>
> >> Torsten Bögershausen <tboegi@web.de> writes:
> >>
> >> > And it may even be that we need a special handling for the "\" to
> >> > be treated as "/".
> >>
> >> I do not do Windows, but is_dir_sep() needs to be tweaked if you want
> >> to do that.
> >
> > Heavy Cygwin user here. It is used in my environment for
> > cross-compilation. Everything should be done using / separators in
> > Cygwin, not \. So /cygdrive/c, /cygdrive/d always prefaces the path
> > rather than C:\ or D:\, which won't parse. It is, essentially, a bash
> > environment, including that git completions work properly. Backslash
> > ends up doing what it would in bash.
>
> In short, in your opinion, the original message in this thread expresses an
> invalid wish, as C:\path\to\dir\ is not a valid way to spell the path to the
> directory, and it should be written as /cygdrive/c/path/to/dir instead?
>
> How well does this argument work in the real world, when another claim in
> the original message
>
> This causes problems for any non-Cygwin tools that might call Git:
>
> http://github.com/golang/go/issues/23155
>
> is taken into account, I wonder, though?
The solution to this that I ended up with is a blend of many different implementations of git (3) on my dev box. EGit in ECLIPSE, standard windows git for working in a CMD prompt, the Cygwin git in Cygwin bash. On another dev box I also have git bash and Ming, which make things easier, but I have to work in Cygwin for some subsystems. I end up using relative paths with / instead of \ in all cases, and git seems happy, except for /cygdrive/c. Absolute Windows and Cygwin paths simply do not work consistently, from my experience from Cygwin because of the way bash passes arguments to non-cygwin tools. You need to be very careful and properly escape "\" to do so, and account for cygwin drive handling otherwise. So a non-cygwin tool from Cygwin can process c:\ but Cygwin itself will not. My own expectations are that git built for Cygwin would understand this, but git built for Windows would not, and that I should account for this through my PATH, selecting Cygwin git in Cygwin and Windows git elsewhere. Reality may not reflect this, so I use relative paths in all cases (non-reality being that the git port for Cygwin is different than the git port for Windows, which it does not appear to be).
Cheers,
Randall
next prev parent reply other threads:[~2018-11-19 12:22 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-18 15:21 Cygwin Git with Windows paths Steven Penny
2018-11-18 15:41 ` Torsten Bögershausen
2018-11-18 16:23 ` Steven Penny
2018-11-18 17:15 ` Torsten Bögershausen
2018-11-18 17:34 ` Steven Penny
2018-11-18 18:28 ` Torsten Bögershausen
2018-11-18 19:00 ` Steven Penny
2018-11-19 0:06 ` Junio C Hamano
2018-11-19 2:11 ` Randall S. Becker
2018-11-19 3:33 ` Junio C Hamano
2018-11-19 5:20 ` Torsten Bögershausen
2018-11-20 0:17 ` Steven Penny
2018-11-20 10:36 ` Torsten Bögershausen
2018-11-20 12:51 ` Steven Penny
2018-11-19 12:22 ` Randall S. Becker [this message]
2018-11-26 17:32 ` [PATCH v1/RFC 1/1] 'git clone <url> C:\cygwin\home\USER\repo' is working (again) tboegi
2018-11-27 0:35 ` Steven Penny
2018-11-27 1:16 ` Junio C Hamano
2018-11-27 2:49 ` Steven Penny
2018-11-27 5:23 ` Junio C Hamano
2018-11-27 6:20 ` Steven Penny
2018-11-27 12:55 ` Johannes Schindelin
2018-11-28 4:10 ` Junio C Hamano
2018-11-28 5:55 ` J.H. van de Water
2018-11-28 8:46 ` Johannes Schindelin
2018-11-28 9:01 ` Houder
2018-11-28 9:35 ` Johannes Schindelin
2018-11-27 20:10 ` Achim Gratz
2018-11-27 12:49 ` Johannes Schindelin
2018-11-28 4:12 ` Junio C Hamano
2018-11-27 20:05 ` Achim Gratz
2018-12-07 17:04 ` [PATCH v2 1/3] git " tboegi
2018-12-07 21:53 ` Johannes Schindelin
2018-12-08 0:49 ` Steven Penny
2018-12-10 8:46 ` Johannes Schindelin
2018-12-10 12:45 ` Steven Penny
2018-12-11 13:39 ` Johannes Schindelin
2018-12-12 0:42 ` Steven Penny
2018-12-12 7:29 ` Johannes Sixt
2018-12-12 12:40 ` Steven Penny
2018-12-13 3:52 ` Junio C Hamano
2018-12-12 13:33 ` Johannes Schindelin
2018-12-12 3:47 ` Elijah Newren
2018-12-12 13:57 ` Johannes Schindelin
2018-12-07 17:04 ` [PATCH v2 2/3] offset_1st_component(), dos_drive_prefix() return size_t tboegi
2018-12-07 17:05 ` [PATCH v2 3/3] Refactor mingw_cygwin_offset_1st_component() tboegi
2018-12-07 22:18 ` Johannes Schindelin
2018-12-08 15:11 ` [PATCH v3 1/1] git clone <url> C:\cygwin\home\USER\repo' is working (again) tboegi
2018-12-08 16:24 ` Steven Penny
2018-12-09 1:39 ` Junio C Hamano
2018-12-10 8:32 ` Johannes Schindelin
2018-12-11 6:12 ` Torsten Bögershausen
2018-12-11 13:28 ` Johannes Schindelin
2018-12-11 18:55 ` Torsten Bögershausen
2018-12-15 4:33 ` [PATCH v4 " tboegi
2019-05-02 7:48 ` Achim Gratz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='006d01d48002$9741aa60$c5c4ff20$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=svnpenn@gmail.com \
--cc=tboegi@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).