From fbce0142fb9ff9c9187cdcb67bc3a2981e78ff69 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Fri, 7 Mar 2014 12:29:19 +0000 Subject: Fix `morph petrify` in cases where root repo URL has a trailing / gitdir._list_work_tree_files() needs to use os.relpath() instead of direct string manipulation to avoid chopping off the first line of every filename in cases where the base gitdir path string includes the trailing /. Unit test updated to catch this. --- morphlib/gitdir.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'morphlib/gitdir.py') 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) -- cgit v1.2.1