You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/10/02 18:29:45 UTC

[1/7] git commit: [#5775] ticket:433 fixed filesize after copied from link

Updated Branches:
  refs/heads/master 2080faea4 -> 4c1f101ad


[#5775] ticket:433  fixed filesize after copied from link


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

Branch: refs/heads/master
Commit: 7b9db7ba20bc48d90bb32886c200628f33d9589e
Parents: baed285
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Tue Oct 1 13:59:04 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:30 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py              | 2 ++
 ForgeGit/forgegit/tests/model/test_repository.py | 2 ++
 2 files changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7b9db7ba/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index fa62c23..b1c621b 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -326,6 +326,8 @@ class GitImplementation(M.RepositoryImplementation):
                         size = node.size if node.type == 'blob' else None
                     except KeyError as e:
                         size = None
+                    if rename_details:
+                        path = rename_details['path'].strip('/')
                 yield {
                         'id': ci.hexsha,
                         'message': h.really_unicode(ci.message or '--none--'),

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7b9db7ba/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index 365060d..a494886 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -575,6 +575,8 @@ class TestGitRename(unittest.TestCase):
             rename_commit['rename_details']['commit_url'],
             '/p/test/src-git/ci/fbb0644603bb6ecee3ebb62efe8c86efc9b84ee6/'
         )
+        self.assertEqual(rename_commit['size'], 19)
+        self.assertEqual(commits[2]['size'], 19)
 
     def test_merge_commit(self):
         merge_sha = '13951944969cf45a701bf90f83647b309815e6d5'


[2/7] git commit: [#5775] ticket:433 set the old rev for copied from link

Posted by jo...@apache.org.
[#5775] ticket:433  set the old rev for copied from link


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

Branch: refs/heads/master
Commit: 7ed43a970c6455f20c24d0103e64c1c1350749ab
Parents: b96a011
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Tue Oct 1 03:33:23 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:30 2013 +0000

----------------------------------------------------------------------
 Allura/allura/templates/widgets/repo/log.html    | 8 ++++++--
 ForgeGit/forgegit/model/git_repo.py              | 6 ++----
 ForgeGit/forgegit/tests/model/test_repository.py | 4 ++--
 3 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7ed43a97/Allura/allura/templates/widgets/repo/log.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/repo/log.html b/Allura/allura/templates/widgets/repo/log.html
index ec6b048..f526a07 100644
--- a/Allura/allura/templates/widgets/repo/log.html
+++ b/Allura/allura/templates/widgets/repo/log.html
@@ -18,6 +18,7 @@
 -#}
 {% from 'allura:templates/jinja_master/lib.html' import user_link, abbr_date with context %}
 {% set app = app or c.app %}
+{% set path = request.params.get('path', '')%}
 <div>
   {%if is_file%}
   <div class="grid-19"><input type="button" value="Compare" class="compare_revision"></div>
@@ -68,13 +69,16 @@
             {% if commit.committed.date %}{{commit.committed.date|datetimeformat}}{% endif %}
           </td>
           <td style="text-align: left; vertical-align: text-top">
-              <a class="browse" href="{{app.repo.url_for_commit(commit.id)}}tree{{request.params.get('path', '')}}">
+              <a class="browse" href="{{app.repo.url_for_commit(commit.id)}}tree{{path}}">
                   {{ 'View' if is_file else 'Tree' }}
               </a>
               {%if is_file%}
               <br/>
-              <a class="download" href="{{app.repo.url_for_commit(commit.id)}}tree{{request.params.get('path', '')}}?format=raw">Download</a>
+              <a class="download" href="{{app.repo.url_for_commit(commit.id)}}tree{{path}}?format=raw">Download</a>
               {%endif%}
+              {% if commit.rename_details %}
+                  {%set path=commit.rename_details['path']%}
+              {% endif %}
           </td>
         </tr>
       {% endfor %}

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7ed43a97/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index 955c9b3..cb16763 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -313,8 +313,9 @@ class GitImplementation(M.RepositoryImplementation):
                 if path:
                     if renamed and renamed['to'] == path:
                         rename_details['path'] = '/' + renamed['from']
+                        revisions = [revision for revision in self._git.iter_commits(revs, renamed['from'])]
                         rename_details['commit_url'] = self._repo.url_for_commit(
-                            ci.hexsha
+                            revisions[1].hexsha
                         )
 
                     try:
@@ -340,9 +341,6 @@ class GitImplementation(M.RepositoryImplementation):
                         'size': size,
                         'rename_details': rename_details,
                     }
-                if rename_details:
-                    # we do not need to show commits before rename
-                    break
 
     def _iter_commits_with_refs(self, *args, **kwargs):
         """

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7ed43a97/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index 575ccba..365060d 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -568,12 +568,12 @@ class TestGitRename(unittest.TestCase):
     def test_renamed_file(self):
         # There was a file f.txt, then it was renamed to f2.txt.
         commits = list(self.repo.log(id_only=False, path='/f2.txt'))
-        self.assertEqual(len(commits), 2)
+        self.assertEqual(len(commits), 4)
         rename_commit = commits[1]
         self.assertEqual(rename_commit['rename_details']['path'], '/f.txt')
         self.assertEqual(
             rename_commit['rename_details']['commit_url'],
-            self.repo.url_for_commit(rename_commit['id'])
+            '/p/test/src-git/ci/fbb0644603bb6ecee3ebb62efe8c86efc9b84ee6/'
         )
 
     def test_merge_commit(self):


[5/7] git commit: [#5775] ticket:433 fixed filesize for svn repo after copied from link

Posted by jo...@apache.org.
[#5775] ticket:433  fixed filesize for svn repo after copied from link


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

Branch: refs/heads/master
Commit: b1dd28a6f33d0d5b5325f0cc404880d78f4198ea
Parents: 7b9db7b
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Tue Oct 1 16:07:44 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:31 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/tests/functional/test_controllers.py | 11 +++++++++++
 ForgeSVN/forgesvn/model/svn.py                         |  7 +++++--
 2 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b1dd28a6/ForgeGit/forgegit/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index 919e97b..9a78579 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -590,3 +590,14 @@ class TestGitRename(TestController):
         resp = self.app.get('/src-git/ci/259c77dd6ee0e6091d11e429b56c44ccbf1e64a3/log/?path=/f2.txt')
         assert '<b>renamed from</b>' in resp
         assert '/f.txt' in resp
+        assert '(27 Bytes)' in resp
+        assert '(19 Bytes)' in resp
+
+        resp = self.app.get('/src-git/ci/fbb0644603bb6ecee3ebb62efe8c86efc9b84ee6/log/?path=/f.txt')
+        assert '(19 Bytes)' in resp
+        assert '(10 Bytes)' in resp
+
+        resp = self.app.get('/src-git/ci/7c09182e61af959e4f1fb0e354bab49f14ef810d/tree/f.txt')
+        assert "2 lines (1 with data), 10 Bytes" in resp
+
+

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b1dd28a6/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index ec8d991..24e8bdd 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -565,8 +565,9 @@ class SVNImplementation(M.RepositoryImplementation):
 
     def _map_log(self, ci, url, path=None):
         revno = ci.revision.number
+        rev = pysvn.Revision(pysvn.opt_revision_kind.number, revno)
         try:
-            size = int(self._svn.list(url)[0][0].size)
+            size = int(self._svn.list(url, revision=rev, peg_revision=rev)[0][0].size)
         except pysvn.ClientError:
             size = None
         rename_details = {}
@@ -606,9 +607,11 @@ class SVNImplementation(M.RepositoryImplementation):
 
     def blob_size(self, blob):
         try:
+            rev = self._revision(blob.commit._id)
             data = self._svn.list(
                    self._url + blob.path(),
-                   revision=self._revision(blob.commit._id),
+                   revision=rev,
+                   peg_revision=rev,
                    dirent_fields=pysvn.SVN_DIRENT_SIZE)
         except pysvn.ClientError:
             log.info('ClientError getting filesize %r %r, returning 0', blob.path(), self._repo, exc_info=True)


[4/7] git commit: [#5775] ticket:433 Don't traverse all commits when just second needed

Posted by jo...@apache.org.
[#5775] ticket:433 Don't traverse all commits when just second needed


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

Branch: refs/heads/master
Commit: baed28595e097eb8fc4b1ab51fdbee93065c92a4
Parents: 7ed43a9
Author: Igor Bondarenko <je...@gmail.com>
Authored: Tue Oct 1 11:30:20 2013 +0300
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:30 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/baed2859/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index cb16763..fa62c23 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -313,9 +313,12 @@ class GitImplementation(M.RepositoryImplementation):
                 if path:
                     if renamed and renamed['to'] == path:
                         rename_details['path'] = '/' + renamed['from']
-                        revisions = [revision for revision in self._git.iter_commits(revs, renamed['from'])]
+                        # get first rev **before** rename
+                        _iter = self._git.iter_commits(revs, renamed['from'])
+                        prev_rev = next(_iter)
+                        prev_rev = next(_iter)
                         rename_details['commit_url'] = self._repo.url_for_commit(
-                            revisions[1].hexsha
+                            prev_rev.hexsha
                         )
 
                     try:


[6/7] git commit: [#5775] ticket:433 fixed "size" in test_log_file

Posted by jo...@apache.org.
[#5775] ticket:433  fixed "size" in test_log_file


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

Branch: refs/heads/master
Commit: 4478bf39844e383eee5e35eb11f4c9d54b1f7416
Parents: b1dd28a
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Tue Oct 1 16:45:22 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:31 2013 +0000

----------------------------------------------------------------------
 ForgeSVN/forgesvn/tests/model/test_repository.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/4478bf39/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 2a69339..e7864e5 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -314,7 +314,7 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Create readme',
              'parents': [],
              'refs': [],
-             'size': 28,
+             'size': 15,
              'rename_details': {}},
             ])
 


[7/7] git commit: [#5775] Minor change to ensure git process doesn't do any extra work in the background

Posted by jo...@apache.org.
[#5775] Minor change to ensure git process doesn't do any extra work in the background

Signed-off-by: Cory Johns <cj...@slashdotmedia.com>


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

Branch: refs/heads/master
Commit: 4c1f101ad028f5018d6aed31feabc7c0df5626f9
Parents: 4478bf3
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Wed Oct 2 16:29:01 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 16:29:01 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/4c1f101a/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index b1c621b..3efc519 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -314,9 +314,8 @@ class GitImplementation(M.RepositoryImplementation):
                     if renamed and renamed['to'] == path:
                         rename_details['path'] = '/' + renamed['from']
                         # get first rev **before** rename
-                        _iter = self._git.iter_commits(revs, renamed['from'])
-                        prev_rev = next(_iter)
-                        prev_rev = next(_iter)
+                        _iter = self._git.iter_commits(revs, renamed['from'], max_count=2)
+                        prev_rev = list(_iter)[1]
                         rename_details['commit_url'] = self._repo.url_for_commit(
                             prev_rev.hexsha
                         )


[3/7] git commit: [#5775] ticket:433 Allura Code Viewer: "copied from" improvements

Posted by jo...@apache.org.
[#5775] ticket:433 Allura Code Viewer: "copied from" improvements


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

Branch: refs/heads/master
Commit: b96a01104b954682789e4a15218541844d4c5c70
Parents: 2080fae
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Fri Sep 27 12:32:14 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:40:30 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py              |  2 +-
 ForgeSVN/forgesvn/model/svn.py                   | 15 +++++++++++++--
 ForgeSVN/forgesvn/tests/model/test_repository.py |  6 ++++++
 3 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b96a0110/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index 29af6c7..955c9b3 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -393,7 +393,7 @@ class GitImplementation(M.RepositoryImplementation):
                     renamed = {}
                     if len(commit_lines) > 1:  # merge commits don't have any --name-status output
                         name_stat_parts = commit_lines[1].split(' ')
-                        if name_stat_parts[0] == 'R100':
+                        if name_stat_parts[0] in ['R100', 'R096']:
                             renamed['from'] = name_stat_parts[1]
                             renamed['to'] = name_stat_parts[2]
                     yield (git.Commit(self._git, gitdb.util.hex_to_bin(hexsha)), refs, renamed)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b96a0110/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 089572c..ec8d991 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -535,7 +535,7 @@ class SVNImplementation(M.RepositoryImplementation):
         while revno > exclude:
             rev = pysvn.Revision(pysvn.opt_revision_kind.number, revno)
             try:
-                logs = self._svn.log(url, revision_start=rev, limit=page_size,
+                logs = self._svn.log(url, revision_start=rev, peg_revision=rev, limit=page_size,
                     discover_changed_paths=True)
             except pysvn.ClientError as e:
                 if 'Unable to connect' in e.message:
@@ -553,6 +553,16 @@ class SVNImplementation(M.RepositoryImplementation):
                 return  # we didn't get a full page, don't bother calling SVN again
             revno = ci.revision.number - 1
 
+    def _check_changed_path(self, changed_path, path):
+        if (changed_path['copyfrom_path'] and
+                    changed_path['path'] and
+                    path and
+                    (len(changed_path['path']) < len(path)) and
+                    path.startswith(changed_path['path'])):
+                changed_path['copyfrom_path'] = changed_path['copyfrom_path'] + path[len(changed_path['path']):]
+                changed_path['path'] = path
+        return changed_path
+
     def _map_log(self, ci, url, path=None):
         revno = ci.revision.number
         try:
@@ -562,6 +572,7 @@ class SVNImplementation(M.RepositoryImplementation):
         rename_details = {}
         changed_paths = ci.get('changed_paths', [])
         for changed_path in changed_paths:
+            changed_path = self._check_changed_path(changed_path, path)
             if changed_path['copyfrom_path'] and changed_path['path'] == path and changed_path['action'] == 'A':
                 rename_details['path'] = changed_path['copyfrom_path']
                 rename_details['commit_url'] = self._repo.url_for_commit(
@@ -719,7 +730,7 @@ class SVNImplementation(M.RepositoryImplementation):
         url = '/'.join([self._url, path.strip('/')])
         rev = pysvn.Revision(pysvn.opt_revision_kind.number, self._revno(self.rev_parse(rev)))
         try:
-            info = self._svn.list(url, revision=rev, dirent_fields=pysvn.SVN_DIRENT_KIND)[0][0]
+            info = self._svn.list(url, revision=rev, peg_revision=rev, dirent_fields=pysvn.SVN_DIRENT_KIND)[0][0]
             return info.kind == pysvn.node_kind.file
         except pysvn.ClientError:
             return False

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b96a0110/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 2ed5de3..2a69339 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -1050,3 +1050,9 @@ class TestRename(unittest.TestCase):
             entry['rename_details']['commit_url'],
             self.repo.url_for_commit(2)  # previous revision
         )
+
+    def test_check_changed_path(self):
+        changed_path = {'copyfrom_path':'/test/path', 'path':'/test/path2'}
+        result = self.repo._impl._check_changed_path(changed_path, '/test/path2/file.txt')
+        assert_equal({'path': '/test/path2/file.txt', 'copyfrom_path': '/test/path/file.txt'}, result)
+