Boris Feld <boris.feld@octobus.net> [Fri, 06 Oct 2017 16:15:24 +0200] rev 34575
obsolete: add a devel.user.obsmarker
In tests, we often want to use a different username in obs-markers without
changing the default user. Add a 'devel.user.obsmarker'.
Paul Morelle <paul.morelle@octobus.net> [Thu, 05 Oct 2017 15:11:34 +0200] rev 34574
strip: factor out update target selection
The same algorithm was used in two places: one to find out which commit shall
become the parent of wdir, and the other to prepare the wdir when keeping
changes. Factoring it out prevents inconsistent changes in either occurrence.
Augie Fackler <augie@google.com> [Wed, 11 Oct 2017 03:48:11 -0700] rev 34573
contrib: add check-code rule banning use of readlink
readlink doesn't always exist, such as on Solaris-derived platforms.
Differential Revision: https://phab.mercurial-scm.org/D1000
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:03:14 -0400] rev 34572
tests: use readlink.py instead of readlink
The latter doesn't always exist, such as on Solaris-derived platforms.
Differential Revision: https://phab.mercurial-scm.org/D999
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:53 -0400] rev 34571
tests: use readlink.py instead of readlink
The latter doesn't always exist, such as on Solaris-derived platforms.
Differential Revision: https://phab.mercurial-scm.org/D998
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:40 -0400] rev 34570
tests: use readlink.py instead of readlink
The latter doesn't always exist, such as on Solaris-derived platforms.
Differential Revision: https://phab.mercurial-scm.org/D997
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:23 -0400] rev 34569
tests: use readlink.py instead of readlink
The latter doesn't always exist, such as on Solaris-derived platforms.
Differential Revision: https://phab.mercurial-scm.org/D996
Augie Fackler <augie@google.com> [Wed, 11 Oct 2017 01:56:49 -0700] rev 34568
ui: recommend tweakdefaults in the default hgrc template
Were I only slightly bolder, I'd make it on by default in the
suggested user hgrc.
Differential Revision: https://phab.mercurial-scm.org/D1001
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 10 Oct 2017 01:03:24 +0530] rev 34567
tests: optimize test-copytrace-heuristics.t
test-copytrace-heuristics.t tests the heuristics algorithm of copytracing. The
test has a pattern of making a server repo first and then cloning into a local
repo for each test to have public and draft commits. This is done because if we
have all draft commits and we have very less commits, heuristics will fallback
to full copytracing as that will be fast.
To avoid creating the server repo, we set the commit limit to -1 so that
everytime we perform the heuristics algorithm even when having full drafts and
tweak the config setting when we need to test the ability to fallback to full
copytracing.
This optimizes this test by 3 seconds.
Before:
real 0m41.503s
user 0m36.068s
sys 0m3.900s
After:
real 0m38.826s
user 0m33.884s
sys 0m3.396s
Differential Revision: https://phab.mercurial-scm.org/D991
Jun Wu <quark@fb.com> [Thu, 05 Oct 2017 13:38:48 -0700] rev 34566
patch: do not cache translated messages (API)
Previously the code caches `i18n._` results in module variables. That causes
issues after an encoding change. Instead of invalidating them manually, we
now just recalculate the translated messages every time `filterpatch` gets
called.
This makes test-commit-interactive.t pass regardless of whether chg or
demandimport is used or not.
.. api: `patch.messages` now lives in `patch.getmessages()`.
Extensions adding new messages should now wrap the `patch.getmessages`
method instead of changing `patch.messages` directly.
Differential Revision: https://phab.mercurial-scm.org/D959
Eamonn Kent <ekent@fb.com> [Mon, 09 Oct 2017 10:09:36 -0700] rev 34565
fsmonitor: add new watchman notifications to fsmonitor extension
The fsmonitor extension currently sends state-enter and state-leave
notifications to watchman on the update operation. This commit creates
additional notifications for the following events :
- transaction creation and commit/abort. A state-enter notification will be
sent when a transaction is created. It will provide the working copy
parent's hash. A state-leave notification will be sent when the
transaction is committed or aborted. It will provide the working copy
parent's hash.
- calls to set-parent will cause state-enter and state-leave notifications
to be sent. The state-enter notification will be sent prior to the
set-parent operation and the working copy parent's hash will be provided at
this time. The state-leave notification will be sent after the set-parent
operation completes providing the working copy parents hash.
Test Plan:
tested on dev server to check that necessary notifications were sent/received
Differential Revision: https://phab.mercurial-scm.org/D989
Eamonn Kent <ekent@fb.com> [Mon, 09 Oct 2017 10:09:36 -0700] rev 34564
fsmonitor: change the distance calculation
Change the distance calculation in the fsmonitor extension. It is done
in a method since anticipated changes will need to use this logic as well.
Test Plan:
Tested on development server.
Differential Revision: https://phab.mercurial-scm.org/D988
Boris Feld <boris.feld@octobus.net> [Mon, 09 Oct 2017 16:31:43 +0200] rev 34563
configitems: update default value of 'phases.new-commit'
Now that mq is cleaned up, we can rely on the config register for the default
value. We switch the default from the integer to human readable value to help
with future automatic documentation that could be generated from the config
register.
Boris Feld <boris.feld@octobus.net> [Mon, 09 Oct 2017 17:33:03 +0200] rev 34562
mq: use the newcommitphase utility
We use the official API instead of doing the operation manually. This will help
storing the default value for phases properly in the next changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Sep 2017 18:17:47 +0200] rev 34561
patch: rename "header" variable into "hdr" in diff()
The "header" variable was hiding the eponymous class, hence preventing its
usage.
Mark Thomas <mbthomas@fb.com> [Thu, 05 Oct 2017 08:03:57 -0700] rev 34560
merge: improve comments in mergestate._makerecords
Differential Revision: https://phab.mercurial-scm.org/D955
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34559
commands: tidy up merge state decoding in resolve
Make the mapping from merge state to label and display key explicit, and move
construction of the dict out of the loop.
Differential Revision: https://phab.mercurial-scm.org/D861
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34558
tests: add test for path conflicts during merge
Differential Revision: https://phab.mercurial-scm.org/D787
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34557
tests: add test for path conflicts during update
Differential Revision: https://phab.mercurial-scm.org/D786
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34556
context: also consider path conflicts when clearing unknown files
When clearing unknown files to remove path conflicts, also delete files that
conflict with the target file's path.
Differential Revision: https://phab.mercurial-scm.org/D785
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34555
merge: check for path conflicts when merging (
issue5628)
When merging, check for any path conflicts introduced by the manifest
merge and rename the conflicting file to a safe name.
Differential Revision: https://phab.mercurial-scm.org/D784
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34554
util: add safename function for generating safe names to rename to
This function finds a name which does not clash with any other name in the
manifest, and so can be used to safely rename a file.
Differential Revision: https://phab.mercurial-scm.org/D783
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34553
merge: improve error messages for path conflicts during update
Differential Revision: https://phab.mercurial-scm.org/D782
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34552
merge: check for path conflicts when updating (
issue5628)
When updating to a new revision, check for path conflicts caused by unknown
files in the working directory, and handle these by backing up the file or
directory and replacing it.
Differential Revision: https://phab.mercurial-scm.org/D781
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34551
merge: rename conflicts to fileconflicts in _checkunknownfiles
We will need to distinguish between file conflicts and path conflicts. Rename
the conflicts variable so that it will be clearly distinct from pathconflicts,
which will be introduced in a future commit.
Differential Revision: https://phab.mercurial-scm.org/D780
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34550
merge: add _checkunknowndirs function for detecting path conflicts
Add a new function which, given a file name, finds the shortest path for which
there is a conflicting file or directory in the working directory.
Differential Revision: https://phab.mercurial-scm.org/D779
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34549
merge: backup conflicting directories when getting files
During batchget, if a target file conflicts with a directory, or if the
directory a target file is in conflicts with a file, backup and remove the
conflicting file or directory before performing the get.
Differential Revision: https://phab.mercurial-scm.org/D778
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34548
merge: add merge action 'pr' to rename files during update
Add a new merge action to handle a path conflict by renaming the conflicting
file to a safe name.
The rename is just to avoid problems on the filesystem. The conflict is still
considered unresolved until the user marks the original path as resolved.
Differential Revision: https://phab.mercurial-scm.org/D777
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34547
merge: add merge action 'p' to record path conflicts during update
Add a new merge action to record path conflicts. A status message is
printed, and the path conflict is added to the merge state.
Differential Revision: https://phab.mercurial-scm.org/D776
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34546
commands: update the resolve command to handle path conflicts
The resolve command must support displaying path conflicts and marking
them as resolved or unresolved.
Differential Revision: https://phab.mercurial-scm.org/D775
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34545
merge: add pathconflict merge state
Path conflicts that occur during merges are represented by 'pu' (unresolved)
and 'pr' (resolved) records in the merge state. These are stored on disk
in 'P' records.
Differential Revision: https://phab.mercurial-scm.org/D774
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34544
tests: add a test demonstrating basic path conflict failures
Differential Revision: https://phab.mercurial-scm.org/D773
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34543
scmutil: handle conflicting files and dirs in origbackuppath
When ui.origbackuppath is set, .orig files are stored outside of the working
copy. However conflicts can occur when files or directories end up having the
same name. These conflicts cause Mercurial to abort, even if they've been
created as a result of different backups.
Make sure we always replace files or directories in the origbackuppath if
they conflict with another file or directory.
Test Plan:
Add new unit test for conflicting paths.
Differential Revision: https://phab.mercurial-scm.org/D680
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Oct 2017 12:21:50 +0100] rev 34542
extdata: show debug message if external command exits with non-zero status
This isn't fatal because it's quite common for grep to exit with 1. Thanks to
Foozy for spotting this.
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:57:50 +0100] rev 34541
templatekw: allow accessing to nested namespace item by its template name
Since we have the dot operator, it makes more sense to write
{namespaces.tags % "{tag}"}
instead of
{namespaces.tags % "{name}"}
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:50:24 +0100] rev 34540
templatekw: get rid of temporary dicts from shownamespaces()
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:53:05 +0900] rev 34539
templatekw: rename peerpaths to peerurls per naming convention (BC)
Since each element is called as "url", the template keyword should be named
as "<whatever>urls".
{peerurls} is now stabilized.
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:31:01 +0900] rev 34538
templatekw: make experimental {peerpaths} return a single-level dict (BC)
This was planned as in
c0d8de2724ce, "{peerpaths.default.pushurl} will be
translated to peerpaths['default'].makemap()['pushurl'], which means
{peerpaths} should be a single-level dict and sub-options should be
makemap()-ed."
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:49:05 +0900] rev 34537
templatekw: fix scope of peerpath url bound to generator
I had to explicitly bind 'd' to the generator. Otherwise, the last 'd' would
be used.
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:07:17 +0900] rev 34536
templater: extend dot operator as a short for get(dict, key)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Sep 2017 19:32:56 +0900] rev 34535
templater: add dot operator to easily access a sub item
This and the next patch will allow us to access a deeply-nested item
by foo.bar.baz syntax.
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Sep 2017 19:13:25 +0900] rev 34534
templater: wrap get/min/max result so map operation can apply to element
See the test for usage example.
wraphybridvalue() takes a key/value pair because a hybrid dict passes a key
to its makemap() function. Since makemap() of showmanifest() doesn't need
a key, it's set to None.
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Oct 2017 07:18:24 +0100] rev 34533
dispatch: move initialization of sys.std* files
I'll add another Python 3 hack.
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Oct 2017 06:52:10 +0100] rev 34532
py3: work around the scope of exception variable in dispatch.run()
https://stackoverflow.com/questions/
29268892/
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Oct 2017 22:07:10 +0900] rev 34531
chg: just forward --time to command server
Since we've removed the use of atexit in
de5c9d0e02ea, --time just works.
Kostia Balytskyi <ikostia@fb.com> [Mon, 09 Oct 2017 02:30:23 -0700] rev 34530
windows: add an experimental option for long paths support
This commit adds an experimental --long-paths-support flag to build_hgexe
on Windows. It is off by default, but when supplied, causes setup.py to
embed some XML into the generated hg.exe, which in turn tells Windows to
allow this exe to use long paths (given that the appropriate registry setting
is enabled as well).
This was tested on Windows 10 14393 and 15063.
This commit introduces a badly-named initialize_options function, but its name
is dictated by distutils, rather than chosen.
# no-check-commit
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:07:47 +0200] rev 34529
configitems: register the 'experimental.graphstyle.grandparent' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:07:21 +0200] rev 34528
configitems: register the 'experimental.graphstyle.missing' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:06:35 +0200] rev 34527
configitems: register the 'experimental.graphstyle.parent' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:37 +0200] rev 34526
configitems: register the 'devel.empty-changegroup' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:22 +0200] rev 34525
configitems: register the 'devel.cache-vfs' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:36:26 +0200] rev 34524
configitems: register the 'devel.warn-config-default' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:10 +0200] rev 34523
configitems: register the 'devel.warn-config' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:48:40 +0200] rev 34522
configitems: register 'merge.checkunknown' and 'merge.checkignored'
They both use the same function defining a default, so we need to update them at
the same time.
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:47:14 +0200] rev 34521
configitems: register the 'diff.*' config
All the config were already using a unified function with a forced default, so,
registering them all at once seems safe.
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:43:46 +0200] rev 34520
configitems: register the 'experimental.mmapindexthreshold' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:42:19 +0200] rev 34519
configitems: register the 'experimental.maxdeltachainspan' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:16:09 +0200] rev 34518
configitems: register the 'commands.show.aliasprefix' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:11:34 +0200] rev 34517
configitems: register the 'blackbox.track' config
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Oct 2017 04:39:42 +0530] rev 34516
copies: add docs for config `experimental.copytrace.sourcecommitlimit`
This patch adds documentation for the config option. The config name does not
convey much and hence documentation was required.
Differential Revision: https://phab.mercurial-scm.org/D986
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:29:13 -0400] rev 34515
hgweb: extract function for loading style from request context
Also make it work on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D970
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:27:21 -0400] rev 34514
request: coerce content-type to native str
Again, required by WSGI.
Differential Revision: https://phab.mercurial-scm.org/D969
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:26:09 -0400] rev 34513
request: use trivial iterator over dictionary keys
Differential Revision: https://phab.mercurial-scm.org/D968
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:22:02 -0400] rev 34512
hgweb: when constructing or adding to a wsgi environ dict, use native strs
That's what's required of us to work with the WSGI API on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D967