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/09/05 20:20:45 UTC

[20/50] git commit: [5775] ticket:404 fixed old tests

[5775] ticket:404 fixed old tests


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

Branch: refs/heads/cj/6596
Commit: 385611c4d50986bfce39cd36d6e1250d0b9df98e
Parents: dd57c98
Author: Anton Kasyanov <mi...@gmail.com>
Authored: Thu Aug 1 14:50:13 2013 +0300
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Thu Aug 29 19:00:44 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py             | 55 +++++++++++---------
 .../forgegit/tests/model/test_repository.py     | 18 ++++---
 2 files changed, 41 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/385611c4/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index f400d56..cee505f 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -301,8 +301,10 @@ class GitImplementation(M.RepositoryImplementation):
         path = path.strip('/') if path else None
         if exclude is not None:
             revs.extend(['^%s' % e for e in exclude])
-
-        for ci, refs in self._iter_commits_with_refs(revs, '--follow', '--', path):
+        args = [revs, '--', path]
+        if path:
+            args.append('--follow')
+        for ci, refs in self._iter_commits_with_refs(*args):
             if id_only:
                 yield ci.hexsha
             else:
@@ -312,30 +314,31 @@ class GitImplementation(M.RepositoryImplementation):
                     # checking for renaming in this commit
                     # log is called with follow, so there should be all commits
                     # even before renaming
-                    diffs_with_parent = ci.diff(ci.parents[0])
-                    deleted_file_diffs = []
-                    renamed = False
-                    for diff in diffs_with_parent:
-                        if not diff.b_mode and not diff.b_blob:
-                            #new file was created
-                            if diff.a_blob.name == os.path.basename(path):
-                                renamed = True
-                        if not diff.a_mode and not diff.a_blob:
-                            #file was deleted
-                            deleted_file_diffs.append(diff)
-                    if renamed:
-                        if len(deleted_file_diffs) > 1:
-                            log.info('Couldn\'t find if file was renamed: too many deletions')
-                        elif len(deleted_file_diffs) == 1:
-                            deleted_diff = deleted_file_diffs[0]
-                            renamed_from['path'] = '{}/{}'.format(
-                                os.path.dirname(path),
-                                deleted_diff.b_blob.name,
-                            )
-                            renamed_from['commit_id'] = ci.hexsha
-                            renamed_from['commit_url'] = self._repo.url_for_commit(
-                                ci.hexsha
-                            )
+                    if ci.parents:
+                        diffs_with_parent = ci.diff(ci.parents[0])
+                        deleted_file_diffs = []
+                        renamed = False
+                        for diff in diffs_with_parent:
+                            if not diff.b_mode and not diff.b_blob:
+                                #new file was created
+                                if diff.a_blob.name == os.path.basename(path):
+                                    renamed = True
+                            if not diff.a_mode and not diff.a_blob:
+                                #file was deleted
+                                deleted_file_diffs.append(diff)
+                        if renamed:
+                            if len(deleted_file_diffs) > 1:
+                                log.info('Couldn\'t find if file was renamed: too many deletions')
+                            elif len(deleted_file_diffs) == 1:
+                                deleted_diff = deleted_file_diffs[0]
+                                renamed_from['path'] = '{}/{}'.format(
+                                    os.path.dirname(path),
+                                    deleted_diff.b_blob.name,
+                                )
+                                renamed_from['commit_id'] = ci.hexsha
+                                renamed_from['commit_url'] = self._repo.url_for_commit(
+                                    ci.hexsha
+                                )
                     try:
                         node = ci.tree/path
                         size = node.size if node.type == 'blob' else None

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/385611c4/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 85777e2..7d7f69b 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -240,7 +240,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Change README\n',
              'parents': ['df30427c488aeab84b2352bdf88a3b19223f9d7a'],
              'refs': ['HEAD', 'foo', 'master'],
-             'size': None},
+             'size': None,
+             'renamed_from': {}},
             {'authored': {'date': datetime.datetime(2010, 10, 7, 18, 44, 1),
                           'email': u'rcopeland@geek.net',
                           'name': u'Rick Copeland'},
@@ -251,7 +252,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Add README\n',
              'parents': ['6a45885ae7347f1cac5103b0050cc1be6a1496c8'],
              'refs': [],
-             'size': None},
+             'size': None,
+             'renamed_from': {}},
             {'authored': {'date': datetime.datetime(2010, 10, 7, 18, 43, 26),
                           'email': u'rcopeland@geek.net',
                           'name': u'Rick Copeland'},
@@ -262,7 +264,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Remove file\n',
              'parents': ['9a7df788cf800241e3bb5a849c8870f2f8259d98'],
              'refs': [],
-             'size': None},
+             'size': None,
+             'renamed_from': {}},
             {'authored': {'date': datetime.datetime(2010, 10, 7, 18, 42, 54),
                           'email': u'rcopeland@geek.net',
                           'name': u'Rick Copeland'},
@@ -273,7 +276,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Initial commit\n',
              'parents': [],
              'refs': [],
-             'size': None},
+             'size': None,
+             'renamed_from': {}},
             ])
 
     def test_log_file(self):
@@ -289,7 +293,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Change README\n',
              'parents': ['df30427c488aeab84b2352bdf88a3b19223f9d7a'],
              'refs': ['HEAD', 'foo', 'master'],
-             'size': 28},
+             'size': 28,
+             'renamed_from': {}},
             {'authored': {'date': datetime.datetime(2010, 10, 7, 18, 44, 1),
                           'email': u'rcopeland@geek.net',
                           'name': u'Rick Copeland'},
@@ -300,7 +305,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
              'message': u'Add README\n',
              'parents': ['6a45885ae7347f1cac5103b0050cc1be6a1496c8'],
              'refs': [],
-             'size': 15},
+             'size': 15,
+             'renamed_from': {}},
             ])
 
     def test_commit(self):