Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 15:16:33 +0200] rev 18984
obsolete: extract foreground computation from bookmark.validdest
This foreground logic will be reused by update logic.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Apr 2013 17:10:58 +0200] rev 18983
destroyed: invalidate phraserevs cache in all case (issue3858)
When revisions are destroyed, the `phaserevs` cache becomes invalid in most case.
This cache hold a `{rev => phase}` mapping and revision number most likely
changed.
Since 1c8e0d6ac3b0, we filter unknown phases' roots after changesets
destruction. When some roots are filtered the `phaserevs` cache is invalidated.
But not if none root where destroyed.
We now invalidate the cache in all case filtered root or not.
This bug was a bit tricky to reproduce as in most case we either:
* rebase a set a draft changeset including root (phaserev invalidated)
* strip tip-most changesets (no re-numbering of revision)
Note that the invalidation of `phaserevs` are not strictly needed when only
tip-most part of the history have been destroyed. But I do not expect the
overhead to be significant.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18982
largefiles: deprecate --all-largefiles for pull
The same can be achieved with --lfrev pulled() and we shouldn't advertise
unnecessary command line options.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18981
largefiles: implement pull --all-largefiles as a special case of --lfrev
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18980
largefiles: drop --cache-largefiles again
This goes a step further than d69585a5c5c0 and backs out the unreleased
--cache-largefiles option. The same can be achieved with --lfrev heads(pulled()) and
we shouldn't introduce unnecessary command line options.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:04 +0200] rev 18979
largefiles: introduce pulled() revset expression for use in --lfrev
This provides a general way to do what already can be done with
--all-largefiles and --cache-largefiles.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:57:16 +0200] rev 18978
largefiles: introduce pull --lfrev option
The revset will be evaluated after the changesets has been pulled, and missing
largefiles from matching revisions will be pulled to the local caches.
This in combination with revsets will make it possible to specify different
strategies for pulling largefiles.
The revset expressions used for this option might be quite complex and will
probably be most useful from scripts or an alias ... but less complicated than
configuring hooks.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:54:43 +0200] rev 18977
largefiles: refactor overridepull internals
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:53:37 +0200] rev 18976
largefiles: introduce lfpull command for pulling missing largefiles
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:46:10 +0200] rev 18975
largefiles: update help
Some clarifications, and some clean-up after --cache-largefiles was introduced.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:43:31 +0200] rev 18974
largefiles: fix cat of non-largefiles from subdirectory
We were calling back to the original commands.cat from inside the walk loop
that handled and filtered out largefiles. That did however happen with file
paths relative to repo root and the original cat would fail when it applied its
own walk and match on top of that.
Instead we now duplicate and modify the code from commands.cat and patch it to
handle both normal and largefiles.
A change in test output shows that this also makes the exit code with
largefiles consistent with the normal one in the case where one of several
specified files are missing.
This also fixes the combination of --output and largefiles.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:49 +0200] rev 18973
largefiles: don't store whole file in memory for 'cat'
ronvoe12249 <ronny.voelker@elaxy.com> [Tue, 16 Apr 2013 13:55:38 +0200] rev 18972
mergetools: rename 'base' to 'merged' in meld
This makes it clear which panel is the target of the merge operation.
ronvoe12249 <ronny.voelker@elaxy.com> [Thu, 21 Feb 2013 14:49:25 +0100] rev 18971
mergetools: avoid losing the merged version with meld
Add -o $output.
When using Meld as intended (merge from left and right into the center panel),
the merged version is written to the wrong file without this option ($base,
a temporary file, which is ignored by Mercurial).
Add meld.check=changed as a secondary safety net.
Matt Mackall <mpm@selenic.com> [Tue, 16 Apr 2013 09:44:29 -0500] rev 18970
templatekw: add default styles for hybrid types (issue3887)
This allows elements like file_copies to be printed as 'name (source)'
when used with join.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Apr 2013 02:27:35 +0900] rev 18969
largefiles: improve repo wrapping detection
Before this patch, repo wrapping detection in "reposetup()" of
largefiles can detect only limited repo wrapping: replacing target
functions by another one named as "wrap".
So, it can't detect repo wrapping even in recommended style: replacing
"__class__" of repo by derived class.
This patch can detect repo wrapping in both styles below:
- replacing "__class__" of repo by derived class (recommended style):
class derived(repo.__class__):
def push(self, *args, **kwargs):
return super(derived, self).push(*args, **kwargs)
repo.__class__ = derived
- replacing function of repo by another one (not recommended style):
orgpush = repo.push
def push(*args, **kwargs):
return orgpush(*args, **kwargs)
repo.push = push
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 21 Mar 2013 23:27:37 +0100] rev 18968
hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 21 Mar 2013 22:09:15 +0100] rev 18967
archive: raise error.Abort if the file pattern matches no files
Note that we could raise this exception even if no pattern were specified, but
the revision contained no files. However this should not happen in practice
since in that case commands.py/archive would exit earlier with an "no working
directory: please specify a revision" error message instead.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Feb 2013 14:22:52 -0500] rev 18966
ui: add 'force' parameter to traceback() to override the current print setting
This will allow a current traceback.print_exc() call in dispatch to be replaced
with ui.traceback() even if --traceback was not given on the command line.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Feb 2013 14:15:34 -0500] rev 18965
ui: add support for fully printing chained exception stacks in ui.traceback()
Currently, only SubrepoAbort has a cause chained to it.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 06 Feb 2013 22:54:09 -0500] rev 18964
subrepo: chain the original exception to SubrepoAbort
The tracebacks in subrepos are truncated at the point where the original
exception is caught and SubrepoAbort is raised in its place since 9e3910db4e78.
That hides the most relevant subrepo methods when an error occurs. Python 2.x
doesn't support chaining exceptions, so it is manually done here for manual
printing later.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:47 +0200] rev 18963
debugrebuildstate: rename to debugrebuilddirstate
There is a lot of state, but this command is for rebuilding the dirstate.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:27 +0200] rev 18962
debugstate: rename to debugdirstate
There is a lot of state, but this command is for debugging the dirstate.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:39:02 +0200] rev 18961
debugrebuildstate: clarify that rev can't be specified without -r
-r has a default value of '' in the command line. The function default value of
'tip' is thus never used and any attempt at specifying revisions without -r
will fail.
It seems like then intended behavior was that 'hg debugrebuildstate' without
any parameters should set the parents to tip. That would be very confusing now
when the command primarily is used to recover from incorrect stat info.
It is apparently undocumented that '' is the same as '.' ... unless it is
passed in a place where revsets are used.
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18960
check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18959
check-code: catch trailing space in comments
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18958
spelling: fix typos and spelling errors
Mads Kiilerich <madski@unity3d.com> [Thu, 11 Apr 2013 14:54:18 +0200] rev 18957
wireproto: clarify cryptic 'remote: unsynced changes' error message on push
The message was not very much to the point and did not in any way help an
ordinary user.
'repository changed while preparing/uploading bundle - please try again'
is more correct, gives the user some understanding of what is going on, and
tells how to 'recover' from the situation.
The 'bundle' aspect could be seen as an implementation detail that shouldn't be
mentioned, but I think it helps giving an exact error message.
The message could still leave the user wondering why Mercurial doesn't lock the
repo and how unsafe it thus is. Explaining that is however too much detail.
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Feb 2013 00:43:12 +0100] rev 18956
export: export working directory parent by default
A common usecase for export is to preview the patch that will be patchbombed or
to see what changed in a revision found by bisect. Showing the working
directory parent is thus a useful and obvious default.
Mads Kiilerich <madski@unity3d.com> [Wed, 10 Apr 2013 13:12:24 +0200] rev 18955
commit: allow closing "non-head" changesets
Backout acd61dc44a39. The changeset prevented closing non-head changesets but
did not provide any rationale or test case and I don't see what value it adds.
Users might have their reasons to commit something anywhere - and close it
immediately.
And contrary to the comment that is removed: The topo heads set is _not_
included in the branch heads set of the current branch. It do not include
closed topological heads.
The change thus prevented closing commits on top of closing commits. A valid
usecase for that is to merge closed heads to reduce the number of topological
heads.
The only existing test coverage for this is the failing double close in
test-revset.t. It was added in 3cc2e34d7a7d and seems to not be intentional.