Mercurial > hg-stable
view tests/test-default-push.t @ 47321:9a3aa54774ff
persistent-nodemap: add a way to make the picked uid predictable
This will make the test less volatile and therefore easier to maintain. I am
setting this is for the persistent nodemap docket first, but my target is to use
similar logic for the revlogv2 (and co) test.
For persisent nodemap, they are too many different in how each test variants (with rust, without rust, etc) needs new uid for this be really useful (right now). However it will be directly useful for the revlogv2 logic.
Differential Revision: https://phab.mercurial-scm.org/D10753
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 19 May 2021 17:19:46 +0200 |
parents | 56d441256e82 |
children |
line wrap: on
line source
$ hg init a $ echo a > a/a $ hg --cwd a ci -Ama adding a $ hg clone a c updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg clone a b updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo b >> b/a $ hg --cwd b ci -mb Push should provide a hint when both 'default' and 'default-push' not set: $ cd c $ hg push --config paths.default= config error: default repository not configured! (see 'hg help config.paths') [30] $ cd .. Push should push to 'default' when 'default-push' not set: $ hg --cwd b push pushing to $TESTTMP/a searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files Push should push to 'default-push' when set: $ echo '[paths]' >> b/.hg/hgrc $ echo 'default-push = ../c' >> b/.hg/hgrc $ hg --cwd b push pushing to $TESTTMP/c searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files But push should push to 'default' if explicitly specified (issue5000): $ hg --cwd b push default pushing to $TESTTMP/a searching for changes no changes found [1] Push should push to 'default-push' when 'default' is not set $ hg -q clone a push-default-only $ cd push-default-only $ rm .hg/hgrc $ touch foo $ hg -q commit -A -m 'add foo' $ hg --config paths.default-push=../a push pushing to $TESTTMP/a searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files $ cd .. Pushing to a path that isn't defined should not fall back to default $ hg --cwd b push doesnotexist abort: repository doesnotexist does not exist [255] :pushurl is used when defined $ hg -q clone a pushurlsource $ hg -q clone a pushurldest $ cd pushurlsource Windows needs a leading slash to make a URL that passes all of the checks $ WD=`pwd` #if windows $ WD="/$WD" #endif $ cat > .hg/hgrc << EOF > [paths] > default = https://example.com/not/relevant > default:pushurl = file://$WD/../pushurldest > EOF $ touch pushurl $ hg -q commit -A -m 'add pushurl' $ hg push pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files :pushrev is used when no -r is passed $ cat >> .hg/hgrc << EOF > default:pushrev = . > EOF $ hg -q up -r 0 $ echo head1 > foo $ hg -q commit -A -m head1 $ hg -q up -r 0 $ echo head2 > foo $ hg -q commit -A -m head2 $ hg push -f pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) $ hg --config 'paths.default:pushrev=draft()' push -f pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) Invalid :pushrev raises appropriately $ hg --config 'paths.default:pushrev=notdefined()' push pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) hg: parse error: unknown identifier: notdefined (did you mean nodefromfile?) [10] $ hg --config 'paths.default:pushrev=(' push pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) hg: parse error at 1: not a prefix: end (( ^ here) [10] default :pushrev is taking in account $ echo babar > foo $ hg ci -m 'extra commit' $ hg up '.^' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo celeste > foo $ hg ci -m 'extra other commit' created new head $ cat >> .hg/hgrc << EOF > [paths] > other = file://$WD/../pushurldest > *:pushrev = . > EOF $ hg push other pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files $ hg push file://$WD/../pushurldest pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes no changes found [1] for comparison, pushing everything would give different result $ hg push file://$WD/../pushurldest --rev 'all()' pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob) searching for changes abort: push creates new remote head 1616ce7cecc8 (merge or see 'hg help push' for details about pushing new heads) [20] $ cd ..