我已经在 cygwin 中安装了 bazaar 并且已经使用了几天了。但是,为了能够使用 GUI 工具,我必须做一些技巧。我让他们工作,这就是我所做的。如果其他人遇到同样的问题,这是一种解决方法。基本上这就是我所做的。
通过 Cygwin 设置,安装以下软件包:
- bzr
- 蟒蛇3
- python3-pyqt4
- python-pyqt4 (我不确定要安装哪一个,所以我都安装了,但我认为这个不是必需的。)
- 初始化
- libqt4core(我想,但我不确定。不记得我是否必须安装它,或者它是否作为 python3-pyqt4 的依赖项安装。)
然后为您要使用的集市插件下载单独的Windows包。就我而言,我下载了:
我将插件安装在 c:\bazaar 下,安装程序将它们放在 C:\Bazaar\2.0\plugins 下。
在 Cygwin 终端中,在我的主目录中,我创建了目录 ~/.bazaar/plugins/,并在该目录中创建了 C:\Bazaar\2.0\plugins 下每个目录的符号链接。
之后,在 cygwin 终端中,使用 startxwin 命令启动一个新的 X-server。然后导出 DISPLAY 变量,以便您的图形工具知道要输出到哪个 X 会话。
$ export DISPLAY=:0.0
此外,如果您在启动 X 时遇到烦人的 xterm,只需在您的主目录中创建一个名为 .startxwinrc 的空文件。
然后,当您输入命令 bzr qlog、bzr explorer、bzr qbzr 时,这些工具应该会通过 X 服务器打开并显示在您的桌面上。如果缺少任何依赖项,您将收到一条错误消息,您可以通过 Cygwin 安装程序安装缺少的包。
之后,如果你想在 Cygwin 中使用你最喜欢的 windows 合并工具和编辑器与 bazaar,他们将无法解释 Cygwin 路径。因此,我创建了一个 ~/bin/ 文件夹并制作了一些脚本来调用我最喜欢的应用程序,并使用 cygpath -w 转换作为参数给出的文件路径。这是 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
我将我的 bzr 资源管理器配置为将其用作差异查看器和合并工具,它运行良好。