Hello, I am trying to use svnmerge.py as a library to help with a conversion of a Subversion project to git. (git-svn understands svn:mergeinfo, but it does not understand svnmerge.py metadata, so it needs some help.)
I would like to submit some patches to svnmerge.py that fix a problem that I found and also help make it usable as a library. Before I submitted the patches, I thought I should run the test suite. But... Even with the unpatched version of svnmerge.py (from Subversion trunk [1]), the test suite has some failures: $ ./svnmerge_test.py ..............................................F.EE..E........ [see below for the full output] Quite likely I'm not running the test suite correctly. For example, I haven't compiled Subversion in the checked-out source tree; is that necessary? (I'm running the test using the installed Subversion 1.6.17.) Is the test suite known to be broken? Am I doing something stupid? (Are there instructions somewhere for the correct way to run the test suite?) Thanks, Michael [1] http://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/svnmerge -- Michael Haggerty [email protected] http://softwareswirl.blogspot.com/ > $ ./svnmerge_test.py > ..............................................F.EE..E........ > ====================================================================== > ERROR: Test that uninit works, for both merged and blocked revisions. > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "./svnmerge_test.py", line 751, in testUninit > self.svnmerge2(["init", self.test_repo_url + "/branches/testYYY-branch"]) > File "./svnmerge_test.py", line 256, in svnmerge2 > ret = svnmerge.main(args) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 2361, in main > cmd(branch_dir, branch_props) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 1813, in __call__ > return self.func(*args, **kwargs) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 1354, in action_init > if is_url(cf_url) and check_url(cf_url): > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 942, in check_url > return get_svninfo(url) != {} > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 960, in get_svninfo > for L in launchsvn('info "%s"' % target): > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 325, in launchsvn > return launch(cmd, **kwargs) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 280, in launch > raise LaunchError(p.returncode, cmd, stdout + stderr) > LaunchError: (1, u'svn --non-interactive info > "file:///tmp/__svnmerge_test/repo/branches/testXXX-branch"', > 'file:///tmp/__svnmerge_test/repo/branches/testXXX-branch: (Not a valid > URL)\n\nsvn: A problem occurred; see other errors for details\n') > > ====================================================================== > ERROR: testUninitForce (__main__.TestCase_TestRepo) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "./svnmerge_test.py", line 821, in testUninitForce > self.svnmerge2(["init", self.test_repo_url + "/branches/testYYY-branch"]) > File "./svnmerge_test.py", line 256, in svnmerge2 > ret = svnmerge.main(args) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 2361, in main > cmd(branch_dir, branch_props) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 1813, in __call__ > return self.func(*args, **kwargs) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 1354, in action_init > if is_url(cf_url) and check_url(cf_url): > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 942, in check_url > return get_svninfo(url) != {} > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 960, in get_svninfo > for L in launchsvn('info "%s"' % target): > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 325, in launchsvn > return launch(cmd, **kwargs) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 280, in launch > raise LaunchError(p.returncode, cmd, stdout + stderr) > LaunchError: (1, u'svn --non-interactive info > "file:///tmp/__svnmerge_test/repo/branches/testXXX-branch"', > 'file:///tmp/__svnmerge_test/repo/branches/testXXX-branch: (Not a valid > URL)\n\nsvn: A problem occurred; see other errors for details\n') > > ====================================================================== > ERROR: test_invalid_url (__main__.TestCase_TestRepo) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "./svnmerge_test.py", line 1347, in test_invalid_url > self.assertEqual(svnmerge.get_svninfo("file://foo/bar"), {}) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 960, in get_svninfo > for L in launchsvn('info "%s"' % target): > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 325, in launchsvn > return launch(cmd, **kwargs) > File > "/home/mhagger/self/proj/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py", > line 280, in launch > raise LaunchError(p.returncode, cmd, stdout + stderr) > LaunchError: (1, 'svn --non-interactive info "file://foo/bar"', > 'file://foo/bar: (Not a valid URL)\n\nsvn: A problem occurred; see other > errors for details\n') > > ====================================================================== > FAIL: testTransitiveMergeWithBlock (__main__.TestCase_TestRepo) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "./svnmerge_test.py", line 698, in testTransitiveMergeWithBlock > match=r"Committed revision 20") > File "./svnmerge_test.py", line 496, in launch > return TestCase_SvnMerge.launch(self, cmd, *args, **kwargs) > File "./svnmerge_test.py", line 306, in launch > return self._parseoutput(ret, out, **kwargs) > File "./svnmerge_test.py", line 290, in _parseoutput > "svnmerge failed, with this output:\n%s" % out) > AssertionError: svnmerge failed, with this output: > svn: Commit failed (details follow): > svn: Aborting commit: '/tmp/__svnmerge_test/trunk' remains in conflict > > > ---------------------------------------------------------------------- > Ran 61 tests in 53.759s > > FAILED (failures=1, errors=3) _______________________________________________ Svnmerge mailing list [email protected] http://www.orcaware.com/mailman/listinfo/svnmerge
