Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 17:03:47 -0700] rev 38458
packaging: replace dockerlib.sh with a Python script
I want to do some more advanced things with Docker in upcoming
commits. Trying to do that with shell scripts will be a bit too
painful for my liking. Implementing things in Python will be
vastly simpler in the long run.
This commit essentially ports dockerlib.sh to a Python script.
dockerdeb and dockerrpm have been ported to use the new hg-docker
script.
hg-docker requires Python 3. I've only tested on Python 3.5.
Unlike the local packaging scripts which may need to run on old
distros, the Docker packaging scripts don't have these constraints.
So I think it is acceptable to require Python 3.5.
As part of the transition, the Docker image tags changed slightly.
I don't think that's a big deal: the Docker image names are
effectively arbitrary and are a means to an end to achieve
running commands in Docker containers.
The code for resolving the Dockerfile content allows substituting
values passed as arguments. This will be used in a subsequent commit.
Differential Revision: https://phab.mercurial-scm.org/D3759
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 15:51:37 -0700] rev 38457
packaging: consistently create build user in Dockerfiles
Previously, dockerlib.sh appended some commands to create a
"build" user in each Docker image. The resulting Docker images
could be inconsistent depending on the execution environment
and base image.
With this change, we explicitly create our custom user and
group as the first action in each Dockerfile. The user always
has user:group 1000:1000 and all built images are consistent.
We also create a home directory for the user under /build.
This directory is currently ignored.
As part of this, we stop setting the DBUILDUSER variable in
dockerlib.sh and instead set it in the respective scripts that
call it. This is in preparation for further refactoring of
dockerlib.sh.
Differential Revision: https://phab.mercurial-scm.org/D3758
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 00:50:48 +0530] rev 38456
scmutil: move construction of instability count message to separate fn
When the commad we are running, introduces new instabilities, we show a message
like `5 new orphan changesets`, `2 new content-divergent changesets`, `1 new
phase-divergent changesets` etc which is very nice.
Now taking a step ahead, we want users to show how to fix them too. Something
like:
`5 new orphan changesets (run 'hg evolve' to resolve/stabilize them)`
`2 new content-divergent changesets (run 'hg evolve --content-divergent' to
resolve them)`
and maybe telling user a way to understand more about those new instabilities
like `hg evolve --list` or `hg log -r 'orphan()'` something like that.
The idea came from
issue5855 which I want to fix because fixing that will result
in a nice UI.
Taking the construction logic out will allow extensions like evolve (maybe
rebase too) to wrap that and add information about how to resolve and how to
understand the instability more.
Differential Revision: https://phab.mercurial-scm.org/D3734
Sune Foldager <cryo@cyanite.org> [Mon, 25 Jun 2018 16:36:14 +0200] rev 38455
procutil: use unbuffered stdout on Windows
Windows doesn't support line buffering, treating it as fully buffered. This
causes output of slow commands to stutter. We use unbuffered instead.
Sune Foldager <cryo@cyanite.org> [Mon, 25 Jun 2018 16:36:14 +0200] rev 38454
procutil: use unbuffered stdout on Windows
Windows doesn't support line buffering, treating it as fully buffered. This
causes output of slow commands to stutter. We use unbuffered instead.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 18:16:38 +0530] rev 38453
graft: introduce --abort flag to abort interrupted graft
This patch introduces a new --abort flag to `hg graft` command which aborts an
interrupted graft and rollbacks to the state before graft.
The behavior when some of grafted changeset get's published while interrupted
graft or we have new descendants on grafted changesets is same as that of rebase
which is warn the user, don't strip and abort the abort the graft.
Tests are added for the new flag.
.. feature::
`hg graft` now has a `--abort` flag which aborts the interrupted graft and
rollbacks to state before the graft.
Differential Revision: https://phab.mercurial-scm.org/D3754
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 02:46:34 +0530] rev 38452
graft: move `if continue` to elif and add new line
This will make upcoming patch where we introduce a new elif for the abort case
more readable. Also added a new line before the if-else starts.
Differential Revision: https://phab.mercurial-scm.org/D3752
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 02:34:27 +0530] rev 38451
graft: start storing new nodes formed in graftstate
This patch starts storing the new nodes formed during the ongoing graft
operation in the graftstate. We need the list of new nodes formed while
implmenting `graft --abort` which will strip out the new nodes.
Differential Revision: https://phab.mercurial-scm.org/D3751
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 23:22:51 +0900] rev 38450
show: use filter() function to strip "tip" tag
Before, an empty tag "" was inserted in place of "tip", resulting in double
spaces.
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 23:10:14 +0900] rev 38449
templater: extend filter() to accept template expression for emptiness test
This utilizes the pass-by-name nature of template arguments.
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 22:33:26 +0900] rev 38448
templater: introduce filter() function to remove empty items from list
The primary use case is to filter out "tip" from a list of tags.
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Jun 2018 16:10:38 +0900] rev 38447
templater: fix truth testing of integer 0 taken from a list/dict
Broken at
f9c426385853. bool(python_value) shouldn't be used here since
an integer 0 has to be truthy for backward compatibility.
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Jun 2018 21:58:04 +0900] rev 38446
formatter: look for template symbols from the associated name
Otherwise symbolsused() would fail if a named template is specified with -T.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Jun 2018 15:54:56 +0530] rev 38445
py3: add b'' prefixes in tests/test-obsolete-divergent.t
This makes the test pass on Python 3.
# skip-blame because just b'' prefixes.
Differential Revision: https://phab.mercurial-scm.org/D3832
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Jun 2018 01:07:23 +0530] rev 38444
py3: use stringutil.pprint() to print NoneType
Before this patch, when running test-debugcommands.t, we get a TypeError because
NoneType can't be converted into bytes. This patch uses stringutil.pprint() to
print the ui._colormode.
We are now close to getting test-debugcommands.t passing on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D3831