[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#927: vc-bzr.el with cygwin bzr
From: |
Phillip Lord |
Subject: |
bug#927: vc-bzr.el with cygwin bzr |
Date: |
Mon, 08 Sep 2008 11:51:37 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (windows-nt) |
Problem: vc-bzr.el doesn't work with cygwin bzr
I've recently been trying out bzr on windows and was pleased to find
vc-bzr.el. It works well with the windows bzr executable but,
unfortunately, this doesn't deal with symlinks which is important to me.
So I tried cygwin instead. Unfortunately vc-bzr.el doesn't work with
this failing with "No such file or program" errors. vc-svn and vc-cvs
work fine with cygin.
Cause:
bzr is a python file. On cygwin it uses a magic #!/usr/bin/python line,
which vc "start-process" doesn't work with.
I tested this with following hack, which launches python and gives the
location of bzr (under cygwin as it's cygwin python) as an argument.
(defun vc-bzr-command (bzr-command buffer okstatus file-or-list &rest args)
"Wrapper round `vc-do-command' using `vc-bzr-program' as COMMAND.
Invoke the bzr command adding `BZR_PROGRESS_BAR=none' and
`LC_MESSAGES=C' to the environment."
(let ((process-environment
(list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9)
"LC_MESSAGES=C" ; Force English output
process-environment)))
(apply 'vc-do-command (or buffer "*vc*") okstatus "python"
file-or-list "/usr/bin/bzr" bzr-command args)))
vc-bzr now works.
Suggested Solution:
My hack is platform specific. A better solution would be, to modify
vc-bzr-command to be either of the form "bzr-program-name" or '("python
name" "bzr name"). vc-bzr-command would need to be modified to cope.
There is couple of other places vc-bzr-command is used which would need
changing also.
Thanks for your attention!
Phil
- bug#927: vc-bzr.el with cygwin bzr,
Phillip Lord <=