Matt Harbison <matt_harbison@yahoo.com> [Wed, 20 Jan 2016 22:10:17 -0500] rev 28173
test-paths: fix up json output to match $TESTTMP on Windows
Without this, the paths were in the form "C:\\Users\\Matt\\AppData...". The
test runner wouldn't collapse it down to $TESTTMP, which uses single
backslashes.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 20 Jan 2016 21:56:37 -0500] rev 28172
test-obsolete: conditionalize a test dependent on chmod
Matt Anderson <andersonmat@fb.com> [Wed, 17 Feb 2016 15:18:30 -0800] rev 28171
progress: display progress bar when HGPLAINEXCEPT contains "progress"
This patch changes "progress.shouldprint()" so a feature name is provided to
"ui.plain()" to determine if there is an exception specificed in HGPLAINEXCEPT
for the progress extension.
This will allow user-facing scripts to provide progress output while HGPLAIN
is enabled.
timeless <timeless@mozdev.org> [Wed, 17 Feb 2016 19:38:44 +0000] rev 28170
run-tests: stop allocating HGPORT3+HGPORT4
The only consumer was test-treemanifest.t, which has been fixed.
In general, you should be able to use killdaemons.py to recycle
ports instead of going over 3 ports (HGPORT, HGPORT1, HGPORT2).
In the future, if you want to add a port, be sure to change
portneeded in _getport.
timeless <timeless@mozdev.org> [Wed, 17 Feb 2016 19:36:32 +0000] rev 28169
run-tests: refactor port allocation into functions
Adding a port reservation was too hard and someone did it wrong.
By refactoring, such reservations can be managed more safely.
This also adds documentation so that the next person who tries
is more likely to update all the places correctly.
Note that in this commit the reservation and consumers do not
match, that will be fixed in the next commit.
timeless <timeless@mozdev.org> [Wed, 17 Feb 2016 19:34:01 +0000] rev 28168
tests: put test-treemanifest.t on a port diet
test-treemanifest.t had introduced HGPORT3 and HGPORT4,
which were improperly added to run-tests.py.
It also was not using HGPORT1.
This recycles HGPORT, and shifts everything into HGPORT1 + HGPORT2.
Jun Wu <quark@fb.com> [Wed, 17 Feb 2016 15:00:47 +0000] rev 28167
chg: pass sensitive command line flags to server
We are going to make chgserver load repo config, remember what it is, and
load repo config again to detect config change. This is the first step that
passes config, repo, cwd options to server. Traceback is passed as well to
cover errors before hitting chgserver.runcommand.
Jun Wu <quark@fb.com> [Wed, 17 Feb 2016 15:08:09 +0000] rev 28166
chg: use mallocx and reallocx in hgclient
This patch simplifies the code a bit, and reduces the binary size a little.
Jun Wu <quark@fb.com> [Wed, 17 Feb 2016 14:51:38 +0000] rev 28165
chg: add utility functions mallocx, reallocx
They are like malloc and realloc but will abort the program on error.
A lot of places use {m,re}alloc and check their results. This patch
can simplify them.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 15 Feb 2016 13:20:20 -0800] rev 28164
localrepo: move new repo requirements into standalone function (API)
This patch extracts the code for determining requirements for a new
repo into a standalone function. By doing so, future code that will
perform an in-place repository upgrade (e.g. to generaldelta) can
examine the set of proposed new requirements and possibly take
additional actions (such as adding dotencode or fncache) when
performing the upgrade.
This patch is marked as API because _baserequirements (which was added
in
b090601a80d1 so extensions could override it) has been removed and
will presumably impact whatever extension it was added for. Consumers
should be able to monkeypatch the new function to achieve the same
functionality.
The "create" argument has been dropped because the function is only
called in one location and "create" is always true in that case.
While it makes logical sense for this code to be a method so extensions
can implement a custom repo class / method to override it, this won't
actually work. This is because requirements determination occurs during
localrepository.__init__ and this is before the "reposetup"
"callback" is fired. So, the only way for extensions to customize
requirements would be to overwrite localrepo.localrepository or to
monkeypatch a function on a module during extsetup(). Since we try to
keep localrepository small, we use a standalone function. There is
probably room to offer extensions a "hook" point to alter repository
creation. But that is scope bloat.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 15 Feb 2016 13:19:07 -0800] rev 28163
localrepo: isolate requirements determination from side effects
In preparation for moving requirements determination to its own
function.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 13 Feb 2016 14:42:17 -0800] rev 28162
localrepo: use local variable for requirements assignment
A future patch will refactor requirements determination into a
standalone function. To prepare for this, refactor the requirements
code to assign to a local variable instead of to self.requirements.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 09 Feb 2016 23:35:21 +0000] rev 28161
destutil: ensure we offer 'hg update' hint when not at head in all cases
In the merge case, we abort if the working copy is not at head, offering to
run 'hg update' in the hint instead. In the rebase case, we do not abort in that
case. Yet if no rebase destination are found, it still make sense to hint the
user about running 'hg update'. So we re-introduce a conditional using this
branch in the 'onheadcheck == False' case.
This will get used on rebase use this function.
Jun Wu <quark@fb.com> [Mon, 15 Feb 2016 14:35:26 +0000] rev 28160
chg: forward umask from client to server
This is necessary to make chg test pass on test-inherit-mode.t.
Jun Wu <quark@fb.com> [Mon, 15 Feb 2016 14:28:17 +0000] rev 28159
chgserver: add setumask method
Before this patch, the server won't inherit umask from the client, which
will fail test-inherit-mode.t. This patch provides a way for the client
to change umask of the server, similar to chdir and setenv.