Thu, 03 Oct 2013 18:01:21 +0200 convert: update source shamap when using filemap, just as when not using filemap
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19892
convert: update source shamap when using filemap, just as when not using filemap The reverse mapping was introduced in 2147a734dcf9 to make roundtrip conversions possible ... but it did not work when using filemap. Roundtrips with filemaps will of course only work flawlessly if inverse mappings are used. Especially, if a lossy convert mapping is used in one direction, then only linear lines of development can be converted in the other direction. With this constraint convert will do the right thing by assuming that excluded files haven't been changed.) A test case with general coverage of hg-hg roundtrips with filemap is added. (There a cases where adding records of converted revisions to the shamap in the source repository doesn't work - especially when converting the same repo to several other repos and back. It would arguably be better if convert only updated the shamaps in the target repo but read shamaps from both the source and and target repo ... but that is a different story. Making the stuff we have work consistently is step forward no matter what.)
Sat, 20 Jul 2013 00:43:08 +0200 convert: introduce hg.revs to replace hg.startrev and --rev with a revset
Mads Kiilerich <madski@unity3d.com> [Sat, 20 Jul 2013 00:43:08 +0200] rev 19891
convert: introduce hg.revs to replace hg.startrev and --rev with a revset The existing knobs for controlling which revisions to convert were often insufficient. Revsets is a shiny hammer that provides a better solution. Revsets has been introduced in --rev handling in a lot of other places while being more or less backwards compatible. Doing the same here would be a much more elegant ... but that would unfortunately not work in this case. "--rev 7" used to mean revision 0 to 7 - it would be an unacceptable change if it suddenly just meant revision 7. Instead we introduce a new configuration setting. It will only work for Mercurial repositories so adding a new commandline option for it would not be a nice solution. There is no way to use the fancy deprecation markup for configuration settings so we just remove the documentation of hg.startrev.
Thu, 03 Oct 2013 18:01:21 +0200 convert: refactor head calculation for hg sources
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19890
convert: refactor head calculation for hg sources
Fri, 19 Jul 2013 14:20:11 +0200 convert: remove unused and incorrect default handling for revmapfile
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 14:20:11 +0200] rev 19889
convert: remove unused and incorrect default handling for revmapfile destc is not a string and can thus not be os.path.join'ed. Convert would crash if we ended up there ... but we wouldn't because both the sinks (hg and subversion) sinks implement .revmapfile and "never" throws exceptions.
Mon, 30 Sep 2013 18:27:42 -0700 generaldelta: fix test
Wojciech Lopata <lopek@fb.com> [Mon, 30 Sep 2013 18:27:42 -0700] rev 19888
generaldelta: fix test
Fri, 11 Oct 2013 17:19:40 -0700 shelve: fix dirstate corruption during unshelve (issue4055)
Durham Goode <durham@fb.com> [Fri, 11 Oct 2013 17:19:40 -0700] rev 19887
shelve: fix dirstate corruption during unshelve (issue4055) If you shelved on top of commit A, then rebased A to @ and unshelved, any file changed in A would appear as modified in hg status despite the contents not having changed. The fix is to use dirstate.setparents() instead of doing it manually. This will be a little slower since it has to iterate through everything in the dirstate instead of only what's in the mergestate, but this will be more correct since the mergestate did not include files which were merged but had no conflict. The tests also had several bad dirstate's hardcoded in them. This change updates the tests appropriately and adds a new test to cover this specific rebase case.
Wed, 09 Oct 2013 14:15:34 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 14:15:34 -0700] rev 19886
merge with stable
Wed, 09 Oct 2013 14:15:20 -0700 shelve: only save mq state if enabled
Sean Farley <sean.michael.farley@gmail.com> [Wed, 09 Oct 2013 14:15:20 -0700] rev 19885
shelve: only save mq state if enabled Test coverage has been added.
Mon, 07 Oct 2013 11:45:01 -0700 changegroup: don't run changegroup hooks if nodes are gone
Durham Goode <durham@fb.com> [Mon, 07 Oct 2013 11:45:01 -0700] rev 19884
changegroup: don't run changegroup hooks if nodes are gone The changegroup hook runs when the repo lock is released, but it's possible that multiple transactions have happened during that single lock and therefore the commits the hook was for may be gone. This is the case in the shelve extension where it adds a commit and strips it in the same lock but different transactions (which results in warning messages during unshelve on hgsubversion repos). A real fix would be to attach the hook to the transaction instead, but that might have unknown consequences. Since we're this close to code-freeze, this fix just prevents the hook from running if the commit disappeared.
Wed, 09 Oct 2013 12:02:32 -0700 hgweb: add escaping of tags and bookmarks in graph view stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 12:02:32 -0700] rev 19883
hgweb: add escaping of tags and bookmarks in graph view
Wed, 09 Oct 2013 11:50:19 -0700 json: add more paranoid escaping stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 11:50:19 -0700] rev 19882
json: add more paranoid escaping
Wed, 02 Oct 2013 09:50:21 +0200 shelve: make no_backup parameter passing python 2.4 compatible
David Soria Parra <dsp@experimentalworks.net> [Wed, 02 Oct 2013 09:50:21 +0200] rev 19881
shelve: make no_backup parameter passing python 2.4 compatible Python 2.4 doesn't allow passing named parameter after an list unpack, but allows to unpack a dict.
Wed, 09 Oct 2013 11:27:59 -0700 ui: send password prompts to stderr again (issue4056) stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 11:27:59 -0700] rev 19880
ui: send password prompts to stderr again (issue4056)
Mon, 07 Oct 2013 15:21:17 -0700 hgweb: escape branch names in graph view stable
Matt Mackall <mpm@selenic.com> [Mon, 07 Oct 2013 15:21:17 -0700] rev 19879
hgweb: escape branch names in graph view
Wed, 02 Oct 2013 11:16:03 +0200 test: make test-propertycache.py python2.4 compatible stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Oct 2013 11:16:03 +0200] rev 19878
test: make test-propertycache.py python2.4 compatible The subprocess module have not `check_call` method in python2.4. Fall back to calling `check` with return code verification.
Tue, 01 Oct 2013 09:54:46 +0200 hgweb: log headers only if headers were successfully parsed stable
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 09:54:46 +0200] rev 19877
hgweb: log headers only if headers were successfully parsed The headers attribute is not initialized in certain error situations (e.g. http 400 bad request). Check for self.headers before we attempt to access it.
Mon, 07 Oct 2013 17:47:55 -0400 merge with stable
Augie Fackler <raf@durin42.com> [Mon, 07 Oct 2013 17:47:55 -0400] rev 19876
merge with stable
Mon, 07 Oct 2013 17:47:19 -0400 patch: Fix nullid for binary git diffs (issue4054) stable
Johan Bjork <jbjoerk@gmail.com> [Mon, 07 Oct 2013 17:47:19 -0400] rev 19875
patch: Fix nullid for binary git diffs (issue4054) The index for an empty file in git is not 0, but sha-1("blobl 0\0").
Thu, 03 Oct 2013 19:41:25 +0200 shelve: copy bookmarks and restore them after a commit
David Soria Parra <dsp@experimentalworks.net> [Thu, 03 Oct 2013 19:41:25 +0200] rev 19874
shelve: copy bookmarks and restore them after a commit cmdutil.commit() will advance the bookmarks. Therefore we have to restore them afterwards. We have to use update() to ensure we preserve the bmstore object.
Thu, 03 Oct 2013 14:50:47 +0200 check-code: check that '>' is used for continued lines
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19873
check-code: check that '>' is used for continued lines Continued lines do not get the SALT mangling.
Thu, 03 Oct 2013 14:50:47 +0200 check-code: check for spaces around = for named parameters
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19872
check-code: check for spaces around = for named parameters
Thu, 03 Oct 2013 14:50:47 +0200 run-tests: place the .t shell script next to $TESTTMP and with a useful name
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19871
run-tests: place the .t shell script next to $TESTTMP and with a useful name --keep can thus keep it around - very convenient for debugging.
Thu, 03 Oct 2013 14:50:46 +0200 tests: fix void and invalid test in test-archive.t
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:46 +0200] rev 19870
tests: fix void and invalid test in test-archive.t An echo statement was missed in the .t-ification in afe19a1bf9d3 so we ended up with invalid sh syntax. But at the same time a continuation line was marked as $ instead of > and we thus added the salt that made the expression valid again.
Wed, 02 Oct 2013 14:24:25 -0700 inotify: don't pass pidfile option to child
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 14:24:25 -0700] rev 19869
inotify: don't pass pidfile option to child The child no longer needs it.
Wed, 02 Oct 2013 15:20:49 -0700 cmdutil.service: move pidfile writing to the parent in daemon mode
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 15:20:49 -0700] rev 19868
cmdutil.service: move pidfile writing to the parent in daemon mode There is a potential race here, which I suspect I've spotted in the wild, where something reads the pid file after the parent exits but before the child has had a chance to write to it. Moving writing the file to the parent causes this to no longer be an issue.
Wed, 02 Oct 2013 15:17:50 -0700 cmdutil.service: move pidfile writing to a local function
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 15:17:50 -0700] rev 19867
cmdutil.service: move pidfile writing to a local function An upcoming patch will reuse this code.
Wed, 02 Oct 2013 14:20:26 -0700 inotify: add pidfile to parent options
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 14:20:26 -0700] rev 19866
inotify: add pidfile to parent options An upcoming patch will move pidfile writing from the parent to the child. This means that if the pid file isn't specified on the command-line but is specified as a config option, it needs to be added to the parent's opts dict.
Wed, 02 Oct 2013 22:46:32 +0100 get-with-headers: don't block indefinitely if the server had an internal error
Javi Merino <cibervicho@gmail.com> [Wed, 02 Oct 2013 22:46:32 +0100] rev 19865
get-with-headers: don't block indefinitely if the server had an internal error If the server had an internal error and returned 500, there's nothing to read, so "response.read()" blocks indefinitely. Only output the response if there's really a response.
Fri, 19 Jul 2013 02:32:36 +0200 convert: fix description of 'convert --rev'
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 02:32:36 +0200] rev 19864
convert: fix description of 'convert --rev'
Wed, 02 Oct 2013 19:46:48 +0200 convert: fix crash when existing converted revision didn't come from source
Mads Kiilerich <madski@unity3d.com> [Wed, 02 Oct 2013 19:46:48 +0200] rev 19863
convert: fix crash when existing converted revision didn't come from source This case can happen when converting from multiple repositories with filemap.
Wed, 02 Oct 2013 19:46:47 +0200 convert: fix crash when filemap filtering is changed
Mads Kiilerich <madski@unity3d.com> [Wed, 02 Oct 2013 19:46:47 +0200] rev 19862
convert: fix crash when filemap filtering is changed
Tue, 01 Oct 2013 14:48:53 -0400 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com> [Tue, 01 Oct 2013 14:48:53 -0400] rev 19861
rebase: preserve metadata from grafts of changes (issue4001)
Tue, 01 Oct 2013 14:28:18 -0400 rebase: rework extrafn handling to support multiple extrafns
Augie Fackler <raf@durin42.com> [Tue, 01 Oct 2013 14:28:18 -0400] rev 19860
rebase: rework extrafn handling to support multiple extrafns This makes it possible to pass keepbranches and extrafn to rebase at the same time, although nobody uses that functionality presently. This is a precursor to keeping graft metadata.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: call process_dates with a specified selector in ajax scroll
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19859
hgweb: call process_dates with a specified selector in ajax scroll Now this function processes only newly added entries, and not old ones, the amount of which can be much bigger.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add parentSelector argument to process_dates
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19858
hgweb: add parentSelector argument to process_dates Allow specifying parent selector of elements to process, useful for incremental page updates.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19857
hgweb: optimize process_dates function This function looped over every node due to getElementsByTagName('*'), instead of using selectors. In this patch we use querySelectorAll('.age') and process only these nodes, which is much faster and also doesn't require extra condition. Browser compatibility isn't sacrificed: IE 8+, FF 3.5+, Opera 10+.
Thu, 29 Aug 2013 09:22:15 -0700 shelve: allow shelving of a change with an mq patch applied
David Soria Parra <dsp@experimentalworks.net> [Thu, 29 Aug 2013 09:22:15 -0700] rev 19856
shelve: allow shelving of a change with an mq patch applied We allow shelving of of changes on top of a MQ repository. MQ will not allow repository changes on top of applied patches. We introduce checkapplied in MQ to bypass this check.
Tue, 01 Oct 2013 12:20:31 +0200 shelve: new output format for shelve listings
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 12:20:31 +0200] rev 19855
shelve: new output format for shelve listings Use a more condensed and mercurial-like output format for shelve listing. We don't prefix the message with 'shelved from...' anymore as our default name contains the branch name or the user used his own name. To avoid just printing the last commit message, we drop writing the description to stdout. old output: default [1s ago] shelved from default (01ba9745): create conflict new output: default (1s ago) create conflict
Thu, 29 Aug 2013 09:22:13 -0700 shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net> [Thu, 29 Aug 2013 09:22:13 -0700] rev 19854
shelve: add a shelve extension to save/restore working changes This extension saves shelved changes using a temporary draft commit, and bundles the temporary commit and its draft ancestors, then strips them. This strategy makes it possible to use Mercurial's bundle and merge machinery to resolve conflicts if necessary when unshelving, even when the destination commit or its ancestors have been amended, squashed, or evolved. (Once a change has been unshelved, its associated unbundled commits are either rolled back or stripped.) Storing the shelved change as a bundle also avoids the difficulty that hidden commits would cause, of making it impossible to amend the parent if it is a draft commits (a common scenario). Although this extension shares its name and some functionality with the third party hgshelve extension, it has little else in common. Notably, the hgshelve extension shelves changes as unified diffs, which makes conflict resolution a matter of finding .rej files and conflict markers, and cleaning up the mess by hand. We do not yet allow hunk-level choosing of changes to record. Compared to the hgshelve extension, this is a small regression in usability, but we hope to integrate that at a later point, once the record machinery becomes more reusable and robust.
Tue, 01 Oct 2013 12:20:29 +0200 localrepo: make report level in repo.transaction configurable
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 12:20:29 +0200] rev 19853
localrepo: make report level in repo.transaction configurable repo.transaction always writes to stderr when a transaction aborts. In order to be able to abort a transaction quietly (e.g shelve needs a temporary view on the repo) we need to make the report level configurable.
Tue, 01 Oct 2013 17:00:03 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 17:00:03 -0700] rev 19852
merge with stable
Tue, 01 Oct 2013 16:55:20 -0700 Added signature for changeset e7fa36d2ad3a stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 16:55:20 -0700] rev 19851
Added signature for changeset e7fa36d2ad3a
Tue, 01 Oct 2013 16:55:14 -0700 Added tag 2.7.2 for changeset e7fa36d2ad3a stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 16:55:14 -0700] rev 19850
Added tag 2.7.2 for changeset e7fa36d2ad3a
Tue, 01 Oct 2013 00:35:07 +0900 rebase: catch RepoLookupError at restoring rebase state for summary stable 2.7.2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19849
rebase: catch RepoLookupError at restoring rebase state for summary Before this patch, "hg summary" may fail, when there is inconsistent rebase state: for example, the root of rebase destination revisions recorded in rebase state file is already stripped manually. Mercurial earlier than 2.7 allows users to do anything other than starting new rebase, even though current rebase is not finished or aborted yet. So, such inconsistent rebase states may be left and forgotten in repositories. This patch catches RepoLookupError at restoring rebase state for summary hook, and treat such state as "broken".
Tue, 01 Oct 2013 00:35:07 +0900 rebase: catch RepoLookupError at restoring rebase state for abort/continue stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19848
rebase: catch RepoLookupError at restoring rebase state for abort/continue Before this patch, "rebase --abort"/"--continue" may fail, when rebase state is inconsistent: for example, the root of rebase destination revisions recorded in rebase state file is already stripped manually. Mercurial earlier than 2.7 allows users to do anything other than starting new rebase, even though current rebase is not finished or aborted yet. So, such inconsistent rebase states may be left and forgotten in repositories. This patch catches RepoLookupError at restoring rebase state for abort/continue, and treat such state as "broken".
Tue, 01 Oct 2013 00:35:07 +0900 histedit: suggest "histedit --abort" for inconsistent histedit state stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19847
histedit: suggest "histedit --abort" for inconsistent histedit state Mercurial earlier than 2.7 allows users to do anything other than starting new histedit, even though current histedit is not finished or aborted yet. So, unfinished (and maybe inconsistent now) histedit states may be left and forgotten in repositories. Before this patch, histedit extension shows the message below, when it detects such inconsistent state: abort: REV is not an ancestor of working directory (update to REV or descendant and run "hg histedit --continue" again) But this message is incorrect, unless old Mercurial is re-installed, because Mercurial 2.7 or later disallows users to update the working directory to another revision. This patch changes the hint message to suggest "hg histedit --abort".
Mon, 30 Sep 2013 14:23:14 +0200 repoview: have unfilteredpropertycache using the underlying cache stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 14:23:14 +0200] rev 19846
repoview: have unfilteredpropertycache using the underlying cache A `unfilteredpropertycache` is a kind of `propertycache` used on `localrepo` to unsure it will always be run against unfiltered repo and stored only once. As the cached value is never stored in the repoview instance, the descriptor will always be called. Before this patch such calls always result in a call to the `__get__` method of the `propertycache` on the unfiltered repo. That was recomputing a new value on every access through a repoview. We can't prevent the repoview's `unfilteredpropertycache` to get called on every access. In that case the new code makes a standard attribute access to the property. If a value is cached it will be used. The `propertycache` test file have been augmented with test about this issue.
Mon, 30 Sep 2013 14:36:11 +0200 repoview: make propertycache.setcache compatible with repoview stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 14:36:11 +0200] rev 19845
repoview: make propertycache.setcache compatible with repoview Propertycache used standard attribute assignment. In the repoview case, this assignment was forwarded to the unfiltered repo. This result in: (1) unfiltered repo got a potentially wrong cache value, (2) repoview never reused the cached value. This patch replaces the standard attribute assignment by an assignment to `objc.__dict__` which will bypass the `repoview.__setattr__`. This will not affects other `propertycache` users and it is actually closer to the semantic we need. The interaction of `propertycache` and `repoview` are now tested in a python test file.
Tue, 01 Oct 2013 16:41:04 -0300 i18n-pt_BR: synchronized with 1aaefba2a3a9 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 01 Oct 2013 16:41:04 -0300] rev 19844
i18n-pt_BR: synchronized with 1aaefba2a3a9
Tue, 01 Oct 2013 10:44:59 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 10:44:59 -0700] rev 19843
merge with stable
Tue, 01 Oct 2013 00:12:34 +0900 histedit: add more detailed help about "--outgoing" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19842
histedit: add more detailed help about "--outgoing"
Tue, 01 Oct 2013 00:12:34 +0900 histedit: abort if there are multiple roots in "--outgoing" revisions stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19841
histedit: abort if there are multiple roots in "--outgoing" revisions Before this patch, if there are multiple roots in "--outgoing" revisions, result of "histedit --outgoing" depends on the parent of the working directory. It succeeds only when the parent of the working directory is a descendant of the oldest root in "--outgoing" revisions, and fails otherwise. It seems to be ambiguous and difficult for users. This patch makes "histedit --outgoing" abort if there are multiple roots in "--outgoing" revisions always.
Tue, 01 Oct 2013 00:26:22 +0900 discovery: abort also when pushing multiple headed new branch
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:26:22 +0900] rev 19840
discovery: abort also when pushing multiple headed new branch Before this patch, pushing with --new-branch permits to create multiple headed branch on the destination repository. But permitting to create new branch should be different from permitting to create multiple heads on branch. This patch prevents from careless pushing multiple headed new branch, and requires --force to push such branch forcibly.
Mon, 30 Sep 2013 17:42:38 +0200 branchmap: stop looking for stripped branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 17:42:38 +0200] rev 19839
branchmap: stop looking for stripped branch Since repoview in 2.5 we do not make special call to `branchmap` when stripping. We just recompute the branchmap from a lower subset that still has valid branchmap. So I'm dropping this dead code.
Mon, 30 Sep 2013 17:31:39 +0200 branchmap: remove the droppednodes logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 17:31:39 +0200] rev 19838
branchmap: remove the droppednodes logic It was unused. note how it is only extended if the list is empty. So it's always empty at the end. We could try to fix that, however this would part of the code is to be removed in the next changeset as we do not run `branchmap` on truncated repo since `repoview` in 2.5.
Mon, 30 Sep 2013 15:52:37 +0200 branchmap: fix blank line position
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 15:52:37 +0200] rev 19837
branchmap: fix blank line position The blank line was after was after the `if` condition instead of before.
Tue, 01 Oct 2013 00:12:34 +0900 histedit: add more detailed help about "--outgoing"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19836
histedit: add more detailed help about "--outgoing"
Tue, 01 Oct 2013 00:12:34 +0900 histedit: abort if there are multiple roots in "--outgoing" revisions
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19835
histedit: abort if there are multiple roots in "--outgoing" revisions Before this patch, if there are multiple roots in "--outgoing" revisions, result of "histedit --outgoing" depends on the parent of the working directory. It succeeds only when the parent of the working directory is a descendant of the oldest root in "--outgoing" revisions, and fails otherwise. It seems to be ambiguous and difficult for users. This patch makes "histedit --outgoing" abort if there are multiple roots in "--outgoing" revisions always.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19834
hgweb: eliminate extra complexity in process_dates definition There was an extra anonymous outer function, called immediately. It is removed in this patch.
Mon, 30 Sep 2013 12:36:26 -0700 util.h: backout 06badf7d10dc and 2c9645c0a582 for big-endian breakage
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Sep 2013 12:36:26 -0700] rev 19833
util.h: backout 06badf7d10dc and 2c9645c0a582 for big-endian breakage getbe32 and putbe32 need to behave differently on big-endian and little-endian systems. On big-endian ones, they should be roughly equivalent to the identity function with a cast, but on little-endian ones they should reverse the order of the bytes. That is achieved by the original definition, but __builtin_bswap32 and _byteswap_ulong, as the names suggest, swap bytes around unconditionally. There was no measurable performance improvement, so there's no point adding extra complexity with even more ifdefs for endianncess.
Mon, 30 Sep 2013 12:38:08 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 30 Sep 2013 12:38:08 -0700] rev 19832
merge with stable
Mon, 30 Sep 2013 20:54:39 +0200 i18n-de: fix record prompt (issue4044) stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Mon, 30 Sep 2013 20:54:39 +0200] rev 19831
i18n-de: fix record prompt (issue4044)
Mon, 30 Sep 2013 20:04:03 +0200 i18n-de: synchronized with bd5c1b49d106 stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Mon, 30 Sep 2013 20:04:03 +0200] rev 19830
i18n-de: synchronized with bd5c1b49d106
Tue, 24 Sep 2013 13:34:12 -0300 i18n-pt_BR: synchronized with bd5c1b49d106 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 24 Sep 2013 13:34:12 -0300] rev 19829
i18n-pt_BR: synchronized with bd5c1b49d106
Fri, 27 Sep 2013 21:54:53 -0500 strip: bring extension description in line with style and copy-edit
Kevin Bullock <kbullock@ringworld.org> [Fri, 27 Sep 2013 21:54:53 -0500] rev 19828
strip: bring extension description in line with style and copy-edit
Thu, 26 Sep 2013 11:11:39 +0200 strip: rename test-mq-strip into test-strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 11:11:39 +0200] rev 19827
strip: rename test-mq-strip into test-strip And makes it use the strip extension only (except for the part testing mq interaction)
Thu, 26 Sep 2013 23:57:21 +0200 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:57:21 +0200] rev 19826
mq: extract strip function as its standalone extension (issue3824) Strip now lives in its own extension reminder: The extension is surprisingly called `strip`. The `mq` extension force the use of the strip extension when its enabled. This is both necessary for backward compatibility (people expect `mq` to comes with strip) and become some utility function used by `mq` are now in the strip extension.
Thu, 26 Sep 2013 23:43:00 +0200 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:43:00 +0200] rev 19825
strip: move the strip helper function for mq to strip The next patch finally move the command. No joke! (hey, this is for issue3824)
Thu, 26 Sep 2013 23:32:52 +0200 strip: move checklocalchanges from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:32:52 +0200] rev 19824
strip: move checklocalchanges from mq to strip One more step for issue3824.
Thu, 26 Sep 2013 23:12:43 +0200 strip: move checksubstate from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:12:43 +0200] rev 19823
strip: move checksubstate from mq to strip One more step for issue3824
Thu, 26 Sep 2013 23:10:11 +0200 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:10:11 +0200] rev 19822
mq: prepare a strip extension for extraction Strip will lives in its own extension. The extension is surprisingly called `strip`. (as discussed in issue3824) The `mq` extension force the use of the strip extension when its enabled. This will both necessary for backward compatibility (people expect `mq` to comes with strip) and become some utility function used by `mq` will move in the strip extension.
Thu, 26 Sep 2013 14:47:19 +0200 histedit: remove unused parents() call
David Soria Parra <dsp@experimentalworks.net> [Thu, 26 Sep 2013 14:47:19 +0200] rev 19821
histedit: remove unused parents() call
Wed, 25 Sep 2013 14:16:51 +0200 mq: have the strip command functionnal on repo without mq
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:16:51 +0200] rev 19820
mq: have the strip command functionnal on repo without mq This is the last step before being able to extract `strip` in its own extension. The changes are made in mq to allow a move only extraction without touching a line of code.
Wed, 25 Sep 2013 14:07:37 +0200 mq: extract `mq.queue.strip`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:07:37 +0200] rev 19819
mq: extract `mq.queue.strip` It does not depend on `mq.queue` anymore.
Wed, 25 Sep 2013 13:41:43 +0200 mq: drop the use of mq.queue.qparent in mq.queue.strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 13:41:43 +0200] rev 19818
mq: drop the use of mq.queue.qparent in mq.queue.strip Same as in the previous changeset, rev is never `None`. We can just copy the two relevant lines in in `queue.strip`. This help having `queue.strip` independent from `queue`. One further step toward the extraction of `strip` in an independent extension. (As discussed in issue3824).
Wed, 25 Sep 2013 14:10:34 +0200 mq: drop the use of mq.queue.qparent in mq.strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:10:34 +0200] rev 19817
mq: drop the use of mq.queue.qparent in mq.strip In this case, rev is never `None`. We can just copy the two relevant lines in in `strip`. This help having `strip` independent from `queue` one further step toward its extraction in an independent extension. (As discussed in issue3824).
Wed, 25 Sep 2013 19:34:45 +0200 mq: document repo.mq.qparents
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 19:34:45 +0200] rev 19816
mq: document repo.mq.qparents The function is not very complex but writing this doc helped me to check if I got everything right.
Wed, 25 Sep 2013 19:32:53 +0200 mq: use the new checklocalchange in the strip command
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 19:32:53 +0200] rev 19815
mq: use the new checklocalchange in the strip command The strip command never use the `refresh` argument. So we can use the function we just extracted.
Wed, 25 Sep 2013 12:43:14 +0200 mq: extract checklocalchanges from `mq.queue`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 12:43:14 +0200] rev 19814
mq: extract checklocalchanges from `mq.queue` The core part of `checklocalchanges` is now mq independent. We can extract it in a standalone function to help the extraction of `strip` as discussed in issue3824. A `checklocalchanges` function stay in `mq.queue` with the part related to "refresh first" messages.
Wed, 25 Sep 2013 11:24:43 +0200 mq: extract checksubstate from the queue class
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 11:24:43 +0200] rev 19813
mq: extract checksubstate from the queue class This function does not need any of the the `mq.queue` method or attributes. It is indirectly used by the `strip` command. We are trying to extract this command in a standalone extension as discussed in issue issue3824.
Wed, 25 Sep 2013 12:28:40 +0200 mq: simplifies the refresh hint in checklocalchanges
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 12:28:40 +0200] rev 19812
mq: simplifies the refresh hint in checklocalchanges The `checklocalchanges` function in the `mq.queue` class takes a `refresh` argument that changes the error message of raised exception. When refresh is `True` the exception message is "local changes found, refresh first" otherwise, the message is just "local changes found". This changeset is the first of a series that extract `strip` into a standalone extension (as discussed in issue3824). This `checklocalchanges` function is indirectly used by the strip command. But in a standalone strip extension the concept of "refresh first" has no sense. In practice, When used in the context of the strip commands `refresh`'s value is always `False`. So my final goal is a be able to extract the `checklocalchanges` logic in a standalone extension but to keep the part related to "refresh first" in the mq extension. However the refresh handling is deeply entangled into the `checklocalchanges` code. It is handled as low a possible at the point we raise the exception. So we moves handling of refresh upper in the `checklocalchanges` code. This will allow the extraction of a simple version in the strip extension while mq can still inject its logic when needed. Two helper functions `localchangesfound` and `localchangedsubreposfound` died in the process they are replaced by simple raise lines.
Fri, 06 Sep 2013 00:38:28 +0200 merge: let the user choose to merge, keep local or keep remote subrepo revisions
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 06 Sep 2013 00:38:28 +0200] rev 19811
merge: let the user choose to merge, keep local or keep remote subrepo revisions When a subrepo has changed on the local and remote revisions, prompt the user whether it wants to merge those subrepo revisions, keep the local revision or keep the remote revision. Up until now mercurial would always perform a merge on a subrepo that had changed on the local and the remote revisions. This is often inconvenient. For example: - You may want to perform the actual subrepo merge after you have merged the parent subrepo files. - Some subrepos may be considered "read only", in the sense that you are not supposed to add new revisions to them. In those cases "merging a subrepo" means choosing which _existing_ revision you want to use on the merged revision. This is often the case for subrepos that contain binary dependencies (such as DLLs, etc). This new prompt makes mercurial better cope with those common scenarios. Notes: - The default behavior (which is the one that is used when ui is not interactive) remains unchanged (i.e. merge is the default action). - This prompt will be shown even if the ui --tool flag is set. - I don't know of a way to test the "keep local" and "keep remote" options (i.e. to force the test to choose those options). # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1378420708 -7200 # Fri Sep 06 00:38:28 2013 +0200 # Node ID 2fb9cb0c7b26303ac3178b7739975e663075857d # Parent 50d721553198cea51c30f53b76d41dc919280097 merge: let the user choose to merge, keep local or keep remote subrepo revisions When a subrepo has changed on the local and remote revisions, prompt the user whether it wants to merge those subrepo revisions, keep the local revision or keep the remote revision. Up until now mercurial would always perform a merge on a subrepo that had changed on the local and the remote revisions. This is often inconvenient. For example: - You may want to perform the actual subrepo merge after you have merged the parent subrepo files. - Some subrepos may be considered "read only", in the sense that you are not supposed to add new revisions to them. In those cases "merging a subrepo" means choosing which _existing_ revision you want to use on the merged revision. This is often the case for subrepos that contain binary dependencies (such as DLLs, etc). This new prompt makes mercurial better cope with those common scenarios. Notes: - The default behavior (which is the one that is used when ui is not interactive) remains unchanged (i.e. merge is the default action). - This prompt will be shown even if the ui --tool flag is set. - I don't know of a way to test the "keep local" and "keep remote" options (i.e. to force the test to choose those options).
Tue, 24 Sep 2013 15:10:32 -0400 python2.4: fix imports of sub-packages of the email package
Augie Fackler <raf@durin42.com> [Tue, 24 Sep 2013 15:10:32 -0400] rev 19810
python2.4: fix imports of sub-packages of the email package These all have an obvious comment so if/when we finally ditch Python 2.4 we can eradicate them easily.
Fri, 20 Sep 2013 09:16:07 -0400 httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038)
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:16:07 -0400] rev 19809
httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038) This causes httpclient to use the same SSL settings as the rest of Mercurial, and adds an easy extension point for later modifications to our ssl handling.
Fri, 20 Sep 2013 09:15:43 -0400 sslutil: make keyfile and certfile arguments consistent between 2.6+ and 2.5-
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:15:43 -0400] rev 19808
sslutil: make keyfile and certfile arguments consistent between 2.6+ and 2.5-
Fri, 20 Sep 2013 09:15:09 -0400 httpclient: import 4bb625347d4a to provide SSL wrapper injection
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:15:09 -0400] rev 19807
httpclient: import 4bb625347d4a to provide SSL wrapper injection This lets us inject our own ssl.wrap_socket equivalent into httpclient, which means that any changes we make to our ssl handling can be *entirely* on our side without having to muck with httpclient, which sounds appealing. For example, an extension could wrap sslutil.ssl_wrap_socket with an api-compatible wrapper and then tweak SSL settings more precisely or use GnuTLS instead of OpenSSL.
Thu, 19 Sep 2013 16:29:00 -0400 sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038)
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 16:29:00 -0400] rev 19806
sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038) Prior to this change, we default to SSLv23, which is insecure because it allows use of SSLv2. Unfortunately, there's no constant for OpenSSL to let us use SSLv3 or TLS - we have to pick one or the other. We expose a knob to revert to pre-TLS SSL for the user that has an ancient server that lacks proper TLS support.
Mon, 23 Sep 2013 21:41:01 -0700 largefiles: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:41:01 -0700] rev 19805
largefiles: standardize error message for dirty working dir
Mon, 23 Sep 2013 21:31:37 -0700 cmdutil.bailifchanged: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:31:37 -0700] rev 19804
cmdutil.bailifchanged: standardize error message for dirty working dir This affects rebase, graft, histedit, and other similar commands.
Mon, 23 Sep 2013 20:53:14 -0700 merge: standardize error message for dirty subrepo
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:53:14 -0700] rev 19803
merge: standardize error message for dirty subrepo
Mon, 23 Sep 2013 20:50:51 -0700 merge: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:50:51 -0700] rev 19802
merge: standardize error message for dirty working dir
Mon, 23 Sep 2013 20:33:02 -0700 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:33:02 -0700] rev 19801
update: standardize error message for dirty update --check This and following patches will standardize the error message for dirty working directories to "uncommitted changes".
Mon, 23 Sep 2013 20:08:52 -0700 update: improve error message for dirty non-linear update with rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:08:52 -0700] rev 19800
update: improve error message for dirty non-linear update with rev
Mon, 23 Sep 2013 20:07:30 -0700 update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:07:30 -0700] rev 19799
update: add error message for dirty non-linear update with no rev Previously, the error message for a dirty non-linear update was the same (and relatively unhelpful) whether or not a rev was specified. This patch and an upcoming one will introduce separate, more helpful hints.
Mon, 23 Sep 2013 17:43:33 -0700 update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 17:43:33 -0700] rev 19798
update: improve error message for clean non-linear update
Mon, 23 Sep 2013 19:02:32 -0700 pull: for pull --update with failed update, print hint if any
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 19:02:32 -0700] rev 19797
pull: for pull --update with failed update, print hint if any An upcoming patch will add a hint to the abort message, and we don't want to lose that here.
Fri, 06 Sep 2013 13:30:57 +0400 paper: edit search hint to include new feature description
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19796
paper: edit search hint to include new feature description
Thu, 25 Jul 2013 01:12:25 +0400 paper: define searchhint message in map file and use it in other templates
Alexander Plavin <alexander@plav.in> [Thu, 25 Jul 2013 01:12:25 +0400] rev 19795
paper: define searchhint message in map file and use it in other templates
Mon, 23 Sep 2013 14:28:01 -0700 debugshell: appease pyflakes
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 14:28:01 -0700] rev 19794
debugshell: appease pyflakes
Fri, 20 Sep 2013 10:18:09 -0400 check-code: new rule to forbid imports of a.b on the same line as other imports
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:18:09 -0400] rev 19793
check-code: new rule to forbid imports of a.b on the same line as other imports This style of import can trip up 2to3 and cause it to produce invalid files if one of the imports is supposed to be a relative import. This prevents that behavior, and in the process exposed a lot of silly import errors related to the email module.
Fri, 20 Sep 2013 10:16:55 -0400 notify: correct import of email module, sort stdlib modules to top
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:55 -0400] rev 19792
notify: correct import of email module, sort stdlib modules to top
Fri, 20 Sep 2013 10:16:35 -0400 patchbomb: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:35 -0400] rev 19791
patchbomb: correct import of email module
Fri, 20 Sep 2013 10:16:02 -0400 mail: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:02 -0400] rev 19790
mail: correct import of email module
Fri, 20 Sep 2013 10:15:51 -0400 patch: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:51 -0400] rev 19789
patch: correct import of email module
Fri, 20 Sep 2013 10:15:37 -0400 subrepo: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:37 -0400] rev 19788
subrepo: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:15:23 -0400 convert: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:23 -0400] rev 19787
convert: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:14:59 -0400 perf: rearrange imports of changelong and manifest to appease check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:14:59 -0400] rev 19786
perf: rearrange imports of changelong and manifest to appease check-code
Mon, 23 Sep 2013 13:26:11 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:26:11 -0700] rev 19785
merge with stable
Mon, 23 Sep 2013 13:22:28 -0700 tests: fix check-code breakage stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:22:28 -0700] rev 19784
tests: fix check-code breakage
Sun, 22 Sep 2013 14:19:57 +0400 paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:19:57 +0400] rev 19783
paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Fri, 20 Sep 2013 00:42:13 +0400 hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in> [Fri, 20 Sep 2013 00:42:13 +0400] rev 19782
hgweb: add graph mode of ajax response processing While the default mode appends all the new entries to a container on the page, the graph mode resizes canvas correctly, and repaints the graph to include newly received data.
Sun, 22 Sep 2013 14:18:23 +0400 hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:18:23 +0400] rev 19781
hgweb: make infinite scroll handling more generic and extensible Namely, this allows the next page pointer to be not only revision hash given in page code, but also any value computed from the value for previous page.
Fri, 06 Sep 2013 13:30:59 +0400 hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:59 +0400] rev 19780
hgweb: add reset javascript function to Graph It makes the Graph object to be in the same state as just after the initialization. This will help to add infinite scrolling to graph view.
Sat, 21 Sep 2013 21:33:29 +0900 largefiles: setup "largefiles" feature in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19779
largefiles: setup "largefiles" feature in each repositories individually Before this patch, if largefiles extension is enabled once in any of target repositories, commands handling multiple repositories at a time like below misunderstand that "largefiles" feature is supported also in all other local repositories: - clone/pull from or push to localhost - recursive execution in subrepo tree This patch registers "featuresetup()" into "featuresetupfuncs" of "localrepository" to support "largefiles" features only in repositories enabling largefiles extension, instead of adding "largefiles" feature to class variable "_basesupported" of "localrepository". This patch also adds checking below to the largefiles specific class derived from "localrepository": - push to localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) This can prevent useless looking up in the remote repository, when supported and required features are mismatched: "push()" of "localrepository" also checks it, but it is executed after looking up in the remote.
Sat, 21 Sep 2013 21:33:29 +0900 localrepo: make supported features manageable in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19778
localrepo: make supported features manageable in each repositories individually Before this patch, all localrepositories support same features, because supported features are managed by the class variable "supported" of "localrepository". For example, "largefiles" feature provided by largefiles extension is recognized as supported, by adding the feature name to "supported" of "localrepository". So, commands handling multiple repositories at a time like below misunderstand that such features are supported also in repositories not enabling corresponded extensions: - clone/pull from or push to localhost - recursive execution in subrepo tree "reposetup()" can't be used to fix this problem, because it is invoked after checking whether supported features satisfy ones required in the target repository. So, this patch adds the set object named as "featuresetupfuncs" to "localrepository" to manage hook functions to setup supported features of each repositories. If any functions are added to "featuresetupfuncs", they are invoked, and information about supported features is managed in each repositories individually. This patch also adds checking below: - pull from localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) - push to localhost: whether features supported in the remote(= dst) repository satisfies ones required in the local(= src) Managing supported features by the class variable means that there is no difference of supported features between each instances of "localrepository" in the same Python process, so such checking is not needed before this patch. Even with this patch, if intermediate bundlefile is used as pulling source, pulling indirectly from the remote repository, which requires features more than ones supported in the local, can't be prevented, because bundlefile has no information about "required features" in it.
Sat, 21 Sep 2013 21:33:29 +0900 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19777
extensions: list up only enabled extensions, if "ui" is specified Before this patch, "extensions.extensions()" always lists up all loaded extensions. So, commands handling multiple repositories at a time like below enable extensions unexpectedly. - clone from or push to localhost: extensions enabled only in the source are enabled also in the destination - pull from localhost: extensions enabled only in the destination are enabled also in the source - recursive execution in subrepo tree: extensions enabled only in the parent or some of siblings in the tree are enabled also in others In addition to it, extensions disabled locally may be enabled unexpectedly. This patch checks whether each of extensions should be listed up or not, if "ui" is specified to "extensions.extensions()", and invokes "reposetup()" of each extensions only for repositories enabling it.
Mon, 23 Sep 2013 11:37:06 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 11:37:06 -0700] rev 19776
merge with stable
Fri, 20 Sep 2013 15:26:30 -0700 largefiles: remove bailifchanged check from overridepull (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 15:26:30 -0700] rev 19775
largefiles: remove bailifchanged check from overridepull (BC) This brings pull --rebase with largefiles in line with pull --rebase without.
Fri, 20 Sep 2013 16:32:05 -0700 rebase: remove bailifchanged check from pullrebase (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 16:32:05 -0700] rev 19774
rebase: remove bailifchanged check from pullrebase (BC) This saves us a relatively superfluous status check for pull --rebase (if rebase runs, it'll check for a clean working directory anyway), and brings hg pull --rebase closer to hg pull && hg rebase. This is a behavior change because pull --rebase with a dirty working directory will now abort after performing the pull rather than before.
Sun, 14 Jul 2013 12:16:40 -0500 debugshell: check ui.debugger for which debugger to use
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:16:40 -0500] rev 19773
debugshell: check ui.debugger for which debugger to use
Sun, 14 Jul 2013 12:02:36 -0500 debugshell: add function to embed ipython
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:02:36 -0500] rev 19772
debugshell: add function to embed ipython
Sun, 14 Jul 2013 12:10:52 -0500 debugshell: abstract out pdb code.interact
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:10:52 -0500] rev 19771
debugshell: abstract out pdb code.interact
Sun, 22 Sep 2013 13:52:18 +0400 templater: support using templates with non-standard names from map file
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 13:52:18 +0400] rev 19770
templater: support using templates with non-standard names from map file Allow to add arbitrarily-named entries to a template map file and then reference them, to make it possible to deduplicate and simplify templates code.
Mon, 23 Sep 2013 20:23:25 +0900 help: use full name of extensions to look up them for keyword search stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 23 Sep 2013 20:23:25 +0900] rev 19769
help: use full name of extensions to look up them for keyword search Before this patch, "hg help -k KEYWORD" fails, if there is the extension of which name includes ".", because "extensions.load()" invoked from "help.topicmatch()" fails to look such extension up, even though it is already loaded in. "help.topicmatch()" invokes "extensions.load()" with the name gotten from "extensions.enabled()". The former expects full name of extension (= key in '[extensions]' section), but the latter returns names shortened by "split('.')[-1]". This difference causes failure of looking extension up. This patch adds "shortname" argument to "extensions.enabled()" to make it return shortened names only if it is True. "help.topicmatch()" turns it off to get full name of extensions. Then, this patch shortens full name of extensions by "split('.')[-1]" for showing them in the list of extensions. Shortening is also applied on names gotten from "extensions.disabled()" but harmless, because it returns only extensions directly under "hgext" and their names should not include ".".
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add link to force literal keyword search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19768
hgweb: add link to force literal keyword search This makes it possible to make keyword search in case the search query also specifies an exact revision (like '1234' or 'abcdef'), or a revset expression.
Fri, 06 Sep 2013 13:30:56 +0400 raw: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19767
raw: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 paper: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19766
paper: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: pass variable with current search mode name to the search template
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19765
hgweb: pass variable with current search mode name to the search template
Fri, 20 Sep 2013 10:45:51 -0700 generaldelta: initialize basecache properly stable
Wojciech Lopata <lopek@fb.com> [Fri, 20 Sep 2013 10:45:51 -0700] rev 19764
generaldelta: initialize basecache properly Previously basecache was incorrectly initialized before adding the first revision from a changegroup. Basecache value influences when full revisions are stored in revlog (when using generaldelta). As a result it was possible to generate a generaldelta-revlog that could be bigger by arbitrary factor than its non-generaldelta equivalent.
Fri, 20 Sep 2013 11:47:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 20 Sep 2013 11:47:03 -0500] rev 19763
merge with stable
Fri, 06 Sep 2013 13:30:58 +0400 paper: add reddish background to ajax error message
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19762
paper: add reddish background to ajax error message
Fri, 06 Sep 2013 13:30:58 +0400 paper: add simple animation to the loading indicator
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19761
paper: add simple animation to the loading indicator
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add CSS class to the last entry on a page
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19760
hgweb: add CSS class to the last entry on a page The entry which was last before an ajax load now has a specific CSS class for easier styling.
Thu, 19 Sep 2013 15:29:28 -0400 run-tests: find mercurial path with syntax valid on both py2 and py3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:28 -0400] rev 19759
run-tests: find mercurial path with syntax valid on both py2 and py3
Thu, 19 Sep 2013 15:29:04 -0400 run-tests: if run by python3, execute setup.py with --c2to3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:04 -0400] rev 19758
run-tests: if run by python3, execute setup.py with --c2to3
Thu, 19 Sep 2013 15:28:26 -0400 commands: import hgweb.server in a way that 2to3 can rewrite
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:28:26 -0400] rev 19757
commands: import hgweb.server in a way that 2to3 can rewrite
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19756
hgweb: show message when an error occured during ajax loading
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19755
hgweb: show loading indicator while an ajax request is in process
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19754
hgweb: show a message when there are no more entries in the list
Thu, 19 Sep 2013 09:45:00 -0700 util.h: fix gcc version checking
Siddharth Agarwal <sid0@fb.com> [Thu, 19 Sep 2013 09:45:00 -0700] rev 19753
util.h: fix gcc version checking gcc doesn't have a predefined GCC_VERSION macro.
Mon, 16 Sep 2013 01:08:29 -0700 mq: remove unused repo._committingpatch-related code
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 19752
mq: remove unused repo._committingpatch-related code This was introduced in 20ad8f0512a2 but its usage was removed in 46cc3b74e1c5.
Sat, 07 Sep 2013 15:07:10 -0500 strip: set current bookmark to None if stripped stable
Sean Farley <sean.michael.farley@gmail.com> [Sat, 07 Sep 2013 15:07:10 -0500] rev 19751
strip: set current bookmark to None if stripped
Wed, 18 Sep 2013 14:52:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:52:16 -0500] rev 19750
merge with stable
Wed, 18 Sep 2013 14:40:17 -0400 sslutil: backed out changeset 074bd02352c0 (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:40:17 -0400] rev 19749
sslutil: backed out changeset 074bd02352c0 (issue4038) Python docs are a little unclear, but mpm reports reading the OpenSSL source code shows that PROTOCOL_SSLv23 allows TLS whereas PROTOCOL_SSLv3 does not.
Wed, 18 Sep 2013 14:45:28 -0400 httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:45:28 -0400] rev 19748
httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038)
Fri, 06 Sep 2013 13:30:57 +0400 paper: call ajaxScrollInit in shortlog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19747
paper: call ajaxScrollInit in shortlog This just calls ajaxScrollInit at the shortlog page template with all needed agruments. So, infinite scrolling is working now there.
Wed, 18 Sep 2013 22:44:12 +0400 hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in> [Wed, 18 Sep 2013 22:44:12 +0400] rev 19746
hgweb: add ajaxScrollInit function, which does the ajax requests and processing This function should be correctly called on a page, otherwise there is no effect. When called, it makes ajax requests for the next portion of changesets when the user scrolls to the end. Also, when the monitor is high so that the default amount of changesets isn't enough to fill it, multiple portions are loaded if needed after the page load.
Wed, 18 Sep 2013 14:36:19 -0500 check-code: add bracket style check
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:36:19 -0500] rev 19745
check-code: add bracket style check
Sat, 14 Sep 2013 11:22:34 +0800 util.h: getbe32() and putbe32() use intrinsic function to improve performance
Wei, Elson <elson.wei@gmail.com> [Sat, 14 Sep 2013 11:22:34 +0800] rev 19744
util.h: getbe32() and putbe32() use intrinsic function to improve performance Refer to https://bugzilla.mozilla.org/show_bug.cgi?id=351557. It can improve byte-swapping performance by intrinsic function.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19743
hgweb: add appendFormatHTML javascript function This is a convenient helper function to append some formatted HTML markup to a DOM element.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19742
hgweb: add removeByClassName javascript function It removes all elements with specified class name from the document.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19741
hgweb: add docFromHTML javascript function It takes a string with HTML markup and creates DOM document from it. The implementation is a part of code from https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#DOMParser_HTML_extension_for_other_browsers
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19740
hgweb: add makeRequest javascript function This function performs an asynchronous HTTP request and calls provided callbacks: - onstart: request is sent - onsuccess: response is received - onerror: some error occured - oncomplete: response is fully processed and all other callbacks finished
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add format javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19739
hgweb: add format javascript function It replaces placeholders like '%key%' with replacement values given.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add nextentry variable for easy pagination in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19738
hgweb: add nextentry variable for easy pagination in changelog nextentry always contains the first entry not shown on current page (if there is such entry)
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: always compute all entries and latestentry in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19737
hgweb: always compute all entries and latestentry in changelog Get the whole list of entries before rendering instead of using lazy evaluation. This doesn't affect the performance for usual case when the entries are shown anyway. When both entries and latestentry are used, this performs unnoticeably faster, and for pages which use only latestentry (quite uncommon case) it would be a bit slower. This change will make it possible to get the first entry of the next page easily without computing the list twice.
Tue, 17 Sep 2013 17:42:13 +0200 templatefilters: add short format for age formatting
David Soria Parra <dsp@experimentalworks.net> [Tue, 17 Sep 2013 17:42:13 +0200] rev 19736
templatefilters: add short format for age formatting Implements a short output format for ages e.g. "1 second ago" is abbrevated as "1s ago".
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: remove unused argument of changelist function in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19735
hgweb: remove unused argument of changelist function in changelog This doesn't change the behavior as the argument isn't used anyway, and it's a preparation to the next patches,
Tue, 17 Sep 2013 23:34:57 -0500 context: move evolution functions from changectx to basectx
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 23:34:57 -0500] rev 19734
context: move evolution functions from changectx to basectx This is just a code move and corrects an overlook from my previous patch series that assumed only a changectx would want this functionality.
Tue, 17 Sep 2013 18:34:45 -0500 context: use correct spelling of committable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 18:34:45 -0500] rev 19733
context: use correct spelling of committable
Tue, 17 Sep 2013 18:19:04 -0500 check-code: check C patterns against .h files
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:19:04 -0500] rev 19732
check-code: check C patterns against .h files
Tue, 17 Sep 2013 18:13:54 -0500 check-code: make casting style check more precise
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:13:54 -0500] rev 19731
check-code: make casting style check more precise
Tue, 10 Sep 2013 19:49:34 -0700 log: make file log slow path usable on large repos
Durham Goode <durham@fb.com> [Tue, 10 Sep 2013 19:49:34 -0700] rev 19730
log: make file log slow path usable on large repos Running "hg log <pattern or directory>" on large repos took a very, very long time because it first read ctx.files() for every commit before even starting to process the results. This change makes the ctx.files() check lazy, which makes the command start producing results immediately.
Fri, 13 Sep 2013 15:40:04 -0500 plan9: update util.py for cpython 2.7 build
Jeff Sickel <jas@corpus-callosum.com> [Fri, 13 Sep 2013 15:40:04 -0500] rev 19729
plan9: update util.py for cpython 2.7 build
Fri, 06 Sep 2013 23:47:59 -0700 parse_manifest: rewrite to use memchr
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:47:59 -0700] rev 19728
parse_manifest: rewrite to use memchr memchr is usually smarter than a simple for loop. With gcc 4.4.6 and glibc 2.12 on x86-64, for a 20 MB, 200,000 file manifest, parse_manifest goes from 0.116 seconds to 0.095 seconds.
Mon, 16 Sep 2013 12:17:55 -0700 parsers: correctly handle a failed allocation
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:17:55 -0700] rev 19727
parsers: correctly handle a failed allocation
Mon, 16 Sep 2013 12:12:37 -0700 parsers: use Py_INCREF safely
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:12:37 -0700] rev 19726
parsers: use Py_INCREF safely
Mon, 16 Sep 2013 12:10:28 -0700 parsers: state is a char, not an int
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:10:28 -0700] rev 19725
parsers: state is a char, not an int
Fri, 13 Sep 2013 10:00:57 +0800 setup: check if mercurial/util.h has been modified
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 10:00:57 +0800] rev 19724
setup: check if mercurial/util.h has been modified Before, if mercurial/util.h was modified but *.c wasn't, no extension was rebuilt.
Fri, 13 Sep 2013 09:54:43 +0800 util.h: add stdint basic type definitions
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 09:54:43 +0800] rev 19723
util.h: add stdint basic type definitions MS C compiler v15 doesn't have stdint.h. Add basic int types those are defined in stdint.h.
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add revset syntax support to search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19722
hgweb: add revset syntax support to search This mode is used when all the conditions are met: - 'reverse(%s)' % query string can be parsed to a revset tree - this tree has depth more than two, i.e. the query has some part of revset syntax used - the repo can be actually matched against this tree, i.e. it has only existent function/operators and revisions/tags/bookmarks specified are correct - no revset regexes are used in the query (strings which start with 're:') - only functions explicitly marked as safe in revset.py are used in the query Add several new tests for different parsing conditions and exception handling.
Fri, 06 Sep 2013 13:30:56 +0400 revset: add a whitelist of DoS-safe symbols
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19721
revset: add a whitelist of DoS-safe symbols 'Safe' here means that they can't be used for a DoS attack for any given input.
Wed, 07 Aug 2013 01:21:31 +0400 revset: add helper function to get functions used in a revset parse tree
Alexander Plavin <alexander@plav.in> [Wed, 07 Aug 2013 01:21:31 +0400] rev 19720
revset: add helper function to get functions used in a revset parse tree Will be used to determine whether all functions used in a hgweb search query are allowed there.
Fri, 09 Aug 2013 22:52:58 +0400 revset: add helper function to get revset parse tree depth
Alexander Plavin <alexander@plav.in> [Fri, 09 Aug 2013 22:52:58 +0400] rev 19719
revset: add helper function to get revset parse tree depth Will be used to determine if a hgweb search query actually uses any revset syntax.
Sat, 07 Sep 2013 00:59:24 -0700 parsers: use a lookup table to convert hex to binary
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 00:59:24 -0700] rev 19718
parsers: use a lookup table to convert hex to binary This is a hotspot for parse_manifest. With this patch, for a 20 MB, 200,000 file manifest, parse_manifest goes down from 0.153 seconds to 0.116.
Fri, 06 Sep 2013 23:05:33 -0700 revlog: remove _chunkbase since it is no longer used
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:33 -0700] rev 19717
revlog: remove _chunkbase since it is no longer used This was introduced in 2011 for the lwcopy feature but never actually got used. A similar hook can easily be reintroduced if needed in the future.
Fri, 06 Sep 2013 23:05:11 -0700 revlog: move chunk cache preload from revision to _chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:11 -0700] rev 19716
revlog: move chunk cache preload from revision to _chunks In case we don't have a cached text already, add the base rev to the list passed to _chunks. In the cached case this also avoids unnecessarily preloading the chunk for the cached rev.
Fri, 06 Sep 2013 22:57:51 -0700 revlog._chunks: inline getchunk
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 22:57:51 -0700] rev 19715
revlog._chunks: inline getchunk We do this in a somewhat hacky way, relying on the fact that our sole caller preloads the cache right before calling us. An upcoming patch will make this more sensible. For a 20 MB manifest with a delta chain of > 40k, perfmanifest goes from 0.49 seconds to 0.46.
Sat, 07 Sep 2013 12:42:46 -0700 revlog.revision: fix cache preload for inline revlogs
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 12:42:46 -0700] rev 19714
revlog.revision: fix cache preload for inline revlogs Previously the length of data preloaded did not account for the interleaved io contents. This meant that we'd sometimes have cache misses in _chunks despite the preloading. Having a correctly filled out cache will become essential in an upcoming patch.
Fri, 06 Sep 2013 16:31:35 -0700 revlog: add a fast method for getting a list of chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 16:31:35 -0700] rev 19713
revlog: add a fast method for getting a list of chunks This moves _chunkraw into the loop. Doing that improves revlog decompression -- in particular, manifest decompression -- significantly. For a 20 MB manifest which is the result of a > 40k delta chain, hg perfmanifest improves from 0.55 seconds to 0.49 seconds.
Fri, 06 Sep 2013 13:35:29 -0700 perfmanifest: allow and require passing in a rev
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:35:29 -0700] rev 19712
perfmanifest: allow and require passing in a rev Previously perfmanifest would only test tip.
Fri, 06 Sep 2013 13:20:07 -0700 perfmanifest: fix cache invalidation
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:20:07 -0700] rev 19711
perfmanifest: fix cache invalidation The manifest cache is now stored in _mancache. The revlog cache is still stored in _cache.
Fri, 06 Sep 2013 13:16:21 -0700 lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:16:21 -0700] rev 19710
lrucachedict: implement clear()
Sat, 07 Sep 2013 16:08:11 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 16:08:11 -0500] rev 19709
merge with stable
Sat, 07 Sep 2013 21:20:00 +0200 bundle: fix performance regression when bundling file changes (issue4031) stable
Antoine Pitrou <solipsis@pitrou.net> [Sat, 07 Sep 2013 21:20:00 +0200] rev 19708
bundle: fix performance regression when bundling file changes (issue4031) Somewhere before 2.7, a change [ec896f9e8894] was committed that entailed a large performance regression when bundling (and therefore remote cloning) repositories. For each file in the repository, it would recompute the set of needed changesets even though it is the same for all files. This computation would dominate bundle runtimes according to profiler output (by 10x or more).
Sat, 07 Sep 2013 00:08:36 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 00:08:36 -0500] rev 19707
merge with stable
Tue, 06 Aug 2013 00:52:06 +0400 revset: fix wrong keyword() behaviour for strings with spaces stable
Alexander Plavin <alexander@plav.in> [Tue, 06 Aug 2013 00:52:06 +0400] rev 19706
revset: fix wrong keyword() behaviour for strings with spaces Some changesets can be wrongly reported as matched by this predicate due to searching in a string joined with spaces and not individually. A test case added, which fails without this fix.
Thu, 15 Aug 2013 13:42:56 -0500 commitablefilectx: move children from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:56 -0500] rev 19705
commitablefilectx: move children from workingfilectx
Thu, 15 Aug 2013 13:42:33 -0500 commitablefilectx: move parents from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:33 -0500] rev 19704
commitablefilectx: move parents from workingfilectx
Thu, 15 Aug 2013 13:23:06 -0500 commitablefilectx: move __nonzero__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:23:06 -0500] rev 19703
commitablefilectx: move __nonzero__ from workingfilectx
Thu, 15 Aug 2013 13:12:50 -0500 commitablefilectx: move __init__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:12:50 -0500] rev 19702
commitablefilectx: move __init__ from workingfilectx
Thu, 15 Aug 2013 13:11:51 -0500 commitablefilectx: add a class that will be used for mutable file contexts
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:11:51 -0500] rev 19701
commitablefilectx: add a class that will be used for mutable file contexts Just like commitablectx, this will serve as a common place for code that will be shared between workingfilectx and memfilectx.
Wed, 14 Aug 2013 16:40:34 -0500 commitablectx: move dirs from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:34 -0500] rev 19700
commitablectx: move dirs from workingctx
Wed, 14 Aug 2013 16:40:27 -0500 commitablectx: move markcommitted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:27 -0500] rev 19699
commitablectx: move markcommitted from workingctx
Wed, 14 Aug 2013 16:37:59 -0500 commitablectx: move ancestors from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:59 -0500] rev 19698
commitablectx: move ancestors from workingctx
Wed, 14 Aug 2013 16:37:11 -0500 commitablectx: move walk from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:11 -0500] rev 19697
commitablectx: move walk from workingctx
Wed, 14 Aug 2013 16:37:01 -0500 commitablectx: move ancestor from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:01 -0500] rev 19696
commitablectx: move ancestor from workingctx
Wed, 14 Aug 2013 16:25:43 -0500 commitablectx: move flags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:43 -0500] rev 19695
commitablectx: move flags from workingctx
Wed, 14 Aug 2013 16:25:26 -0500 commitablectx: move children from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:26 -0500] rev 19694
commitablectx: move children from workingctx
Wed, 14 Aug 2013 16:25:17 -0500 commitablectx: move hidden from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:17 -0500] rev 19693
commitablectx: move hidden from workingctx
Wed, 14 Aug 2013 16:24:59 -0500 commitablectx: move phase from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:59 -0500] rev 19692
commitablectx: move phase from workingctx
Wed, 14 Aug 2013 16:24:33 -0500 commitablectx: move bookmarks from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:33 -0500] rev 19691
commitablectx: move bookmarks from workingctx
Wed, 14 Aug 2013 16:24:16 -0500 commitablectx: move tags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:16 -0500] rev 19690
commitablectx: move tags from workingctx
Wed, 14 Aug 2013 16:23:28 -0500 commitablectx: move extra from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:28 -0500] rev 19689
commitablectx: move extra from workingctx
Wed, 14 Aug 2013 16:23:16 -0500 commitablectx: move closesbranch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:16 -0500] rev 19688
commitablectx: move closesbranch from workingctx
Wed, 14 Aug 2013 16:23:02 -0500 commitablectx: move branch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:02 -0500] rev 19687
commitablectx: move branch from workingctx
Wed, 14 Aug 2013 16:22:42 -0500 commitablectx: move clean from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:42 -0500] rev 19686
commitablectx: move clean from workingctx
Wed, 14 Aug 2013 16:22:32 -0500 commitablectx: move ignored from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:32 -0500] rev 19685
commitablectx: move ignored from workingctx
Wed, 14 Aug 2013 16:22:20 -0500 commitablectx: move unknown from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:20 -0500] rev 19684
commitablectx: move unknown from workingctx
Wed, 14 Aug 2013 16:21:55 -0500 commitablectx: move deleted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:21:55 -0500] rev 19683
commitablectx: move deleted from workingctx
Wed, 14 Aug 2013 16:15:29 -0500 commitablectx: move removed from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:29 -0500] rev 19682
commitablectx: move removed from workingctx
Wed, 14 Aug 2013 16:15:18 -0500 commitablectx: move added from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:18 -0500] rev 19681
commitablectx: move added from workingctx
Wed, 14 Aug 2013 16:14:58 -0500 commitablectx: move modified from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:14:58 -0500] rev 19680
commitablectx: move modified from workingctx
Wed, 14 Aug 2013 16:09:45 -0500 commitablectx: move files from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:45 -0500] rev 19679
commitablectx: move files from workingctx
Wed, 14 Aug 2013 16:09:30 -0500 commitablectx: move description from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:30 -0500] rev 19678
commitablectx: move description from workingctx
Wed, 14 Aug 2013 16:03:32 -0500 commitablectx: move date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:03:32 -0500] rev 19677
commitablectx: move date from workingctx
Thu, 15 Aug 2013 10:57:43 -0500 commitablectx: move _date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:57:43 -0500] rev 19676
commitablectx: move _date from workingctx
Wed, 14 Aug 2013 15:57:24 -0500 commitablectx: move user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:57:24 -0500] rev 19675
commitablectx: move user from workingctx
Thu, 15 Aug 2013 10:51:53 -0500 commitablectx: move _user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:51:53 -0500] rev 19674
commitablectx: move _user from workingctx
Wed, 14 Aug 2013 15:55:56 -0500 commitablectx: move status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:55:56 -0500] rev 19673
commitablectx: move status from workingctx
Wed, 14 Aug 2013 15:41:22 -0500 commitablectx: move _status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:41:22 -0500] rev 19672
commitablectx: move _status from workingctx
Wed, 14 Aug 2013 15:34:18 -0500 commitablectx: move _manifest from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:34:18 -0500] rev 19671
commitablectx: move _manifest from workingctx
Wed, 14 Aug 2013 15:30:17 -0500 commitablectx: move _flagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:30:17 -0500] rev 19670
commitablectx: move _flagfunc from workingctx
Wed, 14 Aug 2013 15:29:48 -0500 commitablectx: move _buildflagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:48 -0500] rev 19669
commitablectx: move _buildflagfunc from workingctx
Wed, 14 Aug 2013 15:29:09 -0500 commitablectx: move __contains__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:09 -0500] rev 19668
commitablectx: move __contains__ from workingctx
Wed, 14 Aug 2013 15:28:43 -0500 commitablectx: move __nonzero__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:28:43 -0500] rev 19667
commitablectx: move __nonzero__ from workingctx
Wed, 14 Aug 2013 15:25:14 -0500 commitablectx: move __str__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:25:14 -0500] rev 19666
commitablectx: move __str__ from workingctx
Wed, 14 Aug 2013 15:24:58 -0500 commitablectx: move __init__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:24:58 -0500] rev 19665
commitablectx: move __init__ from workingctx
Wed, 14 Aug 2013 15:02:08 -0500 commitablectx: add a class that will be used as a parent of mutable contexts
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:02:08 -0500] rev 19664
commitablectx: add a class that will be used as a parent of mutable contexts Currently, we have basectx that serves as a common ancestor of all contexts. We will now add a new class commitablectx that will inherit from basectx and will serve as a common place for code that will be shared between mutable contexts, e.g. workingctx and memctx.
Wed, 14 Aug 2013 13:32:56 -0500 workingfilectx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:56 -0500] rev 19663
workingfilectx: remove unneeded __repr__ since it is now inherited
Thu, 15 Aug 2013 13:09:34 -0500 workingfilectx: remove bogus comment
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:09:34 -0500] rev 19662
workingfilectx: remove bogus comment
Thu, 15 Aug 2013 13:32:07 -0500 workingfilectx: remove __str__ manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:32:07 -0500] rev 19661
workingfilectx: remove __str__ manifest since it is now inherited
Thu, 15 Aug 2013 13:31:17 -0500 basefilectx: use basectx __str__ instead of duplicating logic
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:31:17 -0500] rev 19660
basefilectx: use basectx __str__ instead of duplicating logic This change allows us to only rely on one place to convert a context to a string which will help eliminate duplicate code in context.py
Wed, 14 Aug 2013 13:41:09 -0500 workingctx: remove unneeded manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:41:09 -0500] rev 19659
workingctx: remove unneeded manifest since it is now inherited
Wed, 14 Aug 2013 13:32:44 -0500 workingctx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:44 -0500] rev 19658
workingctx: remove unneeded __repr__ since it is now inherited
Tue, 03 Sep 2013 20:02:53 +0400 hgweb: import the whole util module in webcommands instead of just one function
Alexander Plavin <alexander@plav.in> [Tue, 03 Sep 2013 20:02:53 +0400] rev 19657
hgweb: import the whole util module in webcommands instead of just one function This is to allow using other functions from this module easily.
Wed, 04 Sep 2013 19:40:04 +0400 hgweb: add string constants for search mode names
Alexander Plavin <alexander@plav.in> [Wed, 04 Sep 2013 19:40:04 +0400] rev 19656
hgweb: add string constants for search mode names It helps detecting mistakes in the mode names.
Wed, 04 Sep 2013 18:42:55 -0700 addremove: don't do full walks
Siddharth Agarwal <sid0@fb.com> [Wed, 04 Sep 2013 18:42:55 -0700] rev 19655
addremove: don't do full walks Full walks are only necessary when the caller needs the list of clean files. addremove by definition doesn't need them. With this patch and an extension that produces a subset of results for dirstate.walk when full is False, on a repository with over 200,000 files, hg addremove drops from 2.8 seconds to 0.5.
Thu, 05 Sep 2013 11:45:27 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Thu, 05 Sep 2013 11:45:27 -0400] rev 19654
merge with mpm
Tue, 03 Sep 2013 17:06:19 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Tue, 03 Sep 2013 17:06:19 -0400] rev 19653
merge with mpm
(0) -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 +30000 tip