~abentley/bzrtools/bzrtools.dev

505.1.1 by Aaron Bentley
Add some bug reports
1
$mkdir upstream-1.0.1
2
$touch upstream-1.0.1/README
3
$tar czf upstream-1.0.1.tar.gz upstream-1.0.1
4
$mkdir my-branch
5
$cd my-branch
6
$bzr init
7
$bzr import ../upstream-1.0.1.tar.gz
8
bzr: ERROR: bzrlib.errors.PathNotChild: Path '/' is not a child of path
9
u'/home/user/my-branch'
10
11
Traceback (most recent call last):
12
  File "/usr/local/lib/python2.5/site-packages/bzrlib/commands.py", line
13
650, in run_bzr_catch_errors
14
    return run_bzr(argv)
15
  File "/usr/local/lib/python2.5/site-packages/bzrlib/commands.py", line
16
612, in run_bzr
17
    ret = run(*run_argv)
18
  File "/usr/local/lib/python2.5/site-packages/bzrlib/commands.py", line
19
304, in run_argv_aliases
20
    return self.run(**all_cmd_args)
21
  File
22
"/usr/local/lib/python2.5/site-packages/bzrlib/plugins/bzrtools/__init__.py",
23
line 545, in run
24
    do_import(source, tree)
25
  File
26
"/usr/local/stow/bazaar-dev/lib/python2.5/site-packages/bzrlib/plugins/bzrtools/upstream_import.py",
27
line 272, in do_import
28
    import_tar(tree, tar_input)
29
  File
30
"/usr/local/stow/bazaar-dev/lib/python2.5/site-packages/bzrlib/plugins/bzrtools/upstream_import.py",
31
line 165, in import_tar
32
    import_archive(tree, tar_file)
33
  File
34
"/usr/local/stow/bazaar-dev/lib/python2.5/site-packages/bzrlib/plugins/bzrtools/upstream_import.py",
35
line 201, in import_archive
36
    trans_id = tt.trans_id_tree_path(relative_path)
37
  File
38
"/usr/local/stow/bazaar-dev/lib/python2.5/site-packages/bzrlib/transform.py",
39
line 240, in trans_id_tree_path
40
    path = self.canonical_path(path)
41
  File
42
"/usr/local/stow/bazaar-dev/lib/python2.5/site-packages/bzrlib/transform.py",
43
line 234, in canonical_path
44
    relpath = self._tree.relpath(abs)
45
  File "/usr/local/lib/python2.5/site-packages/bzrlib/workingtree.py",
46
line 449, in relpath
47
    return osutils.relpath(self.basedir, path)
48
  File "/usr/local/lib/python2.5/site-packages/bzrlib/osutils.py", line
49
822, in relpath
50
    raise errors.PathNotChild(rp, base)
51
PathNotChild: Path '/' is not a child of path u'/home/user/my-branch'
52
53
bzr 0.15.0dev0 on python 2.5.0.final.0 (linux2)
54
arguments: ['/usr/local/bin/bzr', 'import', '../upstream-1.0.1.tar.gz']
55
56
** please send this report to bazaar@lists.ubuntu.com
57
/usr/local/lib/python2.5/site-packages/bzrlib/lockable_files.py:110:
58
UserWarning: file group
59
LockableFiles(<bzrlib.transport.local.LocalTransport
60
url=file:///home/user/my-branch/.bzr/checkout/>) was not explicitly unlocked
61
  warn("file group %r was not explicitly unlocked" % self)
62
/usr/local/lib/python2.5/site-packages/bzrlib/lockable_files.py:110:
63
UserWarning: file group
64
LockableFiles(<bzrlib.transport.local.LocalTransport
65
url=file:///home/user/my-branch/.bzr/branch/>) was not explicitly unlocked
66
  warn("file group %r was not explicitly unlocked" % self)
67
/usr/local/lib/python2.5/site-packages/bzrlib/lockable_files.py:110:
68
UserWarning: file group
69
LockableFiles(<bzrlib.transport.local.LocalTransport
70
url=file:///home/user/my-branch/.bzr/repository/>) was not explicitly
71
unlocked
72
  warn("file group %r was not explicitly unlocked" % self)
73
74
I think this is because TarFile.getmembers() contains "upstream-1.0.1//"
75
(two slashes). A quick fix that works for me is:
76
77
--- upstream_import.py  2007-01-08 17:08:42 +0000
78
+++ upstream_import.py  2007-01-29 12:03:54 +0000
79
@@ -193,7 +193,7 @@
80
             continue
81
         relative_path = member.name
82
         if prefix is not None:
83
-            relative_path = relative_path[len(prefix)+1:]
84
+            relative_path = relative_path[len(prefix):].lstrip('/')
85
         if relative_path == '':
86
             continue
87
         add_implied_parents(implied_parents, relative_path)
88
89
bye, matthias
90