Commits

Author Commit Message Labels Comments Date
Dan Villiom Podlaski Christiansen
__init__: activate & advertise the new help topic.
Dan Villiom Podlaski Christiansen
help: add an rst file containing some helpful instructions The new file contains three sections: The first one is based on the README and contains instructions on how to use hgsubversion. The second one mentions the most notable shortcomings of hgsubversion. The third and final section documents how to customise hgsubversion.
Dan Villiom Podlaski Christiansen
test_startrev: add a few assertions about clone lengths A few tweaks are added to the test to ensure that all tests pass these assertions: Some fixtures fail them by resulting in empty clones. Explicitly blacklisting such fixtures allows as to ensure that the other fixtures continue to work as expected. Other fixtures contain no files in trunk at HEAD, so we test them with other subdirectories instead.
Dan Villiom Podlaski Christiansen
pull: fix shallow clone when lastest change isn't HEAD. Previously, using `hg clone --startrev HEAD` when the actual HEAD revision didn't touch the prefix, would cause it to report that no changes were found. Using last_changed_rev instead of HEAD fixes this. In order to better test this scenario, we now clone the trunk subdirectory of all the fixtures.
Dan Villiom Podlaski Christiansen
stupid: remove an incorrect, implicit assumption in fetch_branchrev() The code in fetch_branchrev() could fail under relatively obscure circumstances: it combined two strings (path & child) by concatenating them with '/' inserted in the middle. However, convert_rev() contains an assertion that no touched file paths start with '/'. Combined, these two amounted to an incorrect assumption that no files where touched within an empty branchpath.
Dan Villiom Podlaski Christiansen
test_rebuildmeta: make an assertion more helpful.
Dan Villiom Podlaski Christiansen
verify: add end-of-line to ui.write() calls. It's prettier this way.
Dan Villiom Podlaski Christiansen
test_startrev: new tests inspired by test_rebuildmeta The tests for start revision support are inspired by the rebuildmeta tests; for every single fixture, a full and a shallow clone is performed, and the two are then compared.
Dan Villiom Podlaski Christiansen
test_util: support specifying a start revision
Dan Villiom Podlaski Christiansen
clone: allow specifying a start revision. All tests pass, including comprehensive tests.
Dan Villiom Podlaski Christiansen
replay: always fetch the entire first revision The entire revision is fetched using the just-added get_revision() wrapper. Essentially, this allows us to begin a conversion with a non-zero start revision. As an extra safety feature, this mode is *always* used for the very first revision, even if no start revision is specified. For most repositories, this shouldn't matter; the entire revision will be fetched regardless. However, there are repo…
Dan Villiom Podlaski Christiansen
svnwrap: add get_revision(); a thing wrapper around ra.do_update() This function allows us to fetch the entire contents of a revision in a reasonably efficient manner.
Dan Villiom Podlaski Christiansen
stupid: always fetch the entire first revision
Dan Villiom Podlaski Christiansen
maps: rename revmap.seen to revmap.youngest; add revmap.oldest.
Augie Fackler
README: document single-directory clones a little.
Dan Villiom Podlaski Christiansen
tests: verify locations of any imported hgsubversion modules
Dan Villiom Podlaski Christiansen
tests: improve import logic We already had some logic some logic to make us import the local modules, but it failed under certain circumstances. I suspect that it had to do with absolute vs. relative paths. Regardless of what the root cause was, this fixes it.
Dan Villiom Podlaski Christiansen
tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen
tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen
rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen
stupid: handle branch mapping.
Dan Villiom Podlaski Christiansen
tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen
tests: disallow calling changectx.children() during rebuildmeta
Dan Villiom Podlaski Christiansen
rebuildmeta: optimize by removing quadratic time usage Calling ctx.children() for revision R visits all revisions greater than R. If I remember my algorithmics right, that's O(n^2). Performing an extra traversal, however, is O(n). A quick benchmark on a repository ~20k revisions: before: 445.27s user 1.10s system after: 7.25s user 0.25s system The resulting `svn' directories are exactly the same, and the tests continue to pass.
Dan Villiom Podlaski Christiansen
branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen
branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen
replay/stupid: fix tagging on a branch renamed using a branch map Previously, both convert_rev() functions used parentctx.extra() to determine the branch to pass to meta.movetag(). This assumed that the branch name stored in the changeset matches the internal branch. The introduction of branch maps made this assumption unsafe, however: Now, the Mercurial branch can be completely unrelated to the origin of the changeset. It turns out, however, that movetag() alr…
Dan Villiom Podlaski Christiansen
editor: convert two assertions in apply_textdelta() into raising an IOError I noticed these in the traceback filed as issue2261 in the Mercurial bug tracker. We should always fail in cases where the Subversion server gives us invalid data, so using assertions is wrong.
Dan Villiom Podlaski Christiansen
svnmeta: improve error message in get_source_rev() Letting a KeyError propagate when the supplied revision has no conversion record on file isn't terribly helpful. At least not when this KeyError merely states that the key missing is 'convert_revision'. It's much better to preemptively check for it, detect that it's missing, and then raise an exception with a descriptive message.
Augie Fackler
Added tag 1.1.2 for changeset 093ae2915b45
  1. Prev
  2. Next