Bug#584554: meld: fails on modified CVS files
Andreas Hoenen
andreas at hoenen-terstappen.de
Fri Jun 4 14:33:06 UTC 2010
Package: meld
Version: 1.3.1-1
Severity: important
Tags: patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
With release 1.3.1-1, meld fails on CVS files that have been modified locally,
which worked properly in release 1.3.0-2. The exception thrown is:
$ cvs status file1
===================================================================
File: file1 Status: Locally Modified
Working revision: 1.1 2010-05-29 16:02:17 +0200
Repository revision: 1.1 /home/ah/work/vcs_backup/cvs/repos/a/b/c/file1,v
Commit Identifier: STUxZ50VmFTJhGAu
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
$ meld file1
Traceback (most recent call last):
File "/usr/lib/meld/task.py", line 130, in iteration
ret = task()
File "/usr/lib/meld/vcview.py", line 353, in run_diff_iter
diff = difffunc()
File "/usr/lib/meld/vcview.py", line 419, in _command_iter
r = readfunc()
File "/usr/lib/meld/misc.py", line 209, in __call__
self.proc = subprocess.Popen(command, cwd=workdir, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
errread, errwrite)
File "/usr/lib/python2.5/subprocess.py", line 1153, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory: ''
The problem is that variable workdir gets determined as the empty string instead
of None at various locations, which subprocess.Popen() can't handle. The
obvious workaround patch with mapping '' to None is attached.
Setting severity to important analoguous to meld BTS report #545359, as for
those (like me) that use meld for CVS version control the program is completely
broken.
- -- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (x86_64)
Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages meld depends on:
ii python 2.5.4-9 An interactive high-level object-o
ii python-glade2 2.17.0-2 GTK+ bindings: Glade support
ii python-gtk2 2.17.0-2 Python bindings for the GTK+ widge
ii python-support 1.0.8 automated rebuilding support for P
Versions of packages meld recommends:
ii python-gconf 2.28.1-1 Python bindings for the GConf conf
pn python-gnome2 <none> (no description available)
pn python-gtksourceview2 <none> (no description available)
pn yelp <none> (no description available)
meld suggests no packages.
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEARECAAYFAkwJDpoACgkQco2LfriI0s60ywCg37MhM3MIPj/fQtBUCSKpxE9a
KGwAoI9nGoYPLjal2nUc95R8bbJytZr3
=GYAa
-----END PGP SIGNATURE-----
-------------- next part --------------
--- /usr/lib/meld/misc.py 2010-06-04 16:06:25.000000000 +0200
+++ /tmp/misc.py 2010-06-04 16:00:14.000000000 +0200
@@ -197,6 +197,8 @@
When all the data is read, the entire string is yielded.
If 'workdir' is specified the command is run from that directory.
"""
+ if workdir == '':
+ workdir = None
class sentinel(object):
def __init__(self):
self.proc = None
More information about the pkg-gnome-maintainers
mailing list