You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/03/07 18:47:38 UTC

[3/3] git commit: [#5854] Fixed SVN.last_commit_ids when given a single path

Updated Branches:
  refs/heads/master 86b650abe -> 4e1b45015


[#5854] Fixed SVN.last_commit_ids when given a single path

Signed-off-by: Cory Johns <jo...@geek.net>


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/368bea02
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/368bea02
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/368bea02

Branch: refs/heads/master
Commit: 368bea026efa7fd1fb89428465c0ecc4fcbe47bc
Parents: 86b650a
Author: Cory Johns <jo...@geek.net>
Authored: Thu Feb 28 22:27:22 2013 +0000
Committer: Dave Brondsema <db...@geek.net>
Committed: Thu Mar 7 17:47:23 2013 +0000

----------------------------------------------------------------------
 ForgeSVN/forgesvn/model/svn.py                     |    7 ++++++-
 .../forgesvn/tests/model/test_svnimplementation.py |    9 ++++++---
 2 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/368bea02/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index cdafa9d..ca0e8ac 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -587,7 +587,11 @@ class SVNImplementation(M.RepositoryImplementation):
         single common parent path (i.e., you are only asking for
         a subset of the nodes of a single tree, one level deep).
         '''
-        tree_path = '/' + os.path.commonprefix(paths).strip('/')  # always leading slash, never trailing
+        if len(paths) == 1:
+            tree_path = '/' + os.path.dirname(paths[0].strip('/'))
+        else:
+            tree_path = '/' + os.path.commonprefix(paths).strip('/')  # always leading slash, never trailing
+        paths = [path.strip('/') for path in paths]
         rev = self._revision(commit._id)
         try:
             infos = self._svn.info2(
@@ -600,6 +604,7 @@ class SVNImplementation(M.RepositoryImplementation):
             return None
         entries = {}
         for path, info in infos[1:]:
+            path = os.path.join(tree_path, path).strip('/')
             if path in paths:
                 entries[path] = self._oid(info.last_changed_rev.number)
         return entries

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/368bea02/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
index 3a5ae5d..a4e1e47 100644
--- a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
+++ b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
@@ -45,11 +45,14 @@ class TestSVNImplementation(object):
     def _test_last_commit_ids(self, path):
         repo = Mock(fs_path='/tmp/')
         repo.name = 'code'
+        repo._id = '5057636b9c1040636b81e4b1'
         impl = SVNImplementation(repo)
         impl._svn.info2 = Mock()
-        impl._svn.info2.return_value = [('foo', Mock())]
+        impl._svn.info2.return_value = [('trunk', Mock()), ('foo', Mock())]
+        impl._svn.info2.return_value[1][1].last_changed_rev.number = '1'
         commit = Commit()
         commit._id = '5057636b9c1040636b81e4b1:6'
-        tree_id = impl.last_commit_ids(commit, [path])
+        entries = impl.last_commit_ids(commit, [path])
 
-        assert_equal(impl._svn.info2.call_args[0][0], 'file:///tmp/code/trunk/foo')
+        assert_equal(entries, {path.strip('/'): '5057636b9c1040636b81e4b1:1'})
+        assert_equal(impl._svn.info2.call_args[0][0], 'file:///tmp/code/trunk')