Mercurial > hg
view tests/test-share @ 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 | 2250fc372d34 |
children |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "share = " >> $HGRCPATH echo % prepare repo1 hg init repo1 cd repo1 echo a > a hg commit -A -m'init' echo % share it cd .. hg share repo1 repo2 echo % contents of repo2/.hg cd repo2 [ -d .hg/store ] \ && echo "fail: .hg/store should not exist" \ || echo "pass: .hg/store does not exist" # Some sed versions appends newline, some don't, and some just fails (cat .hg/sharedpath; echo) | head -n1 | "$TESTDIR/filtertmp.py" echo % commit in shared clone echo a >> a hg commit -m'change in shared clone' echo % check original cd ../repo1 hg log hg update cat a # should be two lines of "a" echo % commit in original echo b > b hg commit -A -m'another file' echo % check in shared clone cd ../repo2 hg log hg update cat b # should exist with one "b" echo % hg serve shared clone hg serve -n test -p $HGPORT -d --pid-file=hg.pid cat hg.pid >> $DAEMON_PIDS "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-file/'