Size: 5582
Comment: Document ui.prompt -> ui.promptchoice move
|
Size: 5635
Comment: Mark code as such
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
* the #var# templater syntax is now deprecated in favor of the {var} syntax. The old syntax will be removed in the 1.4 release. A tmplrewrite.py script is provided in contrib to help you convert your templates. * util.set() is now just set() * util.sort() is replaced by the sorted() built-in * util.Popen3 is gone, use subprocess instead * util.md5 is gone, use sha1 to get a secure hash function or keepalive.md5 if you really must use MD5 * util._encoding is now encoding.encoding * util.isowner now takes a mandatory stat object instead of a file path (use util.fstat to stat a path first) * platform specific parts of util have been split out into posix and windows modules, which are imported as necessary by util * the ui object constructor has been simplified: |
* the `#var#` templater syntax is now deprecated in favor of the `{var}` syntax. The old syntax will be removed in the 1.4 release. A `tmplrewrite.py` script is provided in contrib to help you convert your templates. * `util.set` is now just `set` * `util.sort` is replaced by the `sorted` built-in * `util.Popen3` is gone, use `subprocess` instead * `util.md5` is gone, use `util.sha1` to get a secure hash function or `keepalive.md5` if you really must use MD5 * `util._encoding` is now `encoding.encoding` * `util.isowner` now takes a mandatory `stat` object instead of a file path (use `util.fstat` to stat a path first) * platform specific parts of `util` have been split out into `posix` and `windows` modules, which are imported as necessary by `util` * the `ui` object constructor has been simplified: |
Line 30: | Line 30: |
* util.configparser replaced by config.config * {{{__getattr__}}} caching tricks replaced by @util.propertycache tricks * cmdutil.setremoteopts(ui, opts) is now cmdutil.remoteui([repo|ui], opts) * ui.interactive is now a method * ui.readsections() is now ui.readconfig(sections=[]) * ui.print_exc() is renamed ui.traceback() * must explicitly call lock.release() * encoding functions moved to new encoding module * the rawcommit code paths have been removed; this includes localrepo.rawcommit() and the debugrawcommit command * localrepo.filecommit() is no longer part of the (public) API |
* `util.configparser` replaced by config.config * `__getattr__` caching tricks replaced by `@util.propertycache` tricks * `cmdutil.setremoteopts(ui, opts)` is now `cmdutil.remoteui([repo|ui], opts)` * `ui.interactive` is now a method * `ui.readsections()` is now `ui.readconfig(sections=[])` * `ui.print_exc` is renamed `ui.traceback` * must explicitly call `lock.release` * encoding functions moved to new `encoding` module * the rawcommit code paths have been removed; this includes `localrepo.rawcommit` and the debugrawcommit command * `localrepo.filecommit` is no longer part of the (public) API |
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 after 1.3
ui.prompt is now a simple prompt and does not accept a list of choices. Use ui.promptchoice instead.
Changes from 1.2 to 1.3
- we've dropped Python 2.3 compatibility
the #var# templater syntax is now deprecated in favor of the {var} syntax. The old syntax will be removed in the 1.4 release. A tmplrewrite.py script is provided in contrib to help you convert your templates.
util.set is now just set
util.sort is replaced by the sorted built-in
util.Popen3 is gone, use subprocess instead
util.md5 is gone, use util.sha1 to get a secure hash function or keepalive.md5 if you really must use MD5
util._encoding is now encoding.encoding
util.isowner now takes a mandatory stat object instead of a file path (use util.fstat to stat a path first)
platform specific parts of util have been split out into posix and windows modules, which are imported as necessary by util
the ui object constructor has been simplified:
# before ui = ui.ui(parentui=parentui, interactive=False) # after ui = baseui.copy() # there's no longer a parent/child concept ui.setconfig('ui', 'interactive', 'off')
- Some methods relating to configuration have been removed from the ui object.
util.configparser replaced by config.config
__getattr__ caching tricks replaced by @util.propertycache tricks
cmdutil.setremoteopts(ui, opts) is now cmdutil.remoteui([repo|ui], opts)
ui.interactive is now a method
ui.readsections() is now ui.readconfig(sections=[])
ui.print_exc is renamed ui.traceback
must explicitly call lock.release
encoding functions moved to new encoding module
the rawcommit code paths have been removed; this includes localrepo.rawcommit and the debugrawcommit command
localrepo.filecommit is no longer part of the (public) API
- the commit API around invoking the editor has changed (also, you can no longer pass a list of files; pass a matcher instead)
- the templater API now takes a context object instead of a node
- a branchmap command has been added to the wire protocol
Changes from 1.1 to 1.2
- Most exceptions are now defined in error.py and some exception names have changed
- Version info is now retrieved with util.version(), version.py is removed
Changes from 1.0 to 1.1
- 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.
- hgweb() and hgwebdir() now return an iterator over bytes rather than writing to the write callable provided by the WSGI server.
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.