aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/tests/vcs
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-11-05 19:57:29 +0100
committerMarcin Kuzminski <marcin@python-works.com>2012-11-05 19:57:29 +0100
commit2ef9943a71f1b8abab06df77ab638ff7596b0005 (patch)
tree03036b446dddf221ce0f74d4dcb75c87ceae4528 /rhodecode/tests/vcs
parent0797edac787a4c723eb1b01cb9fcda28f3fec3bf (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.py9
-rw-r--r--rhodecode/tests/vcs/test_repository.py13
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 @@