Fri, 15 Aug 2014 04:37:45 +0200 cleanup: remove some unused / duplicate imports
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 04:37:45 +0200] rev 22202
cleanup: remove some unused / duplicate imports
Fri, 15 Aug 2014 04:37:46 +0200 cleanup: fix some list comprehension redefinitions of existing vars
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 04:37:46 +0200] rev 22201
cleanup: fix some list comprehension redefinitions of existing vars In all the remaining cases the comprehension variable is used for the same thing as a previous loop variable. This will mute some pyflakes "list comprehension redefines" warnings.
Fri, 15 Aug 2014 16:20:47 +0200 cleanup: avoid local vars shadowing imports
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 16:20:47 +0200] rev 22200
cleanup: avoid local vars shadowing imports This will mute some pyflakes "import ... shadowed by loop variable" warnings.
Fri, 15 Aug 2014 16:20:47 +0200 cleanup: avoid _ for local unused tmp variables - that is reserved for i18n
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 16:20:47 +0200] rev 22199
cleanup: avoid _ for local unused tmp variables - that is reserved for i18n _ is usually used for i18n markup but we also used it for I-don't-care variables. Instead, name don't-care variables in a slightly descriptive way but use the _ prefix to designate unused variable. This will mute some pyflakes "import '_' ... shadowed by loop variable" warnings.
Fri, 15 Aug 2014 04:37:45 +0200 cleanup: make sure we always access members of imported modules
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 04:37:45 +0200] rev 22198
cleanup: make sure we always access members of imported modules This will make sure we get import errors, even if demandimport is enabled. This will also mute some pyflakes 'imported but unused' warnings.
Fri, 15 Aug 2014 20:28:51 +0900 largefiles: update lfdirstate for unchanged largefiles during linear merging
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 15 Aug 2014 20:28:51 +0900] rev 22197
largefiles: update lfdirstate for unchanged largefiles during linear merging Before this patch, linear merging of modified largefiles causes an unexpected result, if (1) largefile collides with same-name normal one in the target revision and (2) "local" largefile is chosen, even though branch merging between such revisions works correctly. Expected result of such linear merging is marking the largefile as (re-)"added", but the actual result is marking it as "modified". The standin of modified "local largefile" is not changed by linear merging, and updating/merging update lfdirstate entries only for largefiles of which standins are changed. This patch adds the code path to update lfdirstate only for largefiles of which standins are not changed. In this case, "synclfdirstate" should be invoked with True as "normallookup" argument always to force using "normallookup" on dirstate for "n" files, because "normal" may mark target files as "clean" unexpectedly. To reduce cost of "lfile not in filelist", this patch converts "filelist" to a "set" object: "filelist" is used only in (1) the newly added code path and (2) the next line of "filelist = set(filelist)". This is a temporary way to fix with less changes. For fundamental resolution of this kind of problems in the future, "lfdirstate" should be updated with "dirstate" simultaneously during "merge.update" execution: maybe by hooking "recordupdates" (+ total refactoring around lfdirstate handling)
Fri, 15 Aug 2014 20:28:51 +0900 largefiles: keep largefiles from colliding with normal one during linear merge
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 15 Aug 2014 20:28:51 +0900] rev 22196
largefiles: keep largefiles from colliding with normal one during linear merge Before this patch, linear merging of modified or newly added largefile causes unexpected result, if (1) largefile collides with same name normal one in the target revision and (2) "local" largefile is chosen, even though branch merging between such revisions doesn't. Expected result of such linear merging is: (1) (not yet recorded) largefile is kept in the working directory (2) largefile is marked as (re-)"added" (3) colliding normal file is marked as "removed" But actual result is: (1) largefile in the working directory is unlinked (2) largefile is marked as "normal" (so treated as "missing") (3) the dirstate entry for colliding normal file is just dropped (1) is very serious, because there is no way to restore temporarily modified largefiles. (3) prevents the next commit from adding the manifest with correct "removal of (normal) file" information for newly created changeset. The root cause of this problem is putting "lfile" into "actions['r']" in linear-merging case. At liner merging, "actions['r']" causes: - unlinking "target file" in the working directory, but "lfile" as "target file" is also largefile itself in this case - dropping the dirstate entry for target file "actions['f']" (= "forget") does only the latter, and this is reason why this patch doesn't choose putting "lfile" into it instead of "actions['r']". This patch newly introduces action "lfmr" (LargeFiles: Mark as Removed) to mark colliding normal file as "removed" without unlinking it. This patch uses "hg debugdirstate" instead of "hg status" in test, because: - choosing "local largefile" hides "removed" status of "remote normal file" in "hg status" output, and - "hg status" for "large2" in this case has another problem fixed in the subsequent patch
Fri, 15 Aug 2014 20:28:51 +0900 largefiles: add test for large/normal conflict at linear merging
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 15 Aug 2014 20:28:51 +0900] rev 22195
largefiles: add test for large/normal conflict at linear merging Before this patch, there is no explicit test for it: test-issue3084.t seems to test such conflict only at branch merging. This patch uses "[debug] dirstate.delaywrite" feature for the tests expecting "M" status of largefiles, to confirm certainly whether files are marked unexpectedly as "clean".
Fri, 15 Aug 2014 20:28:51 +0900 largefiles: put whole "hgmerge" process into the same "wlock" scope
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 15 Aug 2014 20:28:51 +0900] rev 22194
largefiles: put whole "hgmerge" process into the same "wlock" scope Before this patch, there are two distinct "wlock" scopes below in "hgmerge": 1. "merge.update" via original "hg.merge" function 2. "updatelfiles" specific "wlock" scope (to synchronize largefile dirstate) But these should be executed in the same "wlock" scope for consistency, because users of "hg.merge" don't get "wlock" explicitly before invocation of it. - merge in commands This patch puts almost all of the original "hgmerge" implementation into "_hgmerge" to reduce changes.
Fri, 15 Aug 2014 20:28:51 +0900 largefiles: put whole "hgupdaterepo" process into the same "wlock" scope
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 15 Aug 2014 20:28:51 +0900] rev 22193
largefiles: put whole "hgupdaterepo" process into the same "wlock" scope Before this patch, there are two distinct "wlock" scopes below in "hgupdaterepo": 1. "merge.update" via original "hg.updaterepo" function 2. "updatelfiles" specific "wlock" scope (to synchronize largefile dirstate) In addition to them, "dirstate.walk" is executed between these "wlock" scopes. But these should be executed in the same "wlock" scope for consistency, because many (indirect) users of "hg.updaterepo" don't get "wlock" explicitly before invocation of it. "hg.clean" is invoked without "wlock" from: - mqrepo.restore in mq - bisect in commands - update in commands "hg.update" is invoked without "wlock" from: - clone in mq - pullrebase in rebase - postincoming in commands (used in "hg pull -u", "hg unbundle") - update in commands This patch puts almost all original "hgupdaterepo" implementation into "_hgupdaterepo" to reduce changes.
Fri, 15 Aug 2014 14:33:19 +0900 annotate: inline definition of decorate() functions
Yuya Nishihara <yuya@tcha.org> [Fri, 15 Aug 2014 14:33:19 +0900] rev 22192
annotate: inline definition of decorate() functions
Fri, 15 Aug 2014 14:29:30 +0900 annotate: rewrite long short-circuit statement by if-elif-else
Yuya Nishihara <yuya@tcha.org> [Fri, 15 Aug 2014 14:29:30 +0900] rev 22191
annotate: rewrite long short-circuit statement by if-elif-else
Tue, 24 Jun 2014 17:27:18 +0100 revert: use modified information from both statuses
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 17:27:18 +0100] rev 22190
revert: use modified information from both statuses Using status information against the target ensures we are catching all files with modifications that need reverting. We still need to distinguish fresh modifications for backup purpose. test-largefile is affected because it reverted a file that needs no content change.
Tue, 24 Jun 2014 16:57:16 +0100 revert: drop special case handling for file unknown in parent
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 16:57:16 +0100] rev 22189
revert: drop special case handling for file unknown in parent We had a special case for file not caught by any categories. It was aimed at files missing in wc and wc's parent but existing in the target revision. This is now properly handled using status information.
Tue, 24 Jun 2014 16:53:22 +0100 revert: use "remove" information from both statuses
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 16:53:22 +0100] rev 22188
revert: use "remove" information from both statuses Using status information against the target to make sure we are catching all files that need to be re-added. We still need to distinguish fresh removal because they use a different message.
Fri, 01 Aug 2014 18:27:47 -0700 revert: process removed files missing in target as clean
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Aug 2014 18:27:47 -0700] rev 22187
revert: process removed files missing in target as clean If a file does not exist in target and is marked as removed in the dirstate, we can mark it as clean. There are no changes needed to revert it.
Thu, 31 Jul 2014 15:52:56 -0700 revert: also track clean files
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 31 Jul 2014 15:52:56 -0700] rev 22186
revert: also track clean files Tracking clean files is the simplest way to be able to reports files that need no changes. So we explicitly retrieve them. This fixes a couple of test outputs where the lack of changes was not reported.
Fri, 01 Aug 2014 18:57:53 -0700 revert: triage "deleted" files into more appropriate categories
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Aug 2014 18:57:53 -0700] rev 22185
revert: triage "deleted" files into more appropriate categories Status can return file as "deleted". This is only a special case related to working directory state: file is recorded as tracked but no file exists on disk. This will never be a state obtainable from manifest comparisons. "Deleted" files have another working directory status shadowed by the lack of file. They will -alway- be touched by revert. The "lack of file" can be seen as a modification. The file will never match the same "content" as in the revert target. From there we have two options: 1. The file exists in the target and can be seen as "modified". 2. The file does not exist in the target and can be seen as "added". So now we just dispatch elements from delete into appropriate categories.
Fri, 15 Aug 2014 10:54:15 -0500 unshelve: silence internal revert
Matt Mackall <mpm@selenic.com> [Fri, 15 Aug 2014 10:54:15 -0500] rev 22184
unshelve: silence internal revert This prepares for upcoming revert changes.
Fri, 15 Aug 2014 10:47:03 -0500 tests: fixup issue markers to make check-commit happy
Matt Mackall <mpm@selenic.com> [Fri, 15 Aug 2014 10:47:03 -0500] rev 22183
tests: fixup issue markers to make check-commit happy
Fri, 15 Aug 2014 03:24:40 +0200 incoming: don't request heads that already are common stable
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 03:24:40 +0200] rev 22182
incoming: don't request heads that already are common Pull would send a getbundle command where common heads were sent both as common and head, even though there is no reason to request a common head. The request was thus twice as big as necessary and more likely to hit HTTP header size limits. Instead, don't request heads that already are common. This is fixed in bundlerepo.getremotechanges . It could perhaps also have been fixed in discovery.findcommonincoming but that would have a bigger impact.
Fri, 15 Aug 2014 03:24:40 +0200 tests: improve test coverage for discovery and actual parameters for pulling stable
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 03:24:40 +0200] rev 22181
tests: improve test coverage for discovery and actual parameters for pulling
Fri, 15 Aug 2014 02:46:44 +0200 changectx: ancestor should only prefer merge.preferancestor if it is a revision stable
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 02:46:44 +0200] rev 22180
changectx: ancestor should only prefer merge.preferancestor if it is a revision The value '*' currently designates that bid merge should be used. The best way to test bid merge is to set preferancestor=* in the configuration file ... but then it would abort with unknown revision '*' when other code paths ended up in changectx.ancestor . Instead, just skip and ignore the value '*' when looking for a preferred ancestor.
Fri, 15 Aug 2014 02:39:01 +0200 merge: show the scary multiple ancestor hint for merges only, not for updates stable
Mads Kiilerich <madski@unity3d.com> [Fri, 15 Aug 2014 02:39:01 +0200] rev 22179
merge: show the scary multiple ancestor hint for merges only, not for updates Updates with uncommited changes will always only have one ancestor - the parent revision. Updates between existing revision should (and will) always give the same result no matter which ancestor is used. The warning is thus only relevant when doing a "real" merge.
Thu, 14 Aug 2014 16:26:41 -0700 discovery: prevent crash on unknown remote heads with old repo (issue4337) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 16:26:41 -0700] rev 22178
discovery: prevent crash on unknown remote heads with old repo (issue4337) When a remote is not capable of the `branchmap` wireproto command, we denote incoming heads with None. This leads to a crash in the code in charge of displaying the list of unknown remote heads. We now properly detect this case and display a shorter message in this case. The reason for this `set([None])` value is now documented.
Thu, 14 Aug 2014 14:59:42 -0700 obsstore.create: add a simple safeguard against cyclic markers stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 14:59:42 -0700] rev 22177
obsstore.create: add a simple safeguard against cyclic markers We detect when there is a cycle in the marker itself (precursors being listed as successors).
Thu, 14 Aug 2014 14:57:03 -0700 debugobsolete: catch ValueError that may be raised by obsstore.create stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 14:57:03 -0700] rev 22176
debugobsolete: catch ValueError that may be raised by obsstore.create There are already a couple of errors that obsstore.create can raise and we are going to introduce a cycle check too.
Thu, 14 Aug 2014 16:39:27 -0500 check-code: extend try/except/finally check for multiple except clauses
Matt Mackall <mpm@selenic.com> [Thu, 14 Aug 2014 16:39:27 -0500] rev 22175
check-code: extend try/except/finally check for multiple except clauses
Thu, 14 Aug 2014 16:39:02 -0500 repoview: fix try/except/finally for py2.4
Matt Mackall <mpm@selenic.com> [Thu, 14 Aug 2014 16:39:02 -0500] rev 22174
repoview: fix try/except/finally for py2.4
Thu, 14 Aug 2014 16:25:47 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 14 Aug 2014 16:25:47 -0500] rev 22173
merge with stable
Thu, 14 Aug 2014 16:18:45 -0500 test-run-tests: fix up slash/backslash on diff chunks for Windows stable
Matt Mackall <mpm@selenic.com> [Thu, 14 Aug 2014 16:18:45 -0500] rev 22172
test-run-tests: fix up slash/backslash on diff chunks for Windows
Wed, 13 Aug 2014 15:55:45 -0700 test-largefiles: add test for hg log --follow --patch with path stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:55:45 -0700] rev 22171
test-largefiles: add test for hg log --follow --patch with path This was the one case for test-largefiles that was not broken.
Wed, 13 Aug 2014 15:51:33 -0700 largefiles: don't override matchandpats for always matchers (issue4334) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:51:33 -0700] rev 22170
largefiles: don't override matchandpats for always matchers (issue4334) This makes hg log --follow --patch work, since in cmdutil._makelogrevset we use the non-follow matcher for hg log --follow --patch with no file arguments.
Wed, 13 Aug 2014 15:18:41 -0700 largefiles: in overridelog, use non-lf matcher for patch generation (issue4334) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:18:41 -0700] rev 22169
largefiles: in overridelog, use non-lf matcher for patch generation (issue4334) This has actually been broken since at least Mercurial 2.8 -- hg log --patch with largefiles only used to work when no largefiles existed. Rev 5809d62e7106 exposed this bug for all cases.
Wed, 13 Aug 2014 15:13:50 -0700 largefiles: drop setting lfstatus in overridelog (issue4334) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:13:50 -0700] rev 22168
largefiles: drop setting lfstatus in overridelog (issue4334) lfstatus should only be True for operations where we want standins to be printed out. We explicitly do not want that for historical operations like log. Other historical operations like hg diff -r A -r B don't print out standins either. This is required to fix issue4334, but doesn't fix anything by itself. That's why there aren't any tests accompanying this patch.
Wed, 13 Aug 2014 15:17:03 -0700 cmdutil: add a hook for making custom non-follow log file matchers stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:17:03 -0700] rev 22167
cmdutil: add a hook for making custom non-follow log file matchers This will be used by largefiles (and basically only by largefiles) in an upcoming patch.
Wed, 13 Aug 2014 15:15:13 -0700 cmdutil: rename _makelogfilematcher to _makefollowlogfilematcher stable
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 15:15:13 -0700] rev 22166
cmdutil: rename _makelogfilematcher to _makefollowlogfilematcher We're going to add a _makenofollowlogfilematcher in an upcoming patch.
Thu, 14 Aug 2014 15:21:48 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 14 Aug 2014 15:21:48 -0500] rev 22165
merge with stable
Wed, 13 Aug 2014 22:22:24 +0900 alias: exit from bad definition by Abort
Yuya Nishihara <yuya@tcha.org> [Wed, 13 Aug 2014 22:22:24 +0900] rev 22164
alias: exit from bad definition by Abort
Wed, 13 Aug 2014 22:18:28 +0900 alias: show one-line hint for command provided by disabled extension
Yuya Nishihara <yuya@tcha.org> [Wed, 13 Aug 2014 22:18:28 +0900] rev 22163
alias: show one-line hint for command provided by disabled extension It will be a hint of Abort exception. "hg help <alias>" provides the detailed version as before.
Wed, 13 Aug 2014 19:38:47 +0900 help: provide help of bad alias without executing aliascmd()
Yuya Nishihara <yuya@tcha.org> [Wed, 13 Aug 2014 19:38:47 +0900] rev 22162
help: provide help of bad alias without executing aliascmd() The output is slightly changed because of minirst formatting. Previously, ui.pushbuffer() had no effect because "badalias" message was written to stderr. "if not unknowncmd" should no longer be needed because there's no call loop.
Wed, 13 Aug 2014 19:28:42 +0900 alias: provide "unknowncmd" flag to tell help to look for disabled command
Yuya Nishihara <yuya@tcha.org> [Wed, 13 Aug 2014 19:28:42 +0900] rev 22161
alias: provide "unknowncmd" flag to tell help to look for disabled command This patch prepares for breaking the call loop: help.help_() -> cmdalias() -> commands.help_() -> help.help_().
Sat, 17 May 2014 21:13:31 +0900 alias: keep error message in "badalias" so that help can see it
Yuya Nishihara <yuya@tcha.org> [Sat, 17 May 2014 21:13:31 +0900] rev 22160
alias: keep error message in "badalias" so that help can see it Upcoming patches will - change help_() to get badalias message without executing cmdalias() - raise Abort on bad alias
Sat, 17 May 2014 20:47:31 +0900 alias: add test for alias command provided by disabled extension
Yuya Nishihara <yuya@tcha.org> [Sat, 17 May 2014 20:47:31 +0900] rev 22159
alias: add test for alias command provided by disabled extension This should complete cases where "badalias" is set.
Wed, 13 Aug 2014 23:21:52 -0700 alias: expand "$@" as list of parameters quoted individually (BC) (issue4200)
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 23:21:52 -0700] rev 22158
alias: expand "$@" as list of parameters quoted individually (BC) (issue4200) Before this patch, there was no way to pass in all the positional parameters as separate words down to another command. (1) $@ (without quotes) would expand to all the parameters separated by a space. This would work fine for arguments without spaces, but arguments with spaces in them would be split up by POSIX shells into separate words. (2) '$@' (in single quotes) would expand to all the parameters within a pair of single quotes. POSIX shells would then treat the entire list of arguments as one word. (3) "$@" (in double quotes) would expand similarly to (2). With this patch, we expand "$@" (in double quotes) as all positional parameters, quoted individually with util.shellquote, and separated by spaces. Under standard field-splitting conditions, POSIX shells will tokenize each argument into exactly one word. This is a backwards-incompatible change, but the old behavior was arguably a bug: Bourne-derived shells have expanded "$@" as a tokenized list of positional parameters for a very long time. I could find this behavior specified in IEEE Std 1003.1-2001, and this probably goes back to much further before that.
Wed, 13 Aug 2014 22:37:09 -0700 test-alias: add some tests to ensure we aren't double-substituting
Siddharth Agarwal <sid0@fb.com> [Wed, 13 Aug 2014 22:37:09 -0700] rev 22157
test-alias: add some tests to ensure we aren't double-substituting An earlier iteration of an upcoming patch caused inadvertent double substitution. Ensure we have test coverage for this.
Thu, 31 Jul 2014 16:03:26 -0700 revert: issue "no changes needed" message for files missing on both side
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 31 Jul 2014 16:03:26 -0700] rev 22156
revert: issue "no changes needed" message for files missing on both side When a file was marked as removed in the working copy and did not existed in the target of the revert, we did not issued any message pointing that no change was needed to the file (implicitly saying that revert had changed the file). We now properly issue a message in this situation. Tests change in and handful of case where the message was documented as missing.
Tue, 24 Jun 2014 15:47:12 +0100 revert: call status against revert target too
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 15:47:12 +0100] rev 22155
revert: call status against revert target too We now call status against the target (and possibly against the working directory parent is different). We do not use the information from the two sources yet, but this is coming soon. We need the status information aganst the dirstate in all case because we need to be able to backup local modification.
Tue, 24 Jun 2014 15:35:43 +0100 revert: prefix variable names for dirstate status with "ds"
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 15:35:43 +0100] rev 22154
revert: prefix variable names for dirstate status with "ds" As we are going to introduce status again other revision we needs to distinguish between data from dirstate status and the other one. We prefix the existing data with "ds" to highlight this.
Tue, 24 Jun 2014 15:28:22 +0100 revert: move manifest membership condition outside of the loop
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 24 Jun 2014 15:28:22 +0100] rev 22153
revert: move manifest membership condition outside of the loop Currently, revset is using information from dirstate status and alter its behavior whenever the file exist in the target manifest or not. This tests are done a big for loop. We move this member ship testing outside of the loop and simplifies associates data structure. This is a step toward a cleaner implementation of revert based on status.
Wed, 06 Aug 2014 16:51:41 -0400 histedit: add "roll" command to fold commit data and drop message (issue4256)
Mike Edgar <adgar@google.com> [Wed, 06 Aug 2014 16:51:41 -0400] rev 22152
histedit: add "roll" command to fold commit data and drop message (issue4256) This new histedit command (short for "rollup") is a variant of "fold" akin to "hg amend" for working copy: it accumulates changes without interrupting the user and asking for an updated commit message.
Tue, 12 Aug 2014 09:39:14 -0700 repoview: cache hidden changesets
David Soria Parra <davidsp@fb.com> [Tue, 12 Aug 2014 09:39:14 -0700] rev 22151
repoview: cache hidden changesets Use the introduced caching infrastructure to cache hidden changesets. We crosscheck if the content of the cache unless experimental.verifyhiddencache is set to False. This will be removed in the future. Without crosschecking the caches speed ups hg status and other commands: without caching: $ time hg status hg status 0.72s user 0.20s system 100% cpu 0.917 total with caching $ time hg status hg status 0.49s user 0.15s system 100% cpu 0.645 total
Tue, 12 Aug 2014 16:48:54 -0700 repoview: add caching bits
David Soria Parra <davidsp@fb.com> [Tue, 12 Aug 2014 16:48:54 -0700] rev 22150
repoview: add caching bits Add a caching infrastructure to cache hidden changesets. The cache tries to read the cache lazily and falls back to recomputing if no wlock can be obtain. To validate the cache we store a sha of the obstore content and repo heads in the beginning of the cache which we check every request.
Wed, 06 Aug 2014 13:26:04 -0700 repoview: split _gethiddenblockers
David Soria Parra <davidsp@fb.com> [Wed, 06 Aug 2014 13:26:04 -0700] rev 22149
repoview: split _gethiddenblockers Split up _gethiddenblockers into two categories: (1) "static' blockers that solely rely on the contents of obstore and are visible children of hidden changsets. (2) "dynamic" blockers, appearing by having wd parents, bookmarks or tags pointing to hidden changesets. We assume that (1) doesn't change often and can be easily cached with a good invalidation strategy. (2) change often, but barely produce blockers, so we can recompute them if necessary.
Tue, 12 Aug 2014 16:42:24 -0700 repoview: use set for blockers
David Soria Parra <davidsp@fb.com> [Tue, 12 Aug 2014 16:42:24 -0700] rev 22148
repoview: use set for blockers Blockers should be unique but tags and bookmarks could point to the same rev, therefore use a set to ensure that we don't have duplicates.
Wed, 13 Aug 2014 11:50:13 -0700 histedit: preserve initial author on fold (issue4296) stable
Martin von Zweigbergk <martinvonz@gmail.com> [Wed, 13 Aug 2014 11:50:13 -0700] rev 22147
histedit: preserve initial author on fold (issue4296) When the authorship of the changeset folded in does not match that of the base changeset, we currently use the configured ui.username instead. This is especially surprising when the user is not the author of either of the changesets. In such cases, the resulting authorship (the user's) is clearly incorrect. Even when the user is folding in a patch they authored themselves, it's not clear whether they should take over the authorship. Let's instead keep it simple and always preserve the base changeset's authorship. This is also how "git rebase -i" handles folding/squashing.
Wed, 13 Aug 2014 18:50:35 -0500 run-tests: fix some io ordering stable
Matt Mackall <mpm@selenic.com> [Wed, 13 Aug 2014 18:50:35 -0500] rev 22146
run-tests: fix some io ordering backported from default
Wed, 13 Aug 2014 15:06:58 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 13 Aug 2014 15:06:58 -0500] rev 22145
merge with stable
Wed, 25 Jun 2014 17:40:41 +0100 test-revert: add case where file is tracked but deleted in working directory
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 17:40:41 +0100] rev 22144
test-revert: add case where file is tracked but deleted in working directory
Fri, 27 Jun 2014 18:25:19 +0200 test-revert: add case with untracked files with unique content
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 18:25:19 +0200] rev 22143
test-revert: add case with untracked files with unique content This test highlights similar misbehavior as its parent changesets.
Fri, 27 Jun 2014 18:23:45 +0200 test-revert: add case with untracked files with reverted content
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 18:23:45 +0200] rev 22142
test-revert: add case with untracked files with reverted content This test highlights similar misbehaviors as its parent changesets.
Fri, 27 Jun 2014 18:10:45 +0200 test-revert: add case where file exists but is untracked in working directory
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 18:10:45 +0200] rev 22141
test-revert: add case where file exists but is untracked in working directory This test highlights a small misbehavior in output when reverting to another revision not including the untracked file.
Fri, 27 Jun 2014 18:09:46 +0200 test-revert: add case where the file is marked as removed in the wc
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 18:09:46 +0200] rev 22140
test-revert: add case where the file is marked as removed in the wc Unlike untracked, the file is also missing from the working directory. This test highlights a small misbehavior in output when reverting to another revision.
Fri, 27 Jun 2014 18:08:16 +0200 test-revert: add case where wc content is different from "base" and "parent"
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 27 Jun 2014 18:08:16 +0200] rev 22139
test-revert: add case where wc content is different from "base" and "parent" This test highlights a case where backups are not created and the user may lose data.
(0) -10000 -3000 -1000 -300 -100 -64 +64 +100 +300 +1000 +3000 +10000 tip