Mercurial > hg-stable
view tests/test-subrepo-missing.t @ 23933:769027075e21 stable
run-tests.py: execute hghave with same env vars as ones for actual tests
Before this patch, "run-tests.py" executes "hghave" process without
any modifications for environment variables, even though actual tests
are executed with LC_ALL, LANG and LANGUAGE explicitly assigned "C".
When "run-tests.py" is executed:
- with non-"C" locale environment variables on any platforms, or
- without any explicit locale environment setting on Windows
(only for "outer-repo" feature using "hg root")
external commands indirectly executed by "hghave" may show translated
messages.
This causes incorrect "hghave" result and skipping tests, because some
regexp matching of "hghave" expect external commands to show
un-translated messages.
To prevent external commands from showing translated messages, this
patch makes "run-tests.py" execute "hghave" with same environment
variables as ones for actual tests.
This patch doesn't make "hghave" execute external commands forcibly
with LC_ALL, LANG and LANGUAGE explicitly assigned "C", because
changing "run-tests.py" is cheaper than changing "hghave":
- "os.popen" should be replaced by "subprocess.Popen" or so, and
- setting up environment variables should be newly added
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 22 Jan 2015 00:03:58 +0900 |
parents | fab9dda0f2a3 |
children | 871485bd03fd |
line wrap: on
line source
$ hg init repo $ cd repo $ hg init subrepo $ echo a > subrepo/a $ hg -R subrepo ci -Am adda adding a $ echo 'subrepo = subrepo' > .hgsub $ hg ci -Am addsubrepo adding .hgsub $ echo b > subrepo/b $ hg -R subrepo ci -Am addb adding b $ hg ci -m updatedsub ignore blanklines in .hgsubstate >>> file('.hgsubstate', 'wb').write('\n\n \t \n \n') $ hg st --subrepos M .hgsubstate $ hg revert -qC .hgsubstate abort more gracefully on .hgsubstate parsing error $ cp .hgsubstate .hgsubstate.old >>> file('.hgsubstate', 'wb').write('\ninvalid') $ hg st --subrepos abort: invalid subrepository revision specifier in .hgsubstate line 2 [255] $ mv .hgsubstate.old .hgsubstate delete .hgsub and revert it $ rm .hgsub $ hg revert .hgsub warning: subrepo spec file .hgsub not found warning: subrepo spec file .hgsub not found delete .hgsubstate and revert it $ rm .hgsubstate $ hg revert .hgsubstate delete .hgsub and update $ rm .hgsub $ hg up 0 warning: subrepo spec file .hgsub not found warning: subrepo spec file .hgsub not found 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg st warning: subrepo spec file .hgsub not found ! .hgsub $ ls subrepo a delete .hgsubstate and update $ hg up -C warning: subrepo spec file .hgsub not found warning: subrepo spec file .hgsub not found 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ rm .hgsubstate $ hg up 0 remote changed .hgsubstate which local deleted use (c)hanged version or leave (d)eleted? c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg st $ ls subrepo a Enable obsolete $ cat >> $HGRCPATH << EOF > [ui] > logtemplate= {rev}:{node|short} {desc|firstline} > [phases] > publish=False > [experimental] > evolution=createmarkers > EOF check that we can update parent repo with missing (amended) subrepo revision $ hg up --repository subrepo -r tip 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg ci -m "updated subrepo to tip" created new head $ cd subrepo $ hg update -r tip 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo foo > a $ hg commit --amend -m "addb (amended)" $ cd .. $ hg update --clean . revision 102a90ea7b4a in subrepo subrepo is hidden 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd ..