This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 268238

Summary: Cygwin's Mercurial doesn't work within Netbeans and commands are outdated
Product: versioncontrol Reporter: wetmore <wetmore>
Component: MercurialAssignee: Ondrej Vrabec <ovrabec>
Status: NEW ---    
Severity: normal CC: wetmore
Priority: P2    
Version: Dev   
Hardware: PC   
OS: Windows 7   
Issue Type: DEFECT Exception Reporter:

Description wetmore 2016-09-27 22:25:47 UTC
I am a JDK 9 library developer, so as part of my work setup, I have installed Windows 7, a recent NB 8.1, JDK 8u101 and a recent cygwin (a Unix emulation package for Windows).  I have also tried using NB 9/JDK9-dev, but the problem is generic.

The problem is that Cygwin packages mercurial as a python script.

#!/bin/python
#
# mercurial - scalable distributed SCM
#
# Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
...deleted...

NB's Mercurial Options configuration tab does not recognize the python script, only .exe files.  

An old workaround found online does get me further, but I'm still unable to get working completely.  This is a wrapper that runs in Windows converts DOS to Cygwin-style path/filenames, and then execv's the result.  The wrapper has to call "c:\cygwin\bin\python2.7.exe" as symlinks from "c:/cygwin/bin/python" aren't recognized in Windows.

http://davidcastells.blogspot.com/2011/02/how-to-use-mercurial-in-cygwin-from.html

Once that is installed, the command issued contains:

--style=C:\Users\myname.ORADEV\AppData\Local\Temp\vcs-1475000781446\vcs-1475000820326\log.style

which doesn't exist, so I had my wrapper strip out that command line option.

Then, each component must be enclosed within quotes, otherwise dates like:

--date "2016-08-28 11:26:57 to 2016-09-27 11:26:57"

will be processed as multiple options:

--date
2016-08-28
11:26:57
to
2016-09-27
11:26:57"
Comment 1 wetmore 2016-09-28 17:02:40 UTC
Also, newer versions of Mercurial don't like using absolute directories, and prefer that the user be in the CWD, or else use the --cwd option.  Here's the error message.

abort:  not under root '/cygdrive/D/java
/ws/dev/jdk' (consider using '--cwd ../../../../../D/java/ws/dev/jdk')