• 
      

    Mercurial (hg) SCMTool

    Review Request #97 — Created June 22, 2007 and submitted — Latest diff uploaded

    Information

    Review Board SVN (deprecated)
    trunk
    137

    Reviewers

    Update 2007-08-09:
    
    Moved fixture data into its own JSON file. Catch up with upstream changes. General clean up.
    
    The tests now use a hg repo in testdata/hg_repo, which I couldn't attach to the patch. I have emailed a tarball to David.
    
    Update 2007-08-06:
    
    Uploaded a new diff to use the new DiffParser per Christian's comment.
    
    Update 2007-07-17:
    
    Uploaded a new diff that addresses the issues noted by Christian.
    
    Also, a small fix to the parsing of diffs that create files, and a small change to make us compatible with Mercurial 0.9.4 (repo.LookupError moved, so I use a more general and hopefully stable exception).
    
    =====
    
    Update:
    
    Uploaded a new diff that fixes the style/whitespace issues noted.
    
    Now applies against rev 773 (in particular, the rename of SCMException to SCMError).
    
    I've also cleaned up the handling of diffs that create files, and overridden a more sensible method in DiffParser.
    
    =====
    
    Update:
    
    Uploaded a new diff that now applies against the DiffParser patch (http://reviews.review-board.org/r/99/) directly, rather than against the GitTool patch.
    
    =====
    
    A very tentative attempt at Mercurial support for reviewboard.
    
    This patch is based on Nick Loeve's git scmtool (http://reviews.review-board.org/r/80/). NOTE that it depends on the changes to DiffParser in that patch (so that HgTool can provide a parser for hg-style diffs).
    
    If anyone is interested, I have a mirror of the reviewboard source in mercurial (http://hg.mojain.com/mirrors/reviewboard) and a Mercurial Queues repo containing this patch and the git one it depends on (http://hg.mojain.com/patches/reviewboard).
    Update 2007-08-09: tests working again--all tests passing. 
    
    Update 2007-08-06: the tests are currently broken, due to an upstream change to django. I'm working on getting them fixed.
    
    =====
    
    I have it talking to a Mercurial repository and correctly reading diffs.
    
    There are basic unit tests for the diff parsing and other supporting methods.
    
    I had to remove the test that actually retrieved a file from a repo, since I haven't found a good way of getting a repo into a patch (the .hg dir contains binary files). I suspect that the answer will be to create the repo dynamically as part of the fixture setup. (I have a rough version of this working, but it's not in this patch due to being *very* rough).