Mercurial > hg
view tests/test-mq-pull-from-bundle.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 | 89630d0b3e23 |
children |
line wrap: on
line source
#require repobundlerepo $ cat <<EOF >> $HGRCPATH > [extensions] > mq= > [alias] > tlog = log --template "{rev}: {node|short} {desc}\\n" > theads = heads --template "{rev}: {desc}\\n" > tincoming = incoming --template "{rev}: {desc}\\n" > EOF Setup main: $ hg init base $ cd base $ echo "One" > one $ hg add adding one $ hg ci -m "main: one added" $ echo "++" >> one $ hg ci -m "main: one updated" Bundle main: $ hg bundle --base=null ../main.hg 2 changesets found $ cd .. Incoming to fresh repo: $ hg init fresh $ hg -R fresh tincoming main.hg comparing with main.hg 0: main: one added 1: main: one updated $ test -f ./fresh/.hg/hg-bundle* && echo 'temp. bundle file remained' || true $ hg -R fresh tincoming bundle:fresh+main.hg comparing with bundle:fresh+main.hg 0: main: one added 1: main: one updated Setup queue: $ cd base $ hg qinit -c $ hg qnew -m "patch: two added" two.patch $ echo two > two $ hg add adding two $ hg qrefresh $ hg qcommit -m "queue: two.patch added" $ hg qpop -a popping two.patch patch queue now empty Bundle queue: $ hg -R .hg/patches bundle --base=null ../queue.hgq 1 changesets found $ test -f ./fresh/.hg/hg-bundle* && echo 'temp. bundle file remained' || true $ cd .. Clone base: $ hg clone base copy updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd copy $ hg qinit -c Incoming queue bundle: $ hg -R .hg/patches tincoming ../queue.hgq comparing with ../queue.hgq 0: queue: two.patch added $ test -f .hg/hg-bundle* && echo 'temp. bundle file remained' || true Pull queue bundle: $ hg -R .hg/patches pull --update ../queue.hgq pulling from ../queue.hgq requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 3 changes to 3 files new changesets d7553909353d (1 drafts) merging series 2 files updated, 1 files merged, 0 files removed, 0 files unresolved $ test -f .hg/patches/hg-bundle* && echo 'temp. bundle file remained' || true $ hg -R .hg/patches theads 0: queue: two.patch added $ hg -R .hg/patches tlog 0: d7553909353d queue: two.patch added $ hg qseries two.patch $ cd .. Clone base again: $ hg clone base copy2 updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd copy2 $ hg qinit -c Unbundle queue bundle: $ hg -R .hg/patches unbundle --update ../queue.hgq adding changesets adding manifests adding file changes added 1 changesets with 3 changes to 3 files new changesets d7553909353d (1 drafts) merging series 2 files updated, 1 files merged, 0 files removed, 0 files unresolved $ hg -R .hg/patches theads 0: queue: two.patch added $ hg -R .hg/patches tlog 0: d7553909353d queue: two.patch added $ hg qseries two.patch $ cd ..