Differences between revisions 6 and 7
Revision 6 as of 2008-11-26 09:23:02
Size: 2619
Comment: Added some information about recent changes.
Revision 7 as of 2009-01-09 11:10:50
Size: 3086
Editor: JesperNoehr
Comment: adding changes wrt/ patch.*
Deletions are marked like this. Additions are marked like this.
Line 61: Line 61:
 * patch.patchfile now expects a fifth argument, 'opener'
 * patch.applydiff's argument 'changes' constructs a new dict:

{{{
    # before
    keep = { }
    patch.applydiff(..., keep, ...)
    
    print keep
    { 'fname': ( action, other ) }

    # after
    keep = { }
    patch.applydiff(..., keep, ...)
    
    print keep
    { 'fname': action }
}}}

as before, action will only be set to anything not-None if the patch is in git-format.

Because Mercurial's internals are steadily evolving to be simpler and more consistent, we have not yet provided a guaranteed-stable API. This page describes Mercurial internal changes on the development branch to help third-party developers update their code.

Changes post-1.0

  • repo.count(), changelog.count(), and revlog.count() replaced with len() method
  • introduction of repo[identifier] and revlog[identifier]
  • replace all users of util.matcher with match objects
  • changed cmdutil.walk to repo.walk:

    # before
    for src, abs, rel, exact in cmdutil.walk(repo, pats, opts,
                                             node=ctx.node()):

    # after

    m = cmdutil.match(repo, pats, opts)
    for abs in ctx.walk(m):
        rel = m.rel()
  • changed defaults for localrepo.status:

    # before
    def status(self, node1=None, node2=None, files=[], match=util.always,
               list_ignored=False, list_clean=False, list_unknown=True):

    # after
    def status(self, node1='.', node2=None, match=None,
               ignored=False, clean=False, unknown=False):
  • patch.diff() no longer accepts an fp argument, it yields data instead
  • len(changectx.parents()) may now be of length 1 (but never length 0)
  • revlog.linkrev() now takes a numerical rev argument rather than a node:

    # before
    a = manifest.linkrev(node)
    b = manifest.linkrev(manifest.node(rev))

    # after
    a = manifest.linkrev(manifest.rev(node))
    b = manifest.linkrev(rev)
  • cset_printer() and cset_templater() now take a changectx instead of rev or node:

    # before
    displayer = cmdutil.show_changeset(ui, repo, opts)
    displayer.show(rev, node)

    # after
    displayer = cmdutil.show_changeset(ui, repo, opts)
    displayer.show(repo[rev]) 
  • patch.patchfile now expects a fifth argument, 'opener'
  • patch.applydiff's argument 'changes' constructs a new dict:

    # before
    keep = { }
    patch.applydiff(..., keep, ...)
    
    print keep
    { 'fname': ( action, other ) }

    # after
    keep = { }
    patch.applydiff(..., keep, ...)
    
    print keep
    { 'fname': action }

as before, action will only be set to anything not-None if the patch is in git-format.

1. Template changes in 1.0

If you use your own template set (particularly for hgweb), here are some relevant changes.

  • Before 1.0, Content-Type was set as a line in header.tmpl. It was changed in 1.0 to use a "mimetype" value from the map. In 1.1, the old behavior has been removed.
  • Annotate templates now get a full user instead of the short version. Use "author|user" to revert to the previous behavior.
  • Annotate lines now also have the "desc" variable, in order to show the commit message for that line's changeset.
  • Parent and child links (in changeset and diff pages, for example) can now show much more information about those changesets.
  • Branch name and branch head information is available in many more places.

ApiChanges (last edited 2018-11-02 13:59:39 by AntonShestakov)