View Ticket
Not logged in
Ticket UUID: 8c46da20797072ac4007b279be826ffa7ef59135
Title: Checkin fails: "editor aborted" on Cygwin
Status: Open Type: Incident
Severity: Minor Priority:
Subsystem: Resolution: Open
Last Modified: 2009-10-09 05:13:02
Version Found In: This is fossil version [53db94cd41] 2008-11-19 23:33:47 UTC
Description & Comments:
Problem only exists (for me) in Cygwin on Windows.

I have vi installed in Cygwin, and `which' reports it to be:

$ which vi
/usr/bin/vi

So, I manually set my fossil editor, using `fossil set editor /usr/bin/vi'.

When I checkin, I get:

$ fossil.exe ci
Autosync:  http://sentry:8080/
                Bytes      Cards  Artifacts     Deltas
Send:              87          1          0          0
40The system cannot find the path specified.
Received:        1794         40          0          0
/usr/bin/vi "C:/cygwin/home/User1/src/ci-comment-A97A91FD685A.txt"
C:\cygwin\bin\fossil.exe: editor aborted

The next to the last line seems to be the command that is `fork()'ed? If I copy and paste that line in, `vi' is launched with the normal checkin file, ("# Enter comments on this commit. Lines beginning with # are ignored"... etc)

If I `fossil set editor notepad', notepad opens the file correctly.

If I `fossil.exe set editor "C:\\Program\\ Files\\Vim\\vim70\\gvim.exe"', I get:

$ fossil.exe ci
Autosync:  http://sentry:8080/
                Bytes      Cards  Artifacts     Deltas
Send:              87          1          0          0
40'C:\Program\' is not recognized as an internal or external command,
operable program or batch file.
Received:        1794         40          0          0
C:\Program\ Files\Vim\vim70\gvim.exe "C:/cygwin/home/User1/src/ci-comment-C042442842F0.txt"
C:\cygwin\bin\fossil.exe: editor aborted

(I also tried with every combination of forward- and back-slashes, and quoting of the space character, with similar results.)


anonymous claiming to be Kees Nuyt added on 2008-12-11 23:57:37:
Are you sure the path is

  • C:\Program\ Files\Vim\vim70\gvim.exe ?

Shouldn't that be

  • C:\Program Files\Vim\vim70\gvim.exe ?

If you have a choice, you'd better install unix-like tools in directories outside the 'standard' Windows directories, for example

  • C:\bin\Vim\vim70\gvim.exe

By the way, modern versions of MS Windows (XP, Vista) can handle forward slashes quite well internally. You will only get into trouble with the classic command line utilities, which still reserve the forward slash as the default 'option' character.


kkinnell added on 2008-12-12 07:33:27:
Another test it might good to run would be to try to checkin using the -m "checkin comment" option.

At the very least it would save you from the evil clutches of vi.
(Hehe. A little joke, not an invitation to the flame wars. I list Emacs as one of my Operating Systems skills on my resumé.)


anonymous added on 2008-12-12 15:03:22:
Shouldn't that be

* C:\Program Files\Vim\vim70\gvim.exe ?

Yes, I tried that first. I should have been more explicit than just saying "quoting of the space character".

And I avoid using the -m option, because I often just do a checkin without a filename, so that all files that I have changed are checked in, without me knowing about it. At least when I use the superior editor vi, :^) the comment section tells me what files are being checked in. I probably need to change my workflow, I know, but old habits...

It looks on the surface to be a problem with pathnames that have spaces in them?


kkinnell added on 2008-12-12 20:43:52:
It's been a while since I've used Cygwin, but I seem to recall having to quote the whole darned path to the executable if the path had spaces in it:

   "C:/some darned path/with irritating/spaces/my.exe" "C:/quoted path/data"

IIRC, the last time I was using Cygwin (on a NT5 box in 2003) the only way I could rely on an exe "just running" was if I put it into the command32 (or whatever it's called) "folder"—putting it into the Cygwin bin dir didn't work consistently. I finally ended up dumping Cygwin and getting win native versions of bash, less, and a few other GNU progs.


anonymous claiming to be silov.e added on 2008-12-16 06:15:37:
When fossil start editor (or diff) application, it use 'system(...)' function and mingw(msvcrt) runtime interprets it to getenv("COMSPEC") + " /c " + "...".
So if environment variable 'COMSPEC' set to "...\cmd.exe", editor name depends on "cmd.exe"'s quoting rule and application search rule.
> fossil set editor "\"C:\Program Files\Vim\vim70\gvim.exe\""
> fossil set editor
editor (local) "C:\Program Files\Vim\vim70\gvim.exe"


rwilson added on 2009-09-22 18:34:28:
it doesn't look like fossil allows you to escape quotes on the windows command line:

PS C:\fossil\xyntservice> fossil setting editor "\"c:\program files\jgsoft\editpadpro6\editpadpro.exe\""
Usage: C:\WINDOWS\system32\fossil.exe setting ?PROPERTY? ?VALUE?
PS C:\fossil\xyntservice>

anonymous claiming to be silov.e added on 2009-10-09 05:13:02:
I retest with Windows XP, cmd.exe and pre-build binary "fossil-w32-20090921191920.zip" download from this site.
It works. tell me your environment.

$ cmd /k ver
Microsoft Windows XP [Version 5.1.2600]
$ set comspec
COMSPEC=C:\WINDOWS\system32\cmd.exe
$ fossil version
This is fossil version [37f295c310] 2009-09-21 19:19:20 UTC
$ fossil settings -g editor "\"c:\program files\jgsoft\editpadpro6\editpadpro.exe\""
$ fossil settings editor
editor               (global) "c:\program files\jgsoft\editpadpro6\editpadpro.exe"
$ exit