Mads Kiilerich <madski@unity3d.com> [Thu, 03 Jan 2013 21:07:04 +0100] rev 18302
archival: avoid touching deprecated gzip name attribute
The existing workaround didn't work when no filename was specified.
If running in a context with warnings enabled and subsecond mtime it gave a
warning:
DeprecationWarning: use the name attribute
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Jan 2013 21:07:04 +0100] rev 18301
archival: pass integer to struct.pack int field instead of float
If running in a context with warnings enabled and subsecond mtime it gave a
warning:
DeprecationWarning: integer argument expected, got float
Mads Kiilerich <madski@unity3d.com> [Fri, 11 Jan 2013 16:30:29 +0100] rev 18300
largefiles: fix update from a merge with removed files
A situation with this case could happen after interrupting an update. Update
would fail with:
abort: No such file or directory: $TESTTMP/f/.hglf/sub2/large6
Update from a merge without using clean is not possible anyway, so this patch
takes a step in the right direction so it gets as far as reporting the right
error.
Mads Kiilerich <madski@unity3d.com> [Fri, 11 Jan 2013 16:30:29 +0100] rev 18299
largefiles: fix revert removing a largefile from a merge
Before revert could fail with:
abort: .hglf/large@33fdd332ec64: not found in manifest!
The LookupError will now be caught and handled correctly.
Mads Kiilerich <madski@unity3d.com> [Fri, 11 Jan 2013 16:30:29 +0100] rev 18298
largefiles: remove unused proto.refuseclient code
Should have been removed with other pre-1.9 code in 7c604d8c7e83.
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 03 Jan 2013 17:42:25 +0100] rev 18297
subrepo: make 'in subrepo' string easier to find by external tools
This patch is meant to make it easier for tools that wrap the mercurial
output (such as TortoiseHg) to find the "in subrepo MYSUBREPO" string that
(since 9e3910db4e78) is appended after subrepo error messages, particularly when
the mercurial output is translated to a non-English language.
The message remains the same but the '%s' that was used to prepend the original
error message in front of the 'in subrepo' string has been moved out of the
translatable string.
As an example of the usefulness of making it easy to look for "in subrepo
MYSUBREPO" strings, TortoiseHg looks for these strings in error messages in
order to "linkify them" (i.e. convert "MYSUBREPO" into alink to the
corresponding subrepo).
The original string made it hard for a tool such as TortoiseHg to look for the
translated string on mercurial's output because the translated string contained
the error message itself. This meant that a regular expression was required to
ignore the error message part. With this change TortoiseHg can just get the
translated "(in subrepo %s)" string, substitute %s for the subrepo path (which
it gets from the subrepo exception) and simply search for the resulting string
(no regular expression needed, or at least a much simpler regular expression
could be used).
Additionaly, the existing string could lead a translator mistakenly assume that
it was possible invert the order of the %s (error and subrepo path) fields,
which would not work because the string interpolation was position based.
Brendan Cully <brendan@kublai.com> [Thu, 10 Jan 2013 10:35:37 -0800] rev 18296
subrepo: fix python2.4 compatibility after 9aa6bee6e9f9
super(SubrepoAbort, self).__init__(*args, **kw) raises
TypeError: super() argument 1 must be type, not classobj
Christian Ebert <blacktrash@gmx.net> [Thu, 10 Jan 2013 16:25:06 +0000] rev 18295
test-keyword: improve grammar and spelling in branchcache note
See: da9e544c69d6
Augie Fackler <raf@durin42.com> [Thu, 10 Jan 2013 09:43:28 -0500] rev 18294
Merge with stable.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 10:25:02 +0100] rev 18293
repoview: extract hideable revision computation in a dedicated function
This will help extensions to plug into the hidden mechanism.
Mads Kiilerich <madski@unity3d.com> [Thu, 10 Jan 2013 15:33:14 +0100] rev 18292
largefiles: make update with backup files in .hglf slightly less broken
Largefiles update would try to copy f to f.orig if there was a .hglf/f.orig .
That is in many many ways very very wrong, but it also caused an abort if f
didn't exist.
Now it only tries to copy f if it exists.
Matt Mackall <mpm@selenic.com> [Wed, 09 Jan 2013 19:10:44 -0600] rev 18291
tests: fix up test-highlight for breadcrumb changes
Sean Farley <sean.michael.farley@gmail.com> [Fri, 28 Dec 2012 19:25:10 -0600] rev 18290
color: add template label function
Sean Farley <sean.michael.farley@gmail.com> [Sat, 22 Dec 2012 21:46:26 -0600] rev 18289
templater: add no-op template function 'label'
Remy Blank <remy.blank@pobox.com> [Wed, 09 Jan 2013 20:27:17 +0100] rev 18288
posix: fix split() for the case where the path is at the root of the filesystem
posixpath.split() strips '/' from the dirname *unless it is the root*. This
patch reproduces this behavior in posix.split(). The old behavior causes a
crash when creating a file at the root of the repo with localrepo.wfile()
when the repo is at the root of the filesystem.
Idan Kamara <idankk86@gmail.com> [Wed, 09 Jan 2013 21:13:52 +0200] rev 18287
record: remove unused import
Idan Kamara <idankk86@gmail.com> [Wed, 09 Jan 2013 21:11:00 +0200] rev 18286
cvsps: fix indentation
Bryan O'Sullivan <bryano@fb.com> [Wed, 09 Jan 2013 13:16:54 -0800] rev 18285
hghave: introduce a test (unused) for cvs >= 1.12
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:50:14 +0100] rev 18284
discovery: drop the visibleheads function
It has no users left. (Using filtering explicitly is easier.)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:48:22 +0100] rev 18283
clfilter: remove the last usage of `visibleheads`
We can just inline the filtering now that all server code uses
changelog filtering directly.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 05 Jan 2013 18:57:09 +0100] rev 18282
discovery: drop the visiblebranchmap function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:36:30 +0100] rev 18281
clfilter: drop extra filtering in wireprotocol
The repository used by wireprotocol is already filtered. We no
longer need to call special functions.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:37:33 +0100] rev 18280
clfilter: filter "unserved" on all wireprotocol command calls
This ensures that unserved changesets are not exposed through the
wire protocol.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:28:52 +0100] rev 18279
clfilter: drop extra filtering in localpeer
The repository used by localpeer is already filtered. We no longer
need to call a special function.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Jan 2013 04:41:11 +0100] rev 18278
clfilter: make localpeer use a repo with "unserved" filter
This changeset installs a broad filter on most repos used for
serving. This removes the need to use the `visiblehead`/`visiblebranchmap`
functions, and ensures that changesets we should not serve are in
fact never served.
We do not use filtering on hgweb yet, as there is still a number
of issues to solve there.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:16:08 +0100] rev 18277
performance: speedup computation of extinct revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository.
This change drops revset calls in favor of direct testing of the phase
of changesets.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! extinct
! wall 0.015124
After:
! extinct
! wall 0.009424
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! extinct
! wall 0.032844
After:
! extinct
! wall 0.000066
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:15:44 +0100] rev 18276
performance: speedup computation of suspended revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository.
This change drops a revset call in favor of direct testing of the
phase of changesets.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! suspended
! wall 0.014319
After:
! suspended
! wall 0.009559
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! suspended
! wall 0.033373
After:
! suspended
! wall 0.000053
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:15:21 +0100] rev 18275
performance: speedup computation of unstable revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository.
This change drops revset call in favor of direct testing of the
phase of changesets.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! unstable
! wall 0.017366
After this changes:
! unstable
! wall 0.008093
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! unstable
! wall 0.045190
After:
! unstable
! wall 0.000032
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 07 Jan 2013 15:50:25 +0100] rev 18274
performance: speedup computation of mutable revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository. The "mutable" filter is used
during branch cache loading operation. We need to make it fast.
This change drops revset calls in favor of direct testing of the
phase of a changeset.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1646 mutable revision
Before:
! mutable
! wall 0.032405
After:
! mutable
! wall 0.001469
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 mutable changeset,
Before:
! mutable
! wall 0.188636
After:
! mutable
! wall 0.000022
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 04 Jan 2013 20:19:05 +0100] rev 18273
performance: speedup computation of unserved revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository. The "unserved" filter is used
in multiple applications, and in particular in some branch cache
loading operations. We need to make it fast.
This change drops revset calls in favor of direct testing of the
phase of a changeset.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! unserved
! wall 0.030477
After:
! unserved
! wall 0.011844
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! unserved
! wall 0.111259
After:
! unserved
! wall 0.000084