summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-03-11 10:17:09 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-03-11 10:17:09 +0000
commit958cb4b614e3ac47332148ecbd15e5c2e3e07db3 (patch)
tree03d1865f32df0dddc63b35bb50edfe3cdd44b291
parent444ba7c2f0f3d53753abeff6dfd33681279a3d84 (diff)
parentfbce0142fb9ff9c9187cdcb67bc3a2981e78ff69 (diff)
downloadmorph-958cb4b614e3ac47332148ecbd15e5c2e3e07db3.tar.gz
Merge branch 'sam/branching-fixes'
Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
-rw-r--r--morphlib/gitdir.py3
-rw-r--r--morphlib/gitdir_tests.py8
-rw-r--r--morphlib/plugins/branch_and_merge_new_plugin.py4
3 files changed, 10 insertions, 5 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py
index f5ef0061..15079231 100644
--- a/morphlib/gitdir.py
+++ b/morphlib/gitdir.py
@@ -478,7 +478,8 @@ class GitDirectory(object):
if dirpath == self.dirname and '.git' in subdirs:
subdirs.remove('.git')
for filename in filenames:
- yield os.path.join(dirpath, filename)[len(self.dirname)+1:]
+ filepath = os.path.join(dirpath, filename)
+ yield os.path.relpath(filepath, start=self.dirname)
def _list_files_in_ref(self, ref):
tree = self.resolve_ref_to_tree(ref)
diff --git a/morphlib/gitdir_tests.py b/morphlib/gitdir_tests.py
index 8c312c1b..14b2a57a 100644
--- a/morphlib/gitdir_tests.py
+++ b/morphlib/gitdir_tests.py
@@ -82,9 +82,13 @@ class GitDirectoryContentsTests(unittest.TestCase):
shutil.rmtree(self.tempdir)
def test_lists_files_in_work_tree(self):
+ expected = ['bar.morph', 'baz.morph', 'foo.morph', 'quux']
+
gd = morphlib.gitdir.GitDirectory(self.dirname)
- self.assertEqual(sorted(gd.list_files()),
- ['bar.morph', 'baz.morph', 'foo.morph', 'quux'])
+ self.assertEqual(sorted(gd.list_files()), expected)
+
+ gd = morphlib.gitdir.GitDirectory(self.dirname + '/')
+ self.assertEqual(sorted(gd.list_files()), expected)
def test_read_file_in_work_tree(self):
gd = morphlib.gitdir.GitDirectory(self.dirname)
diff --git a/morphlib/plugins/branch_and_merge_new_plugin.py b/morphlib/plugins/branch_and_merge_new_plugin.py
index 94b2381c..8c8a98e9 100644
--- a/morphlib/plugins/branch_and_merge_new_plugin.py
+++ b/morphlib/plugins/branch_and_merge_new_plugin.py
@@ -191,7 +191,7 @@ class SimpleBranchAndMergePlugin(cliapp.Plugin):
ws, root_url, system_branch, cached_repo, base_ref) as (sb, gd):
if not self._checkout_has_systems(gd):
- raise BranchRootHasNoSystemsError(base_ref)
+ raise BranchRootHasNoSystemsError(root_url, base_ref)
def branch(self, args):
@@ -252,7 +252,7 @@ class SimpleBranchAndMergePlugin(cliapp.Plugin):
gd.checkout(system_branch)
if not self._checkout_has_systems(gd):
- raise BranchRootHasNoSystemsError(base_ref)
+ raise BranchRootHasNoSystemsError(root_url, base_ref)
def _save_dirty_morphologies(self, loader, sb, morphs):
logging.debug('Saving dirty morphologies: start')