Mercurial > hg
view tests/test-rebase-transaction.t @ 44216:281b6690e646
packaging: add support for PyOxidizer
I've successfully built Mercurial on the development tip of
PyOxidizer on Linux and Windows. It mostly "just works" on Linux.
Windows is a bit more finicky.
In-memory resource files are probably not all working correctly
due to bugs in PyOxidizer's naming of modules. PyOxidizer now
now supports installing files next to the produced binary. (We
do this for templates in the added file.) So a workaround
should be available.
Also, since the last time I submitted support for PyOxidizer,
PyOxidizer gained the ability to auto-generate Rust projects
to build executables. So we don't need to worry about vendoring
any Rust code to initially support PyOxidizer. However, at some
point we will likely want to write our own command line driver
that embeds a Python interpreter via PyOxidizer so we can run
Rust code outside the confines of a Python interpreter. But that
will be a follow-up.
I would also like to add packaging.py CLI commands to build
PyOxidizer distributions. This can come later, if ever.
PyOxidizer's new "targets" feature makes it really easy to define
packaging tasks in its Starlark configuration file. While not
much is implemented yet, eventually we should be able to produce
MSIs, etc using a `pyoxidizer build` one-liner. We'll get there...
Differential Revision: https://phab.mercurial-scm.org/D7450
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 26 Jan 2020 16:23:57 -0800 |
parents | 35ebdbb38efb |
children | 9c9cfecd4600 |
line wrap: on
line source
#testcases continuecommand continueflag Rebasing using a single transaction $ cat >> $HGRCPATH <<EOF > [extensions] > rebase= > drawdag=$TESTDIR/drawdag.py > > [rebase] > singletransaction=True > > [phases] > publish=False > > [alias] > tglog = log -G --template "{rev}: {desc}" > EOF #if continueflag $ cat >> $HGRCPATH <<EOF > [alias] > continue = rebase --continue > EOF #endif Check that a simple rebase works $ hg init simple && cd simple $ hg debugdrawdag <<'EOF' > Z > | > | D > | | > | C > | | > Y B > |/ > A > EOF - We should only see one status stored message. It comes from the start. $ hg rebase --debug -b D -d Z | grep 'status stored' rebase status stored $ hg tglog o 5: D | o 4: C | o 3: B | o 2: Z | o 1: Y | o 0: A $ cd .. Check that --collapse works $ hg init collapse && cd collapse $ hg debugdrawdag <<'EOF' > Z > | > | D > | | > | C > | | > Y B > |/ > A > EOF - We should only see two status stored messages. One from the start, one from - cmdutil.commitforceeditor() which forces tr.writepending() $ hg rebase --collapse --debug -b D -d Z | grep 'status stored' rebase status stored rebase status stored $ hg tglog o 3: Collapsed revision | * B | * C | * D o 2: Z | o 1: Y | o 0: A $ cd .. With --collapse, check that conflicts can be resolved and rebase can then be continued $ hg init collapse-conflict && cd collapse-conflict $ hg debugdrawdag <<'EOF' > Z # Z/conflict=Z > | > | D > | | > | C # C/conflict=C > | | > Y B > |/ > A > EOF $ hg rebase --collapse -b D -d Z rebasing 1:112478962961 "B" (B) rebasing 3:c26739dbe603 "C" (C) merging conflict warning: conflicts while merging conflict! (edit, then use 'hg resolve --mark') unresolved conflicts (see hg resolve, then hg rebase --continue) [1] $ hg tglog o 5: D | | @ 4: Z | | @ | 3: C | | | o 2: Y | | o | 1: B |/ o 0: A $ hg st M C M conflict A B ? conflict.orig $ echo resolved > conflict $ hg resolve -m (no more unresolved files) continue: hg rebase --continue $ hg continue already rebased 1:112478962961 "B" (B) as 79bc8f4973ce rebasing 3:c26739dbe603 "C" (C) rebasing 5:d24bb333861c "D" (D tip) saved backup bundle to $TESTTMP/collapse-conflict/.hg/strip-backup/112478962961-b5b34645-rebase.hg $ hg tglog o 3: Collapsed revision | * B | * C | * D o 2: Z | o 1: Y | o 0: A $ cd .. With --collapse, check that the commit message editing can be canceled and rebase can then be continued $ hg init collapse-cancel-editor && cd collapse-cancel-editor $ hg debugdrawdag <<'EOF' > Z > | > | D > | | > | C > | | > Y B > |/ > A > EOF $ HGEDITOR=false hg --config ui.interactive=1 rebase --collapse -b D -d Z rebasing 1:112478962961 "B" (B) rebasing 3:26805aba1e60 "C" (C) rebasing 5:f585351a92f8 "D" (D tip) transaction abort! rollback completed abort: edit failed: false exited with status 1 [255] $ hg tglog o 5: D | | o 4: Z | | o | 3: C | | | o 2: Y | | o | 1: B |/ o 0: A $ hg continue rebasing 1:112478962961 "B" (B) rebasing 3:26805aba1e60 "C" (C) rebasing 5:f585351a92f8 "D" (D tip) saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg $ hg tglog o 3: Collapsed revision | * B | * C | * D o 2: Z | o 1: Y | o 0: A $ cd ..