Rev 5071: (vila, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Mar 2 16:45:42 GMT 2010
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5071 [merge]
revision-id: pqm at pqm.ubuntu.com-20100302164538-yx0io3uv54l2o7im
parent: pqm at pqm.ubuntu.com-20100302144617-2vtu14t81e3acd8f
parent: v.ladeuil+lp at free.fr-20100302155628-n1f4y1wk7hg54k2e
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2010-03-02 16:45:38 +0000
message:
(vila,
for parthm) mkdir don't create dirs outside working trees anymore
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_versioning.py versioning.py-20050622071821-3ddf5e2e5e93c602
=== modified file 'NEWS'
--- a/NEWS 2010-03-02 10:21:39 +0000
+++ b/NEWS 2010-03-02 15:56:28 +0000
@@ -100,13 +100,16 @@
prevents ``bzr status --short`` from crashing when those files are
present. (John Arbash Meinel, #303275)
-* Tolerate patches with leading noise in ``bzr-handle-patch``.
- (Toshio Kuratomi, Martin Pool, #502076)
+* ``bzr mkdir DIR`` will not create DIR unless DIR's parent is a versioned
+ directory. (Parth Malwankar, #138600)
* SSH child processes will now ignore SIGQUIT on nix systems so breaking into
the debugger won't kill the session.
(Martin <gzlist at googlemail.com>, #162502)
+* Tolerate patches with leading noise in ``bzr-handle-patch``.
+ (Toshio Kuratomi, Martin Pool, #502076)
+
API Changes
***********
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2010-03-01 16:18:43 +0000
+++ b/bzrlib/builtins.py 2010-03-02 15:56:28 +0000
@@ -699,10 +699,15 @@
def run(self, dir_list):
for d in dir_list:
- os.mkdir(d)
wt, dd = WorkingTree.open_containing(d)
- wt.add([dd])
- self.outf.write('added %s\n' % d)
+ base = os.path.dirname(dd)
+ id = wt.path2id(base)
+ if id != None:
+ os.mkdir(d)
+ wt.add([dd])
+ self.outf.write('added %s\n' % d)
+ else:
+ raise errors.NotVersionedError(path=base)
class cmd_relpath(Command):
=== modified file 'bzrlib/tests/blackbox/test_versioning.py'
--- a/bzrlib/tests/blackbox/test_versioning.py 2009-08-28 05:00:33 +0000
+++ b/bzrlib/tests/blackbox/test_versioning.py 2010-03-02 15:49:51 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005 Canonical Ltd
+# Copyright (C) 2005, 2006, 2007, 2009, 2010 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,16 +29,29 @@
from bzrlib.workingtree import WorkingTree
+class TestMkdir(TestCaseWithTransport):
+
+ def test_mkdir_fails_cleanly(self):
+ """'mkdir' fails cleanly when no working tree is available.
+ https://bugs.edge.launchpad.net/bzr/+bug/138600
+ """
+ # Since there is a safety working tree above us, we create a bare repo
+ # here locally.
+ shared_repo = self.make_repository('.')
+ self.run_bzr(['mkdir', 'abc'], retcode=3)
+ self.failIfExists('abc')
+
+
class TestVersioning(TestCaseInTempDir):
def test_mkdir(self):
"""Basic 'bzr mkdir' operation"""
self.run_bzr('init')
- self.run_bzr('mkdir foo')
+ self.run_bzr(['mkdir', 'foo'])
self.assert_(os.path.isdir('foo'))
- self.run_bzr('mkdir foo', retcode=3)
+ self.run_bzr(['mkdir', 'foo'], retcode=3)
wt = WorkingTree.open('.')
@@ -54,12 +67,12 @@
"""'bzr mkdir' operation in subdirectory"""
self.run_bzr('init')
- self.run_bzr('mkdir dir')
+ self.run_bzr(['mkdir', 'dir'])
self.assert_(os.path.isdir('dir'))
os.chdir('dir')
self.log('Run mkdir in subdir')
- self.run_bzr('mkdir subdir')
+ self.run_bzr(['mkdir', 'subdir'])
self.assert_(os.path.isdir('subdir'))
os.chdir('..')
@@ -86,7 +99,7 @@
self.run_bzr('init')
os.chdir('../..')
- self.run_bzr('mkdir dir a/dir a/b/dir')
+ self.run_bzr(['mkdir', 'dir', 'a/dir', 'a/b/dir'])
self.failUnless(os.path.isdir('dir'))
self.failUnless(os.path.isdir('a/dir'))
self.failUnless(os.path.isdir('a/b/dir'))
More information about the bazaar-commits
mailing list