diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-11-05 19:57:29 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-11-05 19:57:29 +0100 |
commit | 2ef9943a71f1b8abab06df77ab638ff7596b0005 (patch) | |
tree | 03036b446dddf221ce0f74d4dcb75c87ceae4528 /rhodecode/tests/vcs | |
parent | 0797edac787a4c723eb1b01cb9fcda28f3fec3bf (diff) |
Implemented generation of changesets based
on whole diff instead of per file diff. That
can give a big speed improvement for large changesets in
repositories with large history.
- improved handling of binary files
- show renames of binary files
- implemented new diff limit functionality
- unify diff generation between hg and git
- Added binary indicators for changed files,
- added diff lib tests
--HG--
branch : beta
extra : amend_source : 0648fbfbaf56e25c177ab5c34ba75a9edd227561
Diffstat (limited to 'rhodecode/tests/vcs')
-rw-r--r-- | rhodecode/tests/vcs/test_git.py | 9 | ||||
-rw-r--r-- | rhodecode/tests/vcs/test_repository.py | 13 |
2 files changed, 13 insertions, 9 deletions
diff --git a/rhodecode/tests/vcs/test_git.py b/rhodecode/tests/vcs/test_git.py index f43e1542..707453e6 100644 --- a/rhodecode/tests/vcs/test_git.py +++ b/rhodecode/tests/vcs/test_git.py @@ -640,19 +640,22 @@ class GitSpecificWithRepoTest(BackendTestMixin, unittest.TestCase): def test_get_diff_runs_git_command_with_hashes(self): self.repo.run_git_command = mock.Mock(return_value=['', '']) self.repo.get_diff(0, 1) - self.repo.run_git_command.assert_called_once_with('diff -U%s %s %s' % + self.repo.run_git_command.assert_called_once_with( + 'diff -U%s --full-index --binary -p -M --abbrev=40 %s %s' % (3, self.repo._get_revision(0), self.repo._get_revision(1))) def test_get_diff_runs_git_command_with_str_hashes(self): self.repo.run_git_command = mock.Mock(return_value=['', '']) self.repo.get_diff(self.repo.EMPTY_CHANGESET, 1) - self.repo.run_git_command.assert_called_once_with('show -U%s %s' % + self.repo.run_git_command.assert_called_once_with( + 'show -U%s --full-index --binary -p -M --abbrev=40 %s' % (3, self.repo._get_revision(1))) def test_get_diff_runs_git_command_with_path_if_its_given(self): self.repo.run_git_command = mock.Mock(return_value=['', '']) self.repo.get_diff(0, 1, 'foo') - self.repo.run_git_command.assert_called_once_with('diff -U%s %s %s -- "foo"' + self.repo.run_git_command.assert_called_once_with( + 'diff -U%s --full-index --binary -p -M --abbrev=40 %s %s -- "foo"' % (3, self.repo._get_revision(0), self.repo._get_revision(1))) diff --git a/rhodecode/tests/vcs/test_repository.py b/rhodecode/tests/vcs/test_repository.py index 997f5cde..de7fcd0d 100644 --- a/rhodecode/tests/vcs/test_repository.py +++ b/rhodecode/tests/vcs/test_repository.py @@ -74,6 +74,7 @@ class RepositoryGetDiffTest(BackendTestMixin): with self.assertRaises(ChangesetDoesNotExistError): self.repo.get_diff('a' * 40, 'b' * 40) + class GitRepositoryGetDiffTest(RepositoryGetDiffTest, unittest.TestCase): backend_alias = 'git' @@ -81,7 +82,7 @@ class GitRepositoryGetDiffTest(RepositoryGetDiffTest, unittest.TestCase): initial_rev = self.repo.revisions[0] self.assertEqual(self.repo.get_diff(self.repo.EMPTY_CHANGESET, initial_rev), '''diff --git a/foobar b/foobar new file mode 100644 -index 0000000..f6ea049 +index 0000000000000000000000000000000000000000..f6ea0495187600e7b2288c8ac19c5886383a4632 --- /dev/null +++ b/foobar @@ -0,0 +1 @@ @@ -89,7 +90,7 @@ index 0000000..f6ea049 \ No newline at end of file diff --git a/foobar2 b/foobar2 new file mode 100644 -index 0000000..e8c9d6b +index 0000000000000000000000000000000000000000..e8c9d6b98e3dce993a464935e1a53f50b56a3783 --- /dev/null +++ b/foobar2 @@ -0,0 +1 @@ @@ -100,7 +101,7 @@ index 0000000..e8c9d6b def test_second_changeset_diff(self): revs = self.repo.revisions self.assertEqual(self.repo.get_diff(revs[0], revs[1]), '''diff --git a/foobar b/foobar -index f6ea049..389865b 100644 +index f6ea0495187600e7b2288c8ac19c5886383a4632..389865bb681b358c9b102d79abd8d5f941e96551 100644 --- a/foobar +++ b/foobar @@ -1 +1 @@ @@ -110,7 +111,7 @@ index f6ea049..389865b 100644 \ No newline at end of file diff --git a/foobar3 b/foobar3 new file mode 100644 -index 0000000..c11c37d +index 0000000000000000000000000000000000000000..c11c37d41d33fb47741cff93fa5f9d798c1535b0 --- /dev/null +++ b/foobar3 @@ -0,0 +1 @@ @@ -122,14 +123,14 @@ index 0000000..c11c37d revs = self.repo.revisions self.assertEqual(self.repo.get_diff(revs[1], revs[2]), '''diff --git a/foobar b/foobar deleted file mode 100644 -index 389865b..0000000 +index 389865bb681b358c9b102d79abd8d5f941e96551..0000000000000000000000000000000000000000 --- a/foobar +++ /dev/null @@ -1 +0,0 @@ -FOOBAR \ No newline at end of file diff --git a/foobar3 b/foobar3 -index c11c37d..f932447 100644 +index c11c37d41d33fb47741cff93fa5f9d798c1535b0..f9324477362684ff692aaf5b9a81e01b9e9a671c 100644 --- a/foobar3 +++ b/foobar3 @@ -1 +1,3 @@ |