On Sun, Apr 10, 2011 at 07:00:07PM +0200, Bernd Zeimetz wrote: > Hi, > > a patch is attache,d but not tested as the nosetest stuff failed ocmpldetely - > didn't have the time to figure out why. But I think the patch is correct.
I was looking for a proper test case but I think I figured it out. The patch was broken btw, that's why the nosetests failed - the paths have a trailing newline with maxsplit. Thanks, -- Guido > > Cheers, > > Bernd > > > On 04/10/2011 04:31 PM, Guido Günther wrote: > > severity 622103 > > > > Hi Bernd, > > On Sun, Apr 10, 2011 at 11:35:31AM +0200, Bernd Zeimetz wrote: > >> Package: git-buildpackage > >> Version: 0.5.21 > >> Severity: important > >> Tags: patch > >> > >> Hi, > >> > >> in gbp/git.py, line 539: > >> mode, objtype, commit, name = line.split() > >> fails if the filename contains a whitespace. The proper split would be > >> mode, objtype, commit, name = line.split(None, 3) > > > > Could you provide a test case? > > Cheers, > > -- Guido > > > >> > >> A patch is attached. > >> > >> Cheers, > >> > >> Bernd > >> > >> > >> -- System Information: > >> Debian Release: wheezy/sid > >> APT prefers unstable > >> APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') > >> Architecture: amd64 (x86_64) > >> > >> Kernel: Linux 2.6.38-2-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/dash > >> > >> Versions of packages git-buildpackage depends on: > >> ii devscripts 2.10.71 scripts to make the life of a > >> Debi > >> ii git [git-core] 1:1.7.4.1-5 fast, scalable, distributed > >> revisi > >> ii git-core 1:1.7.4.1-5 fast, scalable, distributed > >> revisi > >> ii python 2.6.6-12 interactive high-level > >> object-orie > >> ii python-dateutil 1.4.1-3 powerful extensions to the > >> standar > >> ii python-support 1.0.11 automated rebuilding support > >> for P > >> > >> Versions of packages git-buildpackage recommends: > >> ii cowbuilder 0.62+nmu2 pbuilder running on cowdancer > >> ii pristine-tar 1.13 regenerate pristine tarballs > >> > >> Versions of packages git-buildpackage suggests: > >> pn git-load-dirs <none> (no description available) > >> ii python-notify 0.1.1-2+b2 Python bindings for libnotify > >> > >> -- no debconf information > >> > >> -- debsums errors found: > >> debsums: changed file /usr/bin/git-buildpackage (from git-buildpackage > >> package) > >> debsums: changed file /usr/share/pyshared/gbp/git.py (from > >> git-buildpackage package) > > > >> >From 5f76ae54b967dc299ac482a7e5097d249258fb30 Mon Sep 17 00:00:00 2001 > >> From: Bernd Zeimetz <b...@debian.org> > >> Date: Sun, 10 Apr 2011 11:34:04 +0200 > >> Subject: [PATCH] gbp/git.py: Don't split filenames with whitespaces. > >> > >> --- > >> gbp/git.py | 2 +- > >> 1 files changed, 1 insertions(+), 1 deletions(-) > >> > >> diff --git a/gbp/git.py b/gbp/git.py > >> index 96c2255..fb5aa53 100644 > >> --- a/gbp/git.py > >> +++ b/gbp/git.py > >> @@ -536,7 +536,7 @@ class GitRepository(object): > >> > >> out, ret = self.__git_getoutput('ls-tree', args, cwd=path) > >> for line in out: > >> - mode, objtype, commit, name = line.split() > >> + mode, objtype, commit, name = line.split(None, 3) > >> # A submodules is shown as "commit" object in ls-tree: > >> if objtype == "commit": > >> nextpath = os.path.sep.join([path, name]) > >> -- > >> 1.7.4.1 > >> > > > > > -- > Bernd Zeimetz Debian GNU/Linux Developer > http://bzed.de http://www.debian.org > GPG Fingerprint: ECA1 E3F2 8E11 2432 D485 DD95 EB36 171A 6FF9 435F > From 3655170ed2cfb908536ee19f64bbc76333bc8b18 Mon Sep 17 00:00:00 2001 > From: Bernd Zeimetz <b...@debian.org> > Date: Sun, 10 Apr 2011 18:58:48 +0200 > Subject: [PATCH 2/2] Provide a test case for file names with spaces. > > --- > tests/04_test_gbp_submodules.py | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/tests/04_test_gbp_submodules.py b/tests/04_test_gbp_submodules.py > index ae9d59a..8ab6722 100644 > --- a/tests/04_test_gbp_submodules.py > +++ b/tests/04_test_gbp_submodules.py > @@ -20,7 +20,7 @@ submoduledir = None > submodule_name = "test_submodule" > > tmpdir = None > -testfile_name = "testfile" > +testfile_names = ["testfile", "test file"] > > > def setup(): > @@ -51,7 +51,8 @@ def test_empty_has_submodules(): > > > def _add_dummy_data(msg): > - shutil.copy(".git/HEAD", testfile_name) > + for testfile_name in testfile_names: > + shutil.copy(".git/HEAD", testfile_name) > gbp.command_wrappers.GitAdd()(['-f', '.']) > gbp.command_wrappers.GitCommand("commit", ["-m%s" % msg, "-a"])() > > @@ -94,8 +95,9 @@ def test_dump_tree(): > dumpdir = os.path.join(tmpdir, "dump") > os.mkdir(dumpdir) > assert git_buildpackage.dump_tree(repo, dumpdir, "master", True) > - assert os.path.exists(os.path.join(dumpdir, testfile_name)) > - assert os.path.exists(os.path.join(dumpdir, submodule_name, > testfile_name)) > + for testfile_name in testfile_names: > + assert os.path.exists(os.path.join(dumpdir, testfile_name)) > + assert os.path.exists(os.path.join(dumpdir, submodule_name, > testfile_name)) > > > def test_create_tarball(): > -- > 1.7.4.1 > -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org