Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 Jan 2015 12:44:15 -0800] rev 23900
transaction: use 'util.copyfile' for creating backup
Using 'copyfile' (single file) instead of 'copyfiles' (tree) will ensures
destination file will be overwritten. This will prevent some abort if backup
file are left in place for random reason.
It also seems more correct.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 Jan 2015 12:39:09 -0800] rev 23899
copyfile: allow optional hardlinking
Some code paths use 'copyfiles' (full tree) for a single file to take advantage
of the best-effort-hard-linking parameter. We add similar parameter and logic
to 'copyfile' (single file) for this purpose.
The single file version have the advantage to overwrite the destination file if
it exists.
Eric Sumner <ericsumner@fb.com> [Thu, 15 Jan 2015 16:51:13 -0800] rev 23898
repair: add experimental option to write bundle2 files
This adds an experimental option 'strip-bundle2-version' which causes backup
bundles to use bundle2 formatting. Especially for generaldelta repositories,
this should provide significant performance gains for any operation that needs
to write a backup.
Eric Sumner <ericsumner@fb.com> [Thu, 15 Jan 2015 15:55:13 -0800] rev 23897
changegroup.getsubset: support multiple versions
Allow a version parameter to specify which version of the packer should be
used
Eric Sumner <ericsumner@fb.com> [Thu, 15 Jan 2015 15:39:16 -0800] rev 23896
changegroup.writebundle: HG2Y support
This diff adds support to writebundle to generate a bundle2 wrapper; upcoming
diffs will add an option to write a v2 changegroup part instead of v1 in these
bundles.
Eric Sumner <ericsumner@fb.com> [Thu, 15 Jan 2015 14:39:41 -0800] rev 23895
changegroup.writebundle: provide ui
The next diff will add support for writing bundle2 files to writebundle, but
the bundle2 generator wants access to a ui object. This changes the signature
and callsites to pass one in.
Matt Mackall <mpm@selenic.com> [Fri, 16 Jan 2015 16:25:30 -0800] rev 23894
test-module-imports: use test-repo requirement
Mads Kiilerich <madski@unity3d.com> [Fri, 09 Jan 2015 19:10:09 +0100] rev 23893
largefiles: don't rehash largefiles in updatelfiles if standin hash changed
Standins are read before and after an update/merge, and all the standins that
changes are handed to updatelfiles for getting their corresponding largefiles
updated. updatelfiles would then hash the largefile and see if it already
matched the new expected hash. If so, it would skip the update. If different,
the largefile would be updated.
It would happen very rarely that the largefile happened to match the new hash
(and thus not the old one) and the hashing would thus be pointless ... and
hashing is not cheap.
Instead, when it is known that the standin hash changed (from an update), just
update the standin unconditionally. If the largefile was "unsure" before the
update, it was hashed at that point, so we know there is nothing to preserve.
(Also, the hashing in updatelfiles was not used to preserve changes, but only
to be lazy about updating the largefile, so nothing is lost by not doing this
extra hashing.)
There might be rare situations where we now will update largefiles that didn't
have to be updated, but in all relevant cases (?) this will improve
performance.
Updates on a repo with some big largefiles has been seen to go from 9.19 s to
6.8 s - that is 26% less painful.
Mads Kiilerich <madski@unity3d.com> [Fri, 16 Jan 2015 19:51:25 +0100] rev 23892
largefiles: show progress when checking standin hashes in outgoing changesets
This checking can take a huge amount of time and we should give user a hint
that something is going on.
Eric Sumner <ericsumner@fb.com> [Wed, 14 Jan 2015 17:09:55 -0800] rev 23891
unbundle: support bundle2 files
This adds support for bundle2 files to the unbundle command.
Eric Sumner <ericsumner@fb.com> [Fri, 16 Jan 2015 12:53:45 -0800] rev 23890
pullbundle2: extract addchangegroup result combining into its own function
This will also be used for 'hg unbundle'
Augie Fackler <raf@durin42.com> [Fri, 16 Jan 2015 15:31:45 -0500] rev 23889
histedit: add a test to show that
issue4251 is fixed (
issue4251)
This will help us not regress this case in the future.
Eric Sumner <ericsumner@fb.com> [Thu, 15 Jan 2015 15:35:26 -0800] rev 23888
commands.debugbundle: bundle2 support
This enables debugbundle to print supporting info for bundle2 files.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 12 Jan 2015 22:30:12 -0500] rev 23887
largefiles: cleanup overrideadd()
This was a remnant of the code prior to overridding cmdutil.add().
Matt Harbison <matt_harbison@yahoo.com> [Mon, 12 Jan 2015 21:44:43 -0500] rev 23886
largefiles: enable subrepo support for add
The --large, --normal and --lfsize args couldn't be passed to a subrepo before,
and files in the subrepos would be added silently (if -v wasn't specified) as
normal files. As an added bonus, 'hg add --dry-run' no longer prints that
largefiles would also be added as normal files as well.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 12 Jan 2015 20:59:17 -0500] rev 23885
add: pass options via keyword args
The largefiles extensions needs to be able to pass --large, --normal and
--lfsize to subrepos via cmdutil.add() and hgsubrepo.add(). Rather than add
additional special purpose arguments, stop extracting the existing args from the
**opts passed to commands.add() and just pass them along.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 31 Dec 2014 18:24:32 -0500] rev 23884
largefiles: don't pop largefile-specific arguments to the add command
The arguments will need to stay present when making add work with subrepos.
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 11 Jan 2015 16:20:15 +0100] rev 23883
share: replace the bookmarks.shared file with an entry on a new "shared" file
cd79fb4d75fd introduced a way to share bookmarks. When a repository share that
shares bookmarks was created, a .hg/bookmarks.shared file was created to mark
the repository share as one that shares its bookmarks.
We have plans to introduce other levels of sharing, including a "full share"
mode. Rather than creating a new ".shared" file for each new thing that we may
want to share It seems better to create a single "shared" file that will list
what is shared for a given shared repository. This should make it much easier
to get a list of everything that is shared by a given shared repository.
The shared file contains a list of shared "items" (such as bookmarks). Each
shared "item" is added as a new line in the file. For now the only possible
entry in the file is "bookmarks".
Mads Kiilerich <madski@unity3d.com> [Sun, 02 Nov 2014 02:36:47 +0100] rev 23882
docker: support Fedora 21
Mads Kiilerich <madski@unity3d.com> [Fri, 16 Jan 2015 04:26:40 +0100] rev 23881
rpm: make Python 2.7.9 the default Python to include in rpms for EL 5
Use the new and more TLS support in Python 2.7.9.
Mads Kiilerich <madski@unity3d.com> [Fri, 16 Jan 2015 04:26:25 +0100] rev 23880
contrib: make Python 2.7.9 the default in Makefile.python
We should utilize (and test) the big API changes and new TLS functionality in
Python 2.7.9 whenever possible.
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 11 Jan 2015 01:51:52 +0100] rev 23879
localrepo: remove all external users of localrepo.wopener
This change touches every module in which repository.wopener was being used, and
changes it for the equivalent repository.wvfs.
It should now be possible to remove localrepo.wopener.
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 11 Jan 2015 00:25:54 +0100] rev 23878
localrepo: remove all external users of localrepo.sopener
This change touches every module in which repository.sopener was being used, and
changes it for the equivalent repository.svfs.
It should now be possible to remove localrepo.sopener.
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 15 Jan 2015 23:17:12 +0100] rev 23877
localrepo: remove all external users of localrepo.opener
This change touches every module in which repository.opener was being used, and
changes it for the equivalent repository.vfs. This is meant to make it easier
to split the repository.vfs into several separate vfs.
It should now be possible to remove localrepo.opener.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 20:29:47 -0800] rev 23876
log: use namespace logname and colorname
Now that we have the machinary to change the log name and the color label used,
let's use that. Tests have been updated accordingly.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 20:11:02 -0800] rev 23875
namespaces: add colorname member to namespace object
Previously, there was no way to change the color label used for 'hg log'
output. This patch just adds the member to the object, a future patch will
change 'hg log' to use this.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 20:06:44 -0800] rev 23874
namespaces: add logname member to namespace object
Previously, there was no way to change the name used for 'hg log' output. This
was inconvenient for extensions that want a template name longer than 12
characters (e.g. remotebookmarks) but a different name for 'hg log'.
This patch only adds the member to the object, a future patch will update the
'hg log' code.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 19:55:20 -0800] rev 23873
namespaces: use named args for namespace api
This is just a style change but makes adding new arguments more robust for
callers.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 19:39:13 -0800] rev 23872
namespaces: make the constructor into named args
None of the arguments are truly optional but this makes adding future arguments
more robust and perhaps optional.
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 15 Jan 2015 20:36:03 -0800] rev 23871
dispatch: only check compatibility against major and minor versions (BC)
Extensions can declare compatibility with Mercurial versions. If an
error occurs, Mercurial will attempt to pin blame on an extension that
isn't marked as compatible.
While all bets are off when it comes to the internal API, my experience
has shown that a monthly/patch release of Mercurial has never broken any
of the extensions I've written. I think that expecting extensions to
declare compatibility with every patch release of Mercurial is asking a
bit much and adds little to no value.
This patch changes the blame logic from exact version matching to only
match on the major and minor Mercurial versions. This means that
extensions only need to mark themselves as compatible with the major,
quarterly releases and not the monthly ones in order to stay current and
avoid what is almost certainly unfair blame. This will mean less work
for extension authors and almost certainly fewer false positives in the
blame attribution.