sapling/tests/test-pushrebase-fastmanifest.t
Jun Wu effa0da8de test-helpers: add a helper to run test using chg
Summary:
The helper could be used in individual tests to enable chg if chg exists.
This allows us to have more precise control on what tests to use chg instead
of using a global flag in run-tests.py.

This makes certain tests containing many hg commands much faster. For example,
`test-revset.t` took 99 seconds before:

  % ./run-tests.py test-revset.t --time
  .
  # Ran 1 tests, 0 skipped, 0 failed.
  # Producing time report
  start   end     cuser   csys    real      Test
    0.000  99.990  86.410  12.000  99.990   test-revset.t

And 10 seconds after:

  % ./run-tests.py test-revset.t --time
  .
  # Ran 1 tests, 0 skipped, 0 failed.
  # Producing time report
  start   end     cuser   csys    real      Test
    0.000  10.080   0.380   0.130  10.080   test-revset.t

Also enable it for some other tests. Note the whitelist is not complete.  We
probably want to whitelist more tests in the future.

The feature could be opted out by deleting `contrib/chg/chg`.

Reviewed By: phillco

Differential Revision: D6767036

fbshipit-source-id: 8220cf408aa198d5d8e2ca5127ca60e2070d3444
2018-04-13 21:50:54 -07:00

80 lines
1.6 KiB
Perl

$ . helpers-usechg.sh
Setup
$ PYTHONPATH=$TESTDIR/..:$PYTHONPATH
$ export PYTHONPATH
$ cat >> $HGRCPATH << EOF
> [ui]
> ssh = python "$RUNTESTDIR/dummyssh"
> EOF
Set up server repository
$ hg init server
$ cd server
$ cat >> .hg/hgrc << EOF
> [extensions]
> pushrebase=
> EOF
$ echo foo > a
$ echo foo > b
$ hg commit -Am 'initial'
adding a
adding b
$ hg book master
$ cd ..
Set up client repository 1 with pushrebase enabled
$ hg clone -q ssh://user@dummy/server client1
$ cd client1
$ cat >> .hg/hgrc << EOF
> [extensions]
> pushrebase=
> EOF
$ cd ..
Set up client repository 2 with pushrebase enabled / fastmanifest enabled
$ hg clone -q ssh://user@dummy/server client2
$ cd client2
$ cat >> .hg/hgrc << EOF
> [extensions]
> pushrebase=
> fastmanifest=
> EOF
$ cd ..
Create the dummy commit on client 1
$ cd client1
$ hg book mybook
$ echo "text" >> newfile
$ hg add newfile
$ hg commit -m 'dummy commit'
Test that pushing to a remotename gets rebased (client1 -> client2) works
$ hg push --to mybook ssh://user@dummy/client2
pushing to ssh://user@dummy/client2
searching for changes
remote: pushing 1 changeset:
remote: eb7a4df38d10 dummy commit
$ cd ../client2
$ hg log -G
o changeset: 1:eb7a4df38d10
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: dummy commit
|
@ changeset: 0:2bb9d20e471c
bookmark: master
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: initial