Mercurial > hgsubversion
view tests/test_diff.py @ 762:c31a1f92e1c6
svnexternals: preliminary support for subrepos based externals
At this point, only pulling externals definitions into .hgsub and .hgsubstate
is supported. One difference between subrepos and svn:externals is the former
separate the source definition and target revision in two files, while
svn:externals definitions contain both. To handle this, the svn:externals
revision references is replaced with a {REV} placeholder and stored in .hgsub,
prefixed with the external base directory separated with a ':', while the
revision is extracted in .hgsubstate.
For instance, the following external:
-r3 ^/externals/proj2@2 deps/proj2
Becomes:
(.hgsub)
deps/proj2 = [hgsubversion] :-r{REV} ^/externals/proj2@2 deps/proj2
(.hgsubstate)
3 deps/proj2
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 25 Nov 2010 21:55:21 +0100 |
parents | 95abc4cfc78f |
children | e9af7eba88db |
line wrap: on
line source
import test_util import unittest from mercurial import ui from hgsubversion import wrappers expected_diff_output = '''Index: alpha =================================================================== --- alpha\t(revision 3) +++ alpha\t(working copy) @@ -1,1 +1,3 @@ -file: alpha +alpha + +added line Index: foo =================================================================== new file mode 100644 --- foo\t(revision 0) +++ foo\t(working copy) @@ -0,0 +1,1 @@ +This is missing a newline. \ No newline at end of file ''' class DiffTests(test_util.TestBase): def test_diff_output(self): self._load_fixture_and_fetch('two_revs.svndump') self.commitchanges([('foo', 'foo', 'This is missing a newline.'), ('alpha', 'alpha', 'alpha\n\nadded line\n'), ]) u = ui.ui() u.pushbuffer() wrappers.diff(lambda x,y,z: None, u, self.repo, svn=True) self.assertEqual(u.popbuffer(), expected_diff_output) def suite(): all = [unittest.TestLoader().loadTestsFromTestCase(DiffTests), ] return unittest.TestSuite(all)