Merge lp:~bzr/bzr/parent-directories into lp:~bzr/bzr/trunk-old

Proposed by Ian Clatworthy
Status: Merged
Merged at revision: not available
Proposed branch: lp:~bzr/bzr/parent-directories
Merge into: lp:~bzr/bzr/trunk-old
Diff against target: 39 lines
To merge this branch: bzr merge lp:~bzr/bzr/parent-directories
Reviewer Review Type Date Requested Status
Martin Pool Approve
Review via email: mp+6673@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ian Clatworthy (ian-clatworthy) wrote :

This patch is one of the building blocks for faster selective file commit.

Revision history for this message
Martin Pool (mbp) wrote :

I think this is a good example of a function where a doctest would be easy to add and make the meaning more clear.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bzrlib/osutils.py'
--- bzrlib/osutils.py 2009-05-16 08:21:11 +0000
+++ bzrlib/osutils.py 2009-05-18 11:35:18 +0000
@@ -867,6 +867,16 @@
867 return pathjoin(*p)867 return pathjoin(*p)
868868
869869
870def parent_directories(filename):
871 """Return the list of parent directories, deepest first."""
872 parents = []
873 parts = splitpath(dirname(filename))
874 while parts:
875 parents.append(joinpath(parts))
876 parts.pop()
877 return parents
878
879
870try:880try:
871 from bzrlib._chunks_to_lines_pyx import chunks_to_lines881 from bzrlib._chunks_to_lines_pyx import chunks_to_lines
872except ImportError:882except ImportError:
873883
=== modified file 'bzrlib/tests/test_osutils.py'
--- bzrlib/tests/test_osutils.py 2009-05-07 05:08:46 +0000
+++ bzrlib/tests/test_osutils.py 2009-05-18 11:35:18 +0000
@@ -860,6 +860,15 @@
860 self.assertRaises(errors.BzrError, osutils.splitpath, 'a/../b')860 self.assertRaises(errors.BzrError, osutils.splitpath, 'a/../b')
861861
862862
863class TestParentDirectories(tests.TestCaseInTempDir):
864 """Test osutils.parent_directories()"""
865
866 def test_parent_directories(self):
867 self.assertEqual([], osutils.parent_directories('a'))
868 self.assertEqual(['a'], osutils.parent_directories('a/b'))
869 self.assertEqual(['a/b', 'a'], osutils.parent_directories('a/b/c'))
870
871
863class TestMacFuncsDirs(tests.TestCaseInTempDir):872class TestMacFuncsDirs(tests.TestCaseInTempDir):
864 """Test mac special functions that require directories."""873 """Test mac special functions that require directories."""
865874