Mads Kiilerich <madski@unity3d.com> [Tue, 19 Aug 2014 01:12:56 +0200] rev 22388
rebase: improve description of --base
No Mercurial DAG has ever (!) been drawn in a way where 'up to' would apply.
Instead, describe deliberatey vague and informal instead of seemingly precise
but not describing the essentials:
rebase the tree around the specified changeset without ancestors of dest
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 19:43:32 +0200] rev 22387
dagutils: fix docstrings for singleton internalize/externalize
Martin von Zweigbergk <martinvonz@gmail.com> [Sun, 31 Aug 2014 07:45:50 -0700] rev 22386
cmdutil: avoid the confusing name 'patch' for a matcher
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Sep 2014 14:10:08 -0700] rev 22385
fedora: remove sample.hgrc from shipped files
sample.hgrc was long obsolete and was removed in
63ed188e3fc7.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 24 Aug 2014 19:45:46 -0400] rev 22384
config: propose some sample global config file
An example of what could be suggested to the user as a global config
file. Trying to be conservative here, and only suggesting the safest
possible extensions. In addition to the user-level extensions, the
blackbox extension is something a sysadmin might reasonable want to
enable for every repo on the system.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Wed, 13 Aug 2014 17:05:48 -0400] rev 22383
config: give more fine-tuned sample hgrcs to this command
The hgrc for user config is typically different from the hgrc at the
system-wide or repository level. This patch provides different sample
hgrcs for each level. Sometimes when copying repos around, the copy or
the original don't have a default path yet, so at least for `hg config
-l`, this ought to provide a more reasonable default and suggestions
of what typically goes there.
The actual sample configs go in the config.py file, to minimise
clutter. In order to avoid an unnecessary import, the corresponding
import for this dictionary is at the file level.
David Soria Parra <davidsp@fb.com> [Mon, 01 Sep 2014 11:48:55 +0200] rev 22382
rebase: add a deprecated -i/--interactive flag
A common mistake can be to type 'hg rebase -i' to discover interactive history
editing. We add a -i/--interactive flag as discussed in the sprint and deprecate
it right away, but hint people using it to use histedit instead.
Mads Kiilerich <madski@unity3d.com> [Tue, 19 Aug 2014 01:13:10 +0200] rev 22381
revlog: introduce isancestor method for efficiently determining node lineage
Hide the not so obvious use of commonancestorsheads.
Augie Fackler <raf@durin42.com> [Tue, 09 Sep 2014 17:16:24 -0400] rev 22380
clone: provide sample username = config entry in .hg/hgrc (
issue4359)
Some users clone from a server before ever running 'hg config --edit',
so they don't see our helpful template for things like enabling the
username. Attempt to give them some helpful guidance.
Augie Fackler <raf@durin42.com> [Tue, 09 Sep 2014 16:51:21 -0400] rev 22379
test-acl: alter sed construct to avoid changes in .hg/hgrc formatting
A future patch is going to add some extra commented-out boilerplate to
the top of .hg/hgrc during clone. In order to make this test not
require regular updates, switch to searching for [hooks] or [acl] and
print file from the first match to that pattern.
Augie Fackler <raf@durin42.com> [Tue, 09 Sep 2014 13:47:50 -0400] rev 22378
merge with stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Sep 2014 00:41:44 +0900] rev 22377
dispatch: check shell alias again after loading extensions (
issue4355)
Before this patch, the shell alias causes failure when it takes its
specific (= unknown for "hg") options in the command line, because
"_parse()" can't accept them.
This is the regression introduced by
03d345da0579.
It fixed the issue that ambiguity between shell aliases and commands
defined by extensions was ignored. But it also caused that ambiguous
shell alias is handled in "_parse()" even if it takes specific options
in the command line.
To avoid such failure, this patch checks shell alias again after
loading extensions.
All aliases and commands (including ones defined by extensions) are
completely defined before the 2nd (= newly added in this patch)
"_checkshellalias()" invocation, and "cmdutil.findcmd(strict=False)"
can detect ambiguity between them correctly.
For efficiency, this patch does:
- omit the 2nd "_checkshellalias()" invocation if "[ui] strict= True"
it causes "cmdutil.findcmd(strict=True)", of which result should
be equal to one of the 1st invocation before adding aliases
- avoid removing the 1st "_checkshellalias()" invocation
it causes "cmdutil.findcmd(strict=True)" invocation preventing
shell alias execution from loading extensions uselessly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Sep 2014 00:41:44 +0900] rev 22376
dispatch: make "_checkshellalias" reusable regardless of adding aliases
To reduce changes in the subsequent patch fixing
issue4355, this patch
makes "_checkshellalias" reusable regardless of adding aliases.
In this patch, alias definitions are added and restored, only when
"precheck=True".
J. Lewis Muir <jlmuir@anl.gov> [Tue, 02 Sep 2014 11:28:44 +0200] rev 22375
build: don't clean __version__.py on 'make clean' in release tarballs
When running 'make clean' in an extracted release tarball, file
mercurial/__version__.py is removed, causing a subsequent install to
indicate 'version unknown'.
This problem was reported in the past [1] and a patch proposed in that mail,
but was never properly sent nor applied.
[1] http://selenic.com/pipermail/mercurial/2010-December/036249.html
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 01:51:02 +0200] rev 22374
revert: drop now useless conditional in the backup check
Now that we removed the (hopeless) attempt to backup file we knew to be
missing in the target changeset, we can stop checking if the file exists in
the target changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 01:49:28 +0200] rev 22373
revert: no backup for `dsadded` set
There is only one case where a backup is required in the `dsadded` set, and the
current backup mechanism fails to handle it. So we stop trying to do backups at
all for now. This will help us to simplify the backup code and finally fix
this backup issue.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 16:06:09 +0200] rev 22372
revert: add more padding in the dispatch list
We are going to add more sets and some of them will have longer names. We add
padding in a standalone patch for readbility purposes.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 01:48:58 +0200] rev 22371
revert: add documentation in the dispatch table
More sets are coming so documenting the existing ones will help.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 02:47:59 +0200] rev 22370
revert: add a way for external extensions to prefetch file data
This allow extensions that mess with the storage layer (remotefilelog,
largefile) to prefetch any data that will be accessed during the revert
operation.
We are currently fetching more data than theoretically required because the
backup code is a bit stupid. Future patches will improve that.
Kevin Bullock <kbullock@ringworld.org> [Sun, 07 Sep 2014 11:46:11 -0500] rev 22369
merge with stable
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Sep 2014 20:42:51 +0200] rev 22368
histedit: abort gracefully on --continue/--abort with no state
Previously we'd print an ugly message saying that the histedit-state file
doesn't exist in the repo.
Augie Fackler <raf@durin42.com> [Thu, 04 Sep 2014 09:59:23 -0400] rev 22367
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 02 Sep 2014 03:41:01 +0200] rev 22366
Added signature for changeset
5dc91146f353
Matt Mackall <mpm@selenic.com> [Tue, 02 Sep 2014 03:40:55 +0200] rev 22365
Added tag 3.1.1 for changeset
5dc91146f353
Durham Goode <durham@fb.com> [Tue, 26 Aug 2014 04:58:41 -0700] rev 22364
bookmarks: allow pushkey if new equals current
Previously a bookmark pushkey would be rejected if the specified 'old' value
didn't match the servers 'current' value. This change allows this situation, as
long as the 'current' server value equals the 'new' pushkey value already.
We are trying to write a hook that forces a server bookmark to move forward,
using a changegroup hook. If the user also pushed the bookmark, they would get
an error, since they computed their pushkey (old,new) pair before the server
moved the bookmark. Long term, bundle2 will let us do this more smartly, but
this change seems reasonable for now.
Mads Kiilerich <madski@unity3d.com> [Fri, 29 Aug 2014 12:17:53 +0200] rev 22363
tests: improve test coverage of branch command and existing branches
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 28 Aug 2014 17:23:05 +0200] rev 22362
localrepo: make it possible to pass multiple path elements to join and wjoin
This makes join and wjoin behave in the same way as os.path.join. That is, it
makes it possible to pass more than one path element to them.
Note that the first path element is still required, as it was before this patch,
and as is the case for os.path.join.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 31 Aug 2014 12:22:44 +0200] rev 22361
run-tests: make --interactive work with --view
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 11:11:42 +0200] rev 22360
convert: don't use multi-argument set.update
Mumble mumble 2.4 mumble.
Mike Edgar <adgar@google.com> [Sat, 30 Aug 2014 12:22:20 +0200] rev 22359
error: use docstrings, not bare strings, for error classes
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 10:24:25 +0200] rev 22358
osx: create dmg with installer instead of zip
OS X would offer to expand the zip so the (multi file) installer inside it
could be run ... but that would leave the expanded zip folder around.
Instead, use a .dmg file that automatically will be mounted - that seems more
common on OS X.
Still, there is two levels of levels of clicking before actually launching the
installer. Having a single file installer would be better ... but seems to be
hard. A more feasible improvement would be some fancy layout inside the .dmg .
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 12:33:12 +0200] rev 22357
branchmap: pre-filter topological heads before ancestors based filtering
We know that topological heads will not be ancestors of anything, so we filter
them out to potentially reduce the range of the ancestors computation.
On a strongly headed repo this gives humble speedup:
from 0.1984 to 0.1629
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 12:20:50 +0200] rev 22356
branchmap: issue a single call to `ancestors` for all heads
There is no reason to make multiple calls. This provides a massive speedup for
repo with a lot of heads.
On a strongly headed repo this gives humble speedup in simple case:
from 8.1097 to 5.1051
And massive speedup in other case:
from 7.8787 to 0.1984
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Aug 2014 11:39:15 +0200] rev 22355
test-ancestor: add a test for `ancestor` with ancestry within the initset
I was wondering if revisions in the initial set that are still ancestors of other
elements in the initial set were yielded by `changelog.ancestors`. I now have my
answer (they do) and Mercurial has a new test.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 Aug 2014 12:47:41 +0200] rev 22354
bundle2: pull obsmarkers relevant to the pulled set through bundle2
We use the new `obsheads` argument to retrieve them in a bundle2 part at the
same time as the changegroup.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 12:36:17 +0200] rev 22353
getbundle: add `obsmarkers` argument to getbundle
This argument triggers the retrieval of all markers relevant to the set of
changesets defined by the nodes in `heads`.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 12:28:58 +0200] rev 22352
pull: use the "cg" argument when pulling a bundle2
We use the `cg` argument to disable the generation of a changegroup part. This
is useful to pull information when changesets are already in sync (phases,
obsmarkers).
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 12:51:00 +0200] rev 22351
wireprotocol: fix 'boolean' handling
The encoding and decoding code were swapped. This is now fixed.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 Aug 2014 01:15:09 -0700] rev 22350
push: only push obsmarkers relevant to the "pushed subset"
We should only exchange obsolete markers related to the changesets
that are being exchanged. For example, if `A'` is a successor of `A`,
we do not want to push the marker if we are not exchanging
`A'`. Otherwise `A` would disappear without a successor, leading to confusion
for both users and the evolution mechanism.
Therefore we now exchange only the markers relevant to the subset of nodes
involved in the push (the nodes themselves may be already common but were
selected by --rev (or the lack of --rev)).
Note that all selected markers are still exchanged on each push. We do
not have a discovery protocol for markers in core yet. Such discovery
would save us the exchange of markers known on both side.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 Aug 2014 19:47:35 -0700] rev 22349
test-obsolete: sort the output of debugobsolete
The set of relevant markers is currently unordered. Therefore the
markers will be added in arbitrary order. We sort the list of markers
beforehand to ensure stable output for testing.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 Aug 2014 19:42:33 -0700] rev 22348
test-obsolete: change a marker so it is relevant to the exchanged set
We are going to only exchange markers relevant to the exchanged
changesets. So we need to change this marker to use a known changeset as
a successor instead of a precursor.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 25 Aug 2014 19:44:27 +0200] rev 22347
push: use bundle2 to push obsmarkers when possible
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 25 Aug 2014 19:32:51 +0200] rev 22346
exchange: add a `buildobsmarkerpart` function
We'll have to build an obsmarker part for both push and pull. So we build a
function to factor out the common part.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 Aug 2014 11:36:23 +0200] rev 22345
obsolete: add a `commonversion` function
This function returns the highest common version between the locally known
formats and a list of remotely known formats. This is going to be useful to
know what format should be used for exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 Aug 2014 11:48:26 +0200] rev 22344
bundle2: add a `obsmarkersversion` function to extract supported version
Right next to the function that encodes the supported versions in
capabilities we add a function that decodes the versions out of capabilities.
This is going to be useful to know what formats can be used for exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 21 Aug 2014 18:18:38 -0700] rev 22343
bundle2: advertise the obsmarker part in bundle2 capabilities
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 25 Aug 2014 19:21:47 +0200] rev 22342
bundle2: introduce a `getrepocaps` to retrieve the bundle2 caps of a repo
This function lets extensions change the bundle2 capabilities of a repository.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 25 Aug 2014 19:17:06 +0200] rev 22341
obsmarker: move bundle2caps from the localrepo class to the bundle2 module
The localrepo path was quicker, easier, more seductive. We'll soon add a
function in another changeset to alter the capabilities.