I've installed bazaar in cygwin instead and have been using that for a couple of days now. But, to be able to use the GUI tools, I had to do a couple of tricks. I got them to work and here's what I did. It's a workaround if anybody else is stuck with the same issue. Basically here's what I did.
Through the Cygwin setup, install the following packages:
- bzr
- python3
- python3-pyqt4
- python-pyqt4 (I wasn't sure which one to install, so I installed both, but I think this one is not necessary.)
- xinit
- libqt4core (I think, but I'm not sure. Can't remember if I had to install it or if it was installed as a dependency with python3-pyqt4.)
Then download the individual Windows packages for the bazaar plugins you want to use. In my case I downloaded:
- qbzr
- bzrtools
- bazaar explorer
I installed the plugins under c:\bazaar and the installers put them under C:\Bazaar\2.0\plugins.
In a Cygwin terminal, in my home dir, I created the directory ~/.bazaar/plugins/ and in that directory I made a sym link of every directory under C:\Bazaar\2.0\plugins.
After that, in the cygwin terminal, start up a new X-server using the startxwin command. Then export the DISPLAY variable so that your graphical tools know which X session to output to.
$ export DISPLAY=:0.0
Also, in case you get the annoying xterm when you start X, just create an empty file called .startxwinrc in your home directory.
Then, when you enter the commands bzr qlog, bzr explorer, bzr qbzr, the tools should open up through the X server and show up on your desktop. If any dependencies are missing, you will get an error message and you can install the missing package through Cygwin setup.
After that, if you want to use your favourite windows merge tool and editors with bazaar in Cygwin, they won't be able to interpret the Cygwin paths. So instead, I created a ~/bin/ folder and made a few scripts that call my favourite apps and that translate the file paths given as arguments using cygpath -w. Here's an example for p4merge:
#!/bin/bash
if [ "$#" = "2" ]; then
this=`cygpath -w $1`
other=`cygpath -w $2`
/cygdrive/c/Program\ Files/Perforce/p4merge.exe $this $other
elif [ "$#" = "4" ]; then
base=`cygpath -w $1`
this=`cygpath -w $2`
other=`cygpath -w $3`
result=`cygpath -w $4`
/cygdrive/c/Program\ Files/Perforce/p4merge.exe $base $this $other $result
else
echo "Invalid number of arguments."
echo "Usage: p4merge.sh <this> <other> or p4merge.sh <base> <this> <other> <result>"
exit 1
fi
I configured my bzr explorer to use that as a diff viewer and merge tool and it works perfectly.