Mercurial > hg
view tests/test-convert-hg-sink @ 12039:18e1e7520b67 stable
alias: make shadowing behavior more consistent (issue2054)
Currently, given an alias like the following:
[alias]
summary = summary --remote
The alias might be executed - or it might not - depending on the order
of the cmdtable dict.
This happens because cmdalias gets assigned back to the cmdtable like so:
cmdtable['summary'] = ...
Yet '^summary|sum' is still in the table, so which one cmdutil.findcmd()
chooses isn't deterministic.
This patch makes cmdalias assign back to '^summary|sum'. It uses the same
cmdtable key lookup that extensions.wrapcommand() does.
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Sat, 21 Aug 2010 22:48:14 -0400 |
parents | 68e0a55eee6e |
children |
line wrap: on
line source
#!/bin/sh cat >> $HGRCPATH <<EOF [extensions] convert= [convert] hg.saverev=False EOF hg init orig cd orig echo foo > foo echo bar > bar hg ci -qAm 'add foo and bar' hg rm foo hg ci -m 'remove foo' mkdir foo echo file > foo/file hg ci -qAm 'add foo/file' hg tag some-tag hg log cd .. hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded' cd new hg out ../orig echo '% dirstate should be empty:' hg debugstate hg parents -q hg up -C hg copy bar baz echo '% put something in the dirstate:' hg debugstate > debugstate grep baz debugstate echo '% add a new revision in the original repo' cd ../orig echo baz > baz hg ci -qAm 'add baz' cd .. hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded' cd new hg out ../orig echo '% dirstate should be the same (no output below):' hg debugstate > new-debugstate diff debugstate new-debugstate echo '% no copies' hg up -C hg debugrename baz cd .. echo '% test tag rewriting' cat > filemap <<EOF exclude foo EOF hg convert --filemap filemap orig new-filemap 2>&1 | grep -v 'subversion python bindings could not be loaded' cd new-filemap hg tags cd ..