- Nov 03, 2012
-
-
David M. Carr authored
Now that we're in the unified test format, there isn't a need to use echo to provide context to command output. This technique actually ends up resulting in redundant output. To preserve the original context, but eliminate the redundancy, such echo statements have been converted into comment lines.
-
David M. Carr authored
Mercurial allows specifying which repository to use via the -R/--repository option. Git allows a similar function using the --git-dir option. By using these options, in many cases we can avoid checking the current directory. This makes tests easier to understand, as you don't need to remember which directory you're in to understand what's going on. It also makes tests easier to write, as you don't need to remember to cd out of a directory when you're done doing things there. Thanks to Felipe Contreras for the patch which this was based on.
-
David M. Carr authored
One or both of these requirements were in almost every test in exactly the same way. Now, these checks are performed in every test that uses the testutil. This makes it easier for test authors to add these checks into new tests (just add a reference to the testutil, which you'd probably want anyway). We considered having each test declare their requirements (currently, either "git" or "dulwich"), but in this case, preferred the simplicity of having the check always performed (even if a particular test doesn't need one or the other). You can't perform any meaningful testing of Hg-Git without both of these dependencies properly configured. The main value to checking for them in the tests (rather than just letting the tests fail) is that it gives a meaningful error message to help people figure out how to fix their environment. In the case that either git or dulwich is missing, the information will be just as clearly conveyed regardless of whether its all the tests that are skipped, or just most of them. I didn't add dulwich to hghave (even though this is clearly the sort of thing that hghave is intended for) because hghave is currently pulled from Mercurial completely unchanged, and it's probably best to keep it that way. Tested by running the tests in three configurations: * No dulwich installed (ran 0, skipped 28, failed 0, output: Skipped *: missing feature: dulwich) * Bad git on path (ran 1, skipped 27, failed 0, output: Skipped *: missing feature: git command line client) * Working git and correct version of dulwich installed (ran 28, skipped 0, failed 0) Thanks to Felipe Contreras for the idea to extract this logic into a library.
-
- Oct 31, 2012
-
-
David M. Carr authored
It's functionally equivalent to create a directory, cd into it, git init, and cd out of the directory, or simply git init with the directory specified. In several cases, we were doing the former without performing any other operations in the git repo, which just made the test unneccesarily complex. Even in the case where we still want to cd into the directory, calling git init with the directory name eliminates the need for a separate mkdir command. This changeset converts the former approach to the latter with the goal of increasing the readability of the tests. Thanks to Felipe Contreras for the patch which this was based on.
-
David M. Carr authored
Previously, if dulwich wasn't available, this test would fail with a traceback (example included below). This changeset makes it so that the test will be skipped with an informative message if dulwich isn't available. Traceback (most recent call last): File "/Users/carrd/hg-repos/hg-git-queue/tests/test-url-parsing.py", line 6, in <module> from hggit.git_handler import GitHandler File "/Users/carrd/hg-repos/hg-git-queue/tests/../hggit/__init__.py", line 42, in <module> import gitrepo, hgrepo File "/Users/carrd/hg-repos/hg-git-queue/tests/../hggit/gitrepo.py", line 13, in <module> from git_handler import GitHandler File "/Users/carrd/hg-repos/hg-git-queue/tests/../hggit/git_handler.py", line 4, in <module> from dulwich.errors import HangupException, GitProtocolError, UpdateRefsError ImportError: No module named dulwich.errors
-
David M. Carr authored
Thanks to Felipe Contreras for the patch which this was based on. The functions were renamed to make it clearer that these are shell functions rather than normal git/hg commands, and to make it clearer which tool is being invoked. Old name | New name ------------------------ commit | fn_git_commit tag | fn_git_tag hgcommit | fn_hg_commit hgtag | fn_hg_tag Extraction from test-encoding.t was left for a subsequent patch, as I was seeing unexpected output changes when I attempted the extraction. The gitcommit and hgcommit functions in test-bookmark-workflow.t were left as-is for now, as they have a different behavior than the standard version (separate counters for each).
-
David M. Carr authored
Thanks to Felipe Contreras for the patch which this was based on. Even though the MQ extension was only used in a single test (test-pull-after-strip.t), I included it in the testutil. It shouldn't hurt anything to have it enabled and not used, and saves us from having to deal with enabling extensions in individual tests at all. Similarly, this changeset results in the graphlog extension being enabled for all tests, even though there were some that didn't use it before. This is even less significant in Mercurial 2.3+, since in those versions, graphlog is part of core, and is available even when the extension is disabled.
-
- Nov 01, 2012
- Oct 30, 2012
-
-
David M. Carr authored
This check is a remnant from back when we were using git-daemon in the tests.
-
durin42 authored
-
durin42 authored
-
David M. Carr authored
This isn't a real implementation of phases support. Rather, it's just enough to avoid the traceback. Traceback (most recent call last): File "/usr/local/share/python/hg", line 38, in <module> mercurial.dispatch.run() File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 28, in run sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 65, in dispatch return _runcatch(req) File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 88, in _runcatch return _dispatch(req) File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 741, in _dispatch cmdpats, cmdoptions) File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 514, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 831, in _runcommand return checkargs() File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 802, in checkargs return cmdfunc() File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 738, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 472, in check return func(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line 3942, in incoming return hg.incoming(ui, repo, source, opts) File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 525, in incoming return _incoming(display, subreporecurse, ui, repo, source, opts) File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 494, in _incoming displaychlist(other, chlist, displayer) File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 524, in display displayer.show(other[n]) File "/usr/local/lib/python2.7/site-packages/mercurial/cmdutil.py", line 670, in show self._show(ctx, copies, matchfn, props) File "/usr/local/lib/python2.7/site-packages/mercurial/cmdutil.py", line 691, in _show label='log.changeset changeset.%s' % ctx.phasestr()) File "/usr/local/lib/python2.7/site-packages/mercurial/context.py", line 203, in phasestr return phases.phasenames[self.phase()] File "/usr/local/lib/python2.7/site-packages/mercurial/context.py", line 201, in phase return self._repo._phasecache.phase(self._repo, self._rev) AttributeError: 'overlaychangectx' object has no attribute '_repo'
-
- Oct 29, 2012
-
-
David M. Carr authored
In converting this test to the unified format, it looks like we missed this line. It was accidentally being treated as a comment rather than executable.
-
David M. Carr authored
Now that hghave git works properly, uncomment the calls, and add ones that were missing.
-
David M. Carr authored
Previously, the hghave checks that were commented out in the tests were broken if uncommented. One cause was that it was expecting hghave in the testdir, while our testdir didn't contain hghave. Now it does. The hghave was pulled unmodified from Mercurial 2.3, to match the version of run-tests.py in use.
-
David M. Carr authored
Eliminate a find that would always return 0, based on an example in git_handler update_hg_bookmarks.
-
- Oct 27, 2012
-
-
David M. Carr authored
This should fix a bug introduced by 4f4ab2d89375 which caused all tags to be duplicated as bookmarks on pull. Test coverage has been added for pull to allow verifying the fix.
-
David M. Carr authored
This test wasn't actually testing anything to do with pulling.
-
- Oct 26, 2012
-
-
durin42 authored
-
David M. Carr authored
When communicating with the user on push/outgoing, Mercurial doesn't show a "exporting hg objects to git" message, so we shouldn't. The message has been changed to be shown if --verbose is specified.
-
David M. Carr authored
When communicating with the user on push, Mercurial doesn't show much on success. Currently, Hg-Git shows every changed ref. After this change, the default output will more closely match Mercurial's regular behavior (no per-ref output), while changed refs will be shown if --verbose is specified, and all refs will be shown if --debug is specified.
-
David M. Carr authored
-
David M. Carr authored
This changeset adds test coverage for comparing "hg outgoing -B" in normal Mercurial usage with Hg-Git usage. This didn't match, since previously, gitrepo didn't provide a meaningful listkeys implementation. Now, it does. gitrepo now has access to a GitHandler when a localrepo is available. This handler is used to access the information needed to implement listkeys for namespaces (currently, only bookmarks) and bookmarks. A couple of other tests were testing "divergent bookmark" scenarios. These tests have been updated to filter out the divergent bookmark output, as it isn't consistent across the supported Mercurial versions.
-
- Oct 25, 2012
-
-
David M. Carr authored
This change wraps hg.peer to allow for capturing the repo object. It is then passed in to new gitrepo instanceds. This will be needed to implement later functionality, such as richer bookmark support using pushkeys.
-
David M. Carr authored
In the logic that was attempting to handle the case where the local repo doesn't have any bookmarks, the assumption was being made that tip resolved to a non-null revision. In the case of a totally empty local repo, however, that isn't a valid assumption, and resulted in attempting to set the master ref to None, which broke dulwich. The "fix", which avoids the traceback and allows the push to complete (though still do nothing, since in this case there aren't any changes to push), is to not tweak the refs at all if tip is nullid. Leaving the special capabilities ref and not adding a master ref appears to be fine in this case.
-
- Oct 18, 2012
-
-
Jordi Gutiérrez Hermoso authored
Python 2.4 does not have a with-statement
-
- Oct 17, 2012
- Oct 08, 2012
-
-
David M. Carr authored
test-bookmark-workflow.t now skips all Mercurial versions below 2.1, as the return code is different, and it's more important for this test to accurately show that we match the behavior of current Mercurial than that all versions behave the same.
-
David M. Carr authored
The output for "hg push" when there were no changes didn't quite match between Mercurial with and without Hg-Git, so I changed the behavior to bring it into synch. The existing "creating and sending data" message was changed to be included if --verbose is specified.
-
- Oct 07, 2012
-
-
David M. Carr authored
-
David M. Carr authored
-
David M. Carr authored
I was seeing sporadic failures running this test on Mac OS X 10.8. They looked like this: + sed: 1: "s_/private/var/folders/ ...": bad flag in substitute command: 'T' My assumption is that some character was being included in the path of the temporary directory that sed didn't like. It looks like the sed function was being used to eliminate differences between test runs due to the path changing each run. That isn't needed any more now that we're using the unified test format, since said replacement is taken care of for us by run-tests.py. Thus, this changeset removes the calls to sed and updates the output to use the result from the framework-level replacement.
-
- Sep 28, 2012
-
-
David M. Carr authored
Mercurial has support for including information about the tested versions of Mercurial for an extension when it detects that an extension has broken. This change includes the appropriate attribute in the extension.
-
David M. Carr authored
Mercurial has support for including a link to an issue tracker when it detects that an extension has broken. This change includes the appropriate attribute in the extension, pointing it at the issue tracker for the main BitBucket repo.
-
David M. Carr authored
There was a bug introduced in 8c1f2b07c04b such that calling hg outgoing on a Git repository would result in all refs being deleted from the remote repository (with the possible exception of the currently checked out branch). It wasn't noticed before because the existing test for outgoing didn't actually verify the refs on the remote. This changeset fixes the bug, as well as adding test coverage to allow verifying that the fix works.
-
- Sep 22, 2012
-
-
Gregory Szorc authored
When exporting Git commits, verify that the tree and parents objects exist in the repository before allowing the commit to be exported. If a tree or parent commit is missing, then the repository is not valid and the export should not be allowed.
-
Gregory Szorc authored
-