Differences between revisions 11 and 15 (spanning 4 versions)
Revision 11 as of 2010-10-21 06:10:20
Size: 2438
Editor: mpm
Comment:
Revision 15 as of 2012-11-06 23:06:24
Size: 2556
Editor: abuehl
Comment: fix category
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
<<Include(A:dev)>>
Line 5: Line 7:

/!\ This page is intended for developers.
Line 18: Line 18:
 * [[http://www.python.org/download/|Python for Windows]]  * [[http://www.python.org/download/|Python 2.6 for Windows]]
Line 23: Line 23:
 * most Mercurial functionality, including networking support
Line 26: Line 27:
 * subprocess and pipe oddities
Line 60: Line 62:
@c:\python25\python c:\hg\hg %1 %2 %3 %4 %5 %6 %7 %8 %9 @c:\python26\python c:\hg\hg %1 %2 %3 %4 %5 %6 %7 %8 %9
Line 67: Line 69:
== See also ==

 * HackableMercurial
Line 68: Line 74:
CategoryDevelopers CategoryWindows CategoryTesting CategoryHowTo CategoryDeveloper CategoryWindows CategoryTesting CategoryHowTo

Note:

This page is primarily intended for developers of Mercurial.

Mercurial Under Wine

How to use Wine for developing and testing Mercurial's Windows support under Linux and elsewhere.

1. Introduction

It's possible to get Mercurial working under Wine with no Windows components. This is useful for cross-platform testing if you don't want use Windows.

You'll need the following packages:

Wine is a sufficiently good emulation of Windows to exercise at least the following:

  • most Mercurial functionality, including networking support
  • case sensitivity issues and other path naming issues
  • console and GUI charset and encoding behavior
  • 32-bit memory fragmentation and restrictions
  • subprocess and pipe oddities
  • EOL behavior

2. Getting a Wine command prompt

Once you have Wine installed, something like this should get you a command prompt:

wineconsole cmd

You'll probably want to start with 'cd c:\' to get to Wine's fake Windows install, where you can install new packages safely. From here, you should be able to run the installers for Python, etc. This is stored in $HOME/.wine/drive_c if you want to get at these files from the Linux side.

You'll also want to setup your PATH variable. Run 'start regedit' and edit the key under HKLM/System/CurrentControlSet/SessionManager/Environment/Path.

3. Building Mercurial Extensions

Once you've got Python and MinGW installed and a Mercurial tree unpacked in an appropriate place, you can build Mercurial's extensions with something like the following:

python setup.py build_ext -i -f -c mingw32

4. Tips

Create a 'win' (or 'lose' if you prefer) script in your host environment like the following to make starting Wine in console mode more convenient:

cd ~/.wine/drive_c
wineconsole cmd > /dev/null 2>&1 &

Create an 'hg.bat' script in 'c:\windows' to make running hg easier:

@c:\python26\python c:\hg\hg %1 %2 %3 %4 %5 %6 %7 %8 %9

5. Py2Exe and InnoSetup

These programs install just fine but won't yet work correctly in Wine (as of Wine 0.9.25) due to emulation of BeginUpdateResource() being incomplete (see http://bugs.winehq.org/show_bug.cgi?id=3897).

6. See also


CategoryDeveloper CategoryWindows CategoryTesting CategoryHowTo

MercurialUnderWine (last edited 2012-11-06 23:06:24 by abuehl)