Fri, 01 Feb 2013 15:14:05 -0600 merge with crew stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:14:05 -0600] rev 18525
merge with crew
Fri, 01 Feb 2013 10:12:41 -0600 hgweb: rename 'currentbaseline' template keyword to 'basenode' stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 10:12:41 -0600] rev 18524
hgweb: rename 'currentbaseline' template keyword to 'basenode' Shorter and clearer. This keyword represents the node we're currently diffing against.
Fri, 01 Feb 2013 09:58:25 -0600 hgweb: rename 'changesetbaseline' template to 'difffrom' stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 09:58:25 -0600] rev 18523
hgweb: rename 'changesetbaseline' template to 'difffrom' More accurately reflects what it will be used for, and is also shorter. This template is used to change which rev the current rev is diff'd against. For example, if you're at '/rev/P1:REV', this would link to a path like '/rev/P2:REV'. Example usage in a template: {parent%difffrom}
Thu, 31 Jan 2013 19:56:55 +0100 hgweb: add a `web.view` to control filtering stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 19:56:55 +0100] rev 18522
hgweb: add a `web.view` to control filtering This options add a new `web.view` to control filter level of hgweb. This option have two purposes: 1) Allow fall back to unfiltered version in case a yet undetected by critical bug is found in filtering after 2.5 release 2) People use hgweb as a local repoviewer. When they have secret changesets, they wants to use "visible" filter not "served" (modified by mpm, documentation deferred)
Thu, 31 Jan 2013 22:30:52 +0100 hgweb: returns 404 for unknow revision instead of 500 stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 31 Jan 2013 22:30:52 +0100] rev 18521
hgweb: returns 404 for unknow revision instead of 500 I noticed that access to filtered revision returned HTTP 500 code (internal server error). Investigation shown that it was the case for unknown revision too. That wrong and we now properly return a 404 for revision not found.
Thu, 31 Jan 2013 01:44:29 +0100 subrepo: allows to drop courtesy phase sync (issue3781) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 01:44:29 +0100] rev 18520
subrepo: allows to drop courtesy phase sync (issue3781) Publishing server may contains draft changeset when they are created locally. As publishing is the default, it is actually fairly common. Because of this "inconsistency" phases synchronization may be done even to publishing server. This may cause severe issues for subrepo. It is possible to reference read-only repository as subrepo. Push in a super repo recursively push subrepo. Those pushes to potential read only repo are not optional, they are "suffered" not "choosed". This does not break because as the repo is untouched the push is supposed to be empty. If the reference repo locally contains draft changesets, a courtesy push is triggered to turn them public. As the repo is read only, the push fails (after possible prompt asking for credential). Failure of the sub-push aborts the whole subrepo push. This force the user to define a custom default-push for such subrepo. This changeset introduce a prevention of this error client side by skipping the courtesy phase synchronisation in problematic situation. The phases synchronisation is skipped when four conditions are gathered: - this is a subrepo push, (normal push to read-only repo) - and remote support phase - and remote is publishing - and no changesets was pushed (if we pushed changesets, repo is not read only) The internal config option used in this version is not definitive. It is here to demonstrate a working fix to the issue. In the future we probably wants to track subrepo changes and avoid pushing to untouched one. That will prevent any attempt to push to read-only or unreachable subrepo. Another fix to prevent courtesy push from older clients to push to newer server is also still needed.
Thu, 31 Jan 2013 19:13:13 +0100 tests: fix toctou race in tinyproxy.py (issue3795) stable
Mads Kiilerich <madski@unity3d.com> [Thu, 31 Jan 2013 19:13:13 +0100] rev 18519
tests: fix toctou race in tinyproxy.py (issue3795) test-http-proxy.t sometimes failed with: File ".../tests/tinyproxy.py", line 110, in _read_write data = i.recv(8192) error: (104, 'Connection reset by peer') This might have started showing up with a9fd11ffa13f ... but it has apparently also been seen before. I don't see anything in a9fd11ffa13f that can explain it. It seems to be a race in test, in the tinyproxy helper: Tinyproxy found an incoming socket using select(). It would break the loop if an error had been detected on the socket, but there was no error and it tried to recv() from the socket. That failed - apparently because it had been reset after select(). Errors in the recv() will now be caught and will break the loop like errors detected by select() would. (send() could also fail in a similar way ... but using the same solution there and losing data we have read doesn't feel right.)
Fri, 01 Feb 2013 02:01:11 +0100 rebase: mention --rev in the help stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 02:01:11 +0100] rev 18518
rebase: mention --rev in the help This changeset adds a small mention of it in the help to prevent confusion. This small addition references online help that is easier to update and improve at release time. Following Wagner Bruna's advice, this is added in a plain new paragraph to not invalidate current translation this close to the release.
Fri, 01 Feb 2013 05:40:06 +0100 hgweb: remove baseline info from paper template stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 05:40:06 +0100] rev 18517
hgweb: remove baseline info from paper template The user interface introduced in d605a82cf189 is not considered ready for prime time yet. The internal code stays in place for custom template usage. The feature is ultimately wanted and will be re-enabled soon. The current issue is only related to the visual of the current interface.
Thu, 31 Jan 2013 20:01:26 -0600 rebase: mention phases in the help stable
Kevin Bullock <kbullock@ringworld.org> [Thu, 31 Jan 2013 20:01:26 -0600] rev 18516
rebase: mention phases in the help Mention that Mercurial helps you not do what you've just been warned not to do, with a reference to the 'phases' help topic (not the 'phase' command help). Thanks to Pierre-Yves David <pierre-yves.david@ens-lyon.org> for motivating this change and Wagner Bruna <wagner.bruna+mercurial@gmail.com> for advising on how to do it in an i18n-friendly way.
Thu, 31 Jan 2013 22:36:22 +0100 hgwebdir: use web.prefix when creating url breadcrumbs (issue3790) stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 31 Jan 2013 22:36:22 +0100] rev 18515
hgwebdir: use web.prefix when creating url breadcrumbs (issue3790) The web.prefix setting was being ignored when creating the index URL breadcrumbs. We only need to fix hgwebdir and not hgweb because hgweb gets the complete URL request, including the prefix, while hgwebdir gets a "subdir" which does not include the prefix. This fix is slightly different of what was suggested on the bug tracker. In there it was suggested to hide the prefix itself from the breadcrumb. I think that would be a better solution, but it would require changing all the index templates and passing the prefix to the template engine, which may be too big a change for stable during the freeze. For now this fixes the problem, and the fix could be improved during the next cycle.
Wed, 30 Jan 2013 16:08:32 -0800 rebase: delete divergent bookmarks on destination (issue3685) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 16:08:32 -0800] rev 18514
rebase: delete divergent bookmarks on destination (issue3685) Similar to merge, divergent bookmarks are only deleted when the bookmark is on the destination parent.
Wed, 30 Jan 2013 15:35:00 -0800 bookmarks: factor out delete divergent code stable
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 15:35:00 -0800] rev 18513
bookmarks: factor out delete divergent code Deleting divergent bookmarks is more generally useful than just in bookmarks.update.
Wed, 30 Jan 2013 17:49:54 -0800 rebase: remove bogus nullmerge check in updatebookmarks stable
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 17:49:54 -0800] rev 18512
rebase: remove bogus nullmerge check in updatebookmarks nstate[v] is a node, not an int, and the nullmerge check was done while building nstate anyway.
Tue, 27 Nov 2012 21:31:59 -0500 share: backout fd903f89e42b, except the test stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 27 Nov 2012 21:31:59 -0500] rev 18511
share: backout fd903f89e42b, except the test Locating the share source when no default path is available is now handled in subrepo._abssource(), so unconditionally setting a default path (and the associated problems) can be avoided. The test change reflects the fact that a default path is no longer set on the resulting share.
Tue, 27 Nov 2012 20:56:27 -0500 subrepo: use sharepath if available when locating the source repo stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 27 Nov 2012 20:56:27 -0500] rev 18510
subrepo: use sharepath if available when locating the source repo This is an alternative fix for issue3518, enabling sharing of repositories with subrepos, without unconditionally setting the default path in the resulting repo's hgrc file. Better test coverage is added here, but won't prove this code is working until fd903f89e42b is backed out. The problem with the original fix is, if a default path is not available to be copied over from the share source, the default path on the resulting repo is set to the source location. Since that's where the actual repository is stored, the path is essentially self-referential, so push, pull, incoming and outgoing effectively operate on itself. While incoming and outgoing make it look like nothing was changed, push currently hangs (see issue3657). In this case where there is not a real default path, these operations should abort with "default(-push) not found", like the source repo would. Note this problem with the original fix affected repos without subrepos too.
Tue, 22 Jan 2013 14:33:17 +0100 test-histedit: add tests for dropping head changeset stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 22 Jan 2013 14:33:17 +0100] rev 18509
test-histedit: add tests for dropping head changeset I got bug report from user in this specific case. I was unable to reproduce in test situation. Testing this situation is still valuable.
Thu, 31 Jan 2013 02:39:55 +0100 tests: use `pwd` instead of ${PWD} in test-convert-git.t - because of Solaris stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 31 Jan 2013 02:39:55 +0100] rev 18508
tests: use `pwd` instead of ${PWD} in test-convert-git.t - because of Solaris
Wed, 30 Jan 2013 10:57:28 -0500 histedit: prevent parent guessed via --outgoing from being a revset (issue3770) stable
Augie Fackler <raf@durin42.com> [Wed, 30 Jan 2013 10:57:28 -0500] rev 18507
histedit: prevent parent guessed via --outgoing from being a revset (issue3770) If the binary hash of the parent node guessed via --outgoing happened to contain a special revset character (":" was specified in the bug), the revset parser would abort. Hexlifying the node before passing it to the revsingle call should fix that.
Wed, 30 Jan 2013 19:40:07 +0100 tests: fix for windows - slashes and no serve stable
Mads Kiilerich <madski@unity3d.com> [Wed, 30 Jan 2013 19:40:07 +0100] rev 18506
tests: fix for windows - slashes and no serve
Wed, 30 Jan 2013 19:29:36 +0100 merge: fix UnboundLocalError (issue3791) stable
Mads Kiilerich <madski@unity3d.com> [Wed, 30 Jan 2013 19:29:36 +0100] rev 18505
merge: fix UnboundLocalError (issue3791) A wrong variable name was introduced in 384df4db6520 for a case without test coverage. The variable name is fixed and a test case is introduced.
Mon, 28 Jan 2013 19:05:35 +0900 parsers: fix memleak of revlog cache entries on strip stable
Yuya Nishihara <yuya@tcha.org> [Mon, 28 Jan 2013 19:05:35 +0900] rev 18504
parsers: fix memleak of revlog cache entries on strip Since 12a852c7c763, raw_length can be reduced on strip, but corresponding cache entries still have refcount. They are not dereferenced by _index_clearcache(), and never freed. To reproduce the problem, run "hg pull" and "hg strip null" several times in the same process.
Wed, 30 Jan 2013 17:32:17 +0100 hgweb: fix navigation label (issue3792) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 30 Jan 2013 17:32:17 +0100] rev 18503
hgweb: fix navigation label (issue3792) Latest refactoring (6da1e979340a) was buggy and used a variable from another loop. Tests are run on repo too small to cache that.
Tue, 29 Jan 2013 20:03:51 +0100 profiling: add documentation of lsprof 'sort' and 'nested' stable
Mads Kiilerich <madski@unity3d.com> [Tue, 29 Jan 2013 20:03:51 +0100] rev 18502
profiling: add documentation of lsprof 'sort' and 'nested'
Tue, 29 Jan 2013 17:01:41 +0100 OS X: try cheap ascii .lower() in normcase before making full unicode dance stable
Mads Kiilerich <madski@unity3d.com> [Tue, 29 Jan 2013 17:01:41 +0100] rev 18501
OS X: try cheap ascii .lower() in normcase before making full unicode dance This is similar to what is done in encoding.lower, introduced in c481761033bd. This has been seen making 'hg up' and 'hg st' in a 50000+ files repo 13% faster. This might make Mercurial slightly slower for users who mainly use non-ASCII filenames. That is a reasonable trade-off.
Tue, 29 Jan 2013 20:03:51 +0100 run-tests.py: inherit PYTHONHASHSEED from environment if set stable
Mads Kiilerich <madski@unity3d.com> [Tue, 29 Jan 2013 20:03:51 +0100] rev 18500
run-tests.py: inherit PYTHONHASHSEED from environment if set This makes it possible to fix the seed by using for instance PYTHONHASHSEED=7 ./run-tests.py ... This can be very convenient when trying to debug problems that are influenced by hash values. Try different seed values until you find one that triggers the bad behaviour and then keep that while debugging. The value 0 will restore default Python behavior and disable randomization.
Tue, 29 Jan 2013 15:25:33 +0100 test-obsolete: validate that bundle is not affected by issue3788 stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 29 Jan 2013 15:25:33 +0100] rev 18499
test-obsolete: validate that bundle is not affected by issue3788 Bundle might have been affected by the same kind of error than pull (issue3788). Testing show it is not the case.
Tue, 29 Jan 2013 15:26:10 +0100 pull: fix crash when pulling changeset that get hidden locally (issue3788) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 29 Jan 2013 15:26:10 +0100] rev 18498
pull: fix crash when pulling changeset that get hidden locally (issue3788) When you have obsolescence marker that apply to a pulled changesets, the added changeset is immediately filtered. Then the list of added changeset needs to be build against and unfiltered repo.
Tue, 29 Jan 2013 16:44:51 +0100 hgweb: prevent traceback during search when filtered (issue3783) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 29 Jan 2013 16:44:51 +0100] rev 18497
hgweb: prevent traceback during search when filtered (issue3783) The search needs to iterate over the repo using changelog.revs like the rest of the Mercurial code.
Sun, 27 Jan 2013 15:13:53 -0600 bookmarks: hide bookmarks on filtered revs from listkeys stable
Kevin Bullock <kbullock@ringworld.org> [Sun, 27 Jan 2013 15:13:53 -0600] rev 18496
bookmarks: hide bookmarks on filtered revs from listkeys Don't expose unserved changesets to remote repos. Thanks to Sean Farley <sean.michael.farley@gmail.com> for tracking down the issue and Pierre-Yves David <pierre-yves.david@ens-lyon.org> for the fix.
Sun, 27 Jan 2013 14:24:37 -0600 bookmarks: don't use bookmarks.listbookmarks in local computations stable
Kevin Bullock <kbullock@ringworld.org> [Sun, 27 Jan 2013 14:24:37 -0600] rev 18495
bookmarks: don't use bookmarks.listbookmarks in local computations bookmarks.listbookmarks is for wire-protocol use. The normal way to get all the bookmarks on a local repository is repo._bookmarks.
Mon, 28 Jan 2013 20:25:56 -0600 filtering: test that bookmarks prevent hiding of changesets stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 28 Jan 2013 20:25:56 -0600] rev 18494
filtering: test that bookmarks prevent hiding of changesets
Mon, 28 Jan 2013 13:56:11 +0100 discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 28 Jan 2013 13:56:11 +0100] rev 18493
discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776) We noa pass an unfiltered repo in the same way `localrepo.push` does. This does not alter outgoing behavior and prevents possible crash with computing common/missing. The `findcommonincoming` code could be simplified to make this unnecessary, but this is too much change for the freeze.
Mon, 28 Jan 2013 13:44:44 +0100 test: minor documentation fix stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 28 Jan 2013 13:44:44 +0100] rev 18492
test: minor documentation fix The related test check push, not pull.
Fri, 25 Jan 2013 18:20:13 +0100 largefiles: fix cat when using relative paths from subdirectory stable
Mads Kiilerich <madski@unity3d.com> [Fri, 25 Jan 2013 18:20:13 +0100] rev 18491
largefiles: fix cat when using relative paths from subdirectory
Fri, 25 Jan 2013 16:59:34 +0100 largefiles: fix commit when using relative paths from subdirectory stable
Mads Kiilerich <madski@unity3d.com> [Fri, 25 Jan 2013 16:59:34 +0100] rev 18490
largefiles: fix commit when using relative paths from subdirectory Remove cwd handling from getstandinmatcher - it did not belong there, as proven by the tests.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: allow use of urls with #revision stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18489
largefiles: allow use of urls with #revision largefiles tried to create a peer directly with the specified url. That caused abort: unsupported URL component: "..." if a revision was specified in the url. The branch name do not matter for largefiles' use of remote peers. Largefiles will be shared among all branches anyway.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: don't verify largefile hashes on servers when processing statlfile stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18488
largefiles: don't verify largefile hashes on servers when processing statlfile When changesets referencing largefiles are pushed then the corresponding largefiles will be pushed too - unless the target already has them. The client will use statlfile to make sure it only sends largefiles that the target doesn't have. The server would however on every statlfile check that the content of the largefile had the expected hash. What should be cheap thus became an expensive operation that trashed the disk and the cache. Largefile hashes are already checked by putlfile before being stored on the server. A server should thus be able to keep its largefile store free of errors - even more than it can keep revlogs free of errors. Verification should happen when running 'hg verify' locally on the server. Rehashing every largefile on every remote stat is too expensive. Clients will also stat lfiles before downloading them. When the server verified the hash in stat it meant that it had to read the file twice to serve it. With this change the server will assume its own hashes are ok without checking them on every statlfile. Some consequences of this change: - in case of server side corruption the problem will be detected by the existing check on the client side - not on server side - clients that could upload an uncorrupted largefile when pushing will no longer magically heal the server (and break hardlinks) - a client will now only upload its uncorrupted files after the corrupted file has been removed on the server side - client side verify will no longer report corruption in files it doesn't have (Issue3123 discussed related problems - and how they have been fixed.)
Mon, 28 Jan 2013 15:19:44 +0100 tests: clarify test for pushing corrupted largefile stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18487
tests: clarify test for pushing corrupted largefile The test no longer tested that the server prevented pushing a corrupt largefile. At the same time it tested what happened when the server already had a corrupt largefile. These two cases are now separated.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: verify all files in each revision and report errors in any revision stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18486
largefiles: verify all files in each revision and report errors in any revision Verify used 'any' and would stop verifying after the first failure in each changeset. The exit code only reported the result from the last changeset.
Mon, 28 Jan 2013 15:19:44 +0100 tests: better test coverage of largefiles localstore verify stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18485
tests: better test coverage of largefiles localstore verify This demonstrates problems that will be fixed later.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: adapt remotestore._getfile to batched statlfile stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18484
largefiles: adapt remotestore._getfile to batched statlfile 9e1616307c4c introduced batching of statlfile, but not all codepaths got converted. _getfile gave _stat garbage and got garbage back. The garbage didn't match the expected error codes and was thus interpreted as success. It could thus end up trying to fetch a largefile that didn't exist. Instead we now pass _stat valid input and handle both correct and invalid output correctly. This makes the code work as intended ... but it would probably be better if it didn't abort on missing largefiles, just like it happened to do before.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: don't allow corruption to propagate after detection stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18483
largefiles: don't allow corruption to propagate after detection basestore.get uses util.atomictempfile when checking and receiving a new largefile ... but the close/discard logic was too clever for largefiles. Largefiles relied on being able to discard the file and thus prevent it from being written to the store. That was however too brittle. lfutil.copyandhash closes the infile after writing to it ... with a 'blecch' comment. The discard was thus a silent noop, and as a result of that corruption would be detected ... and then the corrupted files would be used anyway. Instead we now use a tmp file and rename or unlink it after validating it. A better solution should be implemented ... but not now.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: adapt verify to batched remote statlfile (issue3780) stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18482
largefiles: adapt verify to batched remote statlfile (issue3780) 9e1616307c4c introduced batching of statlfile, but not all codepaths got converted. 'hg verify' with a remotestore could thus crash with TypeError: 'builtin_function_or_method' object is not iterable Also, the 'hash' variable was used without assigning to it. Don't use variable names that collide with Python built-in functions. Instead we use 'expecthash' as in localstore. The tests for this issue covers an untested area. The tests happens to also reveal incorrect attempts at getting non-existing largefiles, bad server side handling of that, and corruption issues - all to be fixed later.
Mon, 28 Jan 2013 15:19:44 +0100 largefiles: let wirestore._stat return stats as expected by remotestore verify stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Jan 2013 15:19:44 +0100] rev 18481
largefiles: let wirestore._stat return stats as expected by remotestore verify - preparing for fixing verify crash.
Sun, 27 Jan 2013 11:39:51 -0600 tests: improve description of hgweb secret bookmarks test stable
Kevin Bullock <kbullock@ringworld.org> [Sun, 27 Jan 2013 11:39:51 -0600] rev 18480
tests: improve description of hgweb secret bookmarks test Added in 886936ecc21b with only an issue number to describe it.
Sun, 27 Jan 2013 11:29:14 -0600 bookmarks: show active bookmark even if not at working dir stable
Kevin Bullock <kbullock@ringworld.org> [Sun, 27 Jan 2013 11:29:14 -0600] rev 18479
bookmarks: show active bookmark even if not at working dir If the active bookmark doesn't point at a parent of the working dir (e.g. a pull moved it out from under us), we nonetheless show it as active. This follows on 2096e025a728 in removing the dichotomy (at least in the UI) between "current" and "active" bookmarks.
Fri, 25 Jan 2013 11:43:54 -0600 hgweb: don't attempt to show hidden bookmarks (issue3774) stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 25 Jan 2013 11:43:54 -0600] rev 18478
hgweb: don't attempt to show hidden bookmarks (issue3774) localrepository._bookmarks is unfiltered, but hgweb gets a filtered repo. This fixes the resulting traceback on the 'bookmarks' page.
Fri, 25 Jan 2013 14:50:18 -0600 hgweb: fetch tipmost unfiltered rev thru the changelog stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 25 Jan 2013 14:50:18 -0600] rev 18477
hgweb: fetch tipmost unfiltered rev thru the changelog This fixes a traceback when tip is filtered (e.g. because it's secret). See issue3783, for which this is a partial fix.
Fri, 25 Jan 2013 16:11:16 -0600 help: update verbose 'clone' help to include '@' bookmark stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 25 Jan 2013 16:11:16 -0600] rev 18476
help: update verbose 'clone' help to include '@' bookmark
Fri, 25 Jan 2013 11:38:54 -0600 tests: fix test-help.t for '@' bookmark documentation stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 25 Jan 2013 11:38:54 -0600] rev 18475
tests: fix test-help.t for '@' bookmark documentation e031e10cdc06 unexpectedly introduced bookmarks into the results for 'hg help -k clone'. Mea culpa, miserere &c.
Fri, 25 Jan 2013 11:06:30 -0600 help: document '@' bookmark in 'help bookmarks' and 'help clone' stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 25 Jan 2013 11:06:30 -0600] rev 18474
help: document '@' bookmark in 'help bookmarks' and 'help clone'
Wed, 23 Jan 2013 22:52:55 +0900 revset: evaluate sub expressions correctly (issue3775) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 23 Jan 2013 22:52:55 +0900] rev 18473
revset: evaluate sub expressions correctly (issue3775) Before this patch, sub expression may return unexpected result, if it is joined with another expression by "or": - "^"/parentspec(): "R or R^1" is not equal to "R^1 or R". the former returns only "R". - "~"/ancestorspec(): "R or R~1" is not equal to "R~1 or R". the former returns only "R". - ":"/rangeset(): "10 or (10 or 15):" is not equal to "(10 or 15): or 10". the former returns only 10 and 15 or grater (11 to 14 are not included). In "or"-ed expression "A or B", the "subset" passed to evaluation of "B" doesn't contain revisions gotten from evaluation of "A", for efficiency. In the other hand, "stringset()" fails to look corresponding revision for specified string/symbol up, if "subset" doesn't contain that revision. So, predicates looking revisions up indirectly should evaluate sub expressions of themselves not with passed "subset" but with "entire revisions in the repository", to prevent "stringset()" from unexpected failing to look symbols in them up. But predicates in above example don't so. For example, in the case of "R or R^1": 1. "R^1" is evaluated with "subset" containing revisions other than "R", because "R" is already gotten by the former of "or"-ed expressions 2. "parentspec()" evaluates "R" of "R^1" with such "subset" 3. "stringset()" fails to look "R" up, because "R" is not contained in "subset" 4. so, evaluation of "R^1" returns no revision This patch evaluates sub expressions for predicates above with "entire revisions in the repository".
Sat, 19 Jan 2013 04:08:16 +0100 test-rebase: add another test for rebase with multiple roots stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 19 Jan 2013 04:08:16 +0100] rev 18472
test-rebase: add another test for rebase with multiple roots This test the case when a Merge is dropped.
Mon, 21 Jan 2013 13:47:10 -0600 update: update to current bookmark if it moved out from under us (issue3682) stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 21 Jan 2013 13:47:10 -0600] rev 18471
update: update to current bookmark if it moved out from under us (issue3682) If the current bookmark (the one listed in .hg/bookmarks.current) doesn't point to a parent of the working directory, e.g. if it was moved by a pull, use that as the update target instead of the tipmost descendent. A small predicate is (finally) added to the bookmarks module to check whether the current bookmark is also active.
Mon, 21 Jan 2013 12:58:59 -0600 test-bookmarks-pushpull.t: don't set bookmark active unnecessarily stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 21 Jan 2013 12:58:59 -0600] rev 18470
test-bookmarks-pushpull.t: don't set bookmark active unnecessarily The test in question doesn't have anything to do with having an active bookmark. This change makes the test change the two bookmarks it affects without making them active. It clears the way for adding a test for updating to an active bookmark that moved out from under us.
Thu, 24 Jan 2013 00:21:22 +0900 doc: use "tag" revset predicate instead of "tagged" for example in help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 24 Jan 2013 00:21:22 +0900] rev 18469
doc: use "tag" revset predicate instead of "tagged" for example in help "tag" predicate is officially described in help, but "tagged" is not, even though the latter works as same as the former.
Wed, 23 Jan 2013 11:55:39 -0600 tests: add regression tests for another revrange edge case stable
Kevin Bullock <kbullock@ringworld.org> [Wed, 23 Jan 2013 11:55:39 -0600] rev 18468
tests: add regression tests for another revrange edge case These tests would've passed before ac0c12123743 and e441657b372b. Inserting them to make sure that continues to be the case.
Wed, 23 Jan 2013 00:20:26 -0600 graphmod: don't try to visit nullrev (issue3772) stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 23 Jan 2013 00:20:26 -0600] rev 18467
graphmod: don't try to visit nullrev (issue3772)
Wed, 23 Jan 2013 00:12:52 -0600 log: remove any ancestors of nullrev (issue3772) stable
Sean Farley <sean.michael.farley@gmail.com> [Wed, 23 Jan 2013 00:12:52 -0600] rev 18466
log: remove any ancestors of nullrev (issue3772) For the special case, ":null" we remove the implied revision 0 since that wouldn't make any sense here. A test case is added to make sure only nullrev is shown.
Tue, 22 Jan 2013 18:40:23 -0600 help: add documentation for new template functions stable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 22 Jan 2013 18:40:23 -0600] rev 18465
help: add documentation for new template functions
Tue, 22 Jan 2013 11:39:14 +0100 changectx: fix the handling of `tip` stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 22 Jan 2013 11:39:14 +0100] rev 18464
changectx: fix the handling of `tip` We can not use `len(repo,changelog)`, it may be a filtered revision. We now use `repo,changelog.tip()` to fetch this information. The `tip` command is also fixed and tested Thanks goes to Idan Kamara for the initial report.
Tue, 22 Jan 2013 03:23:02 +0100 bisect: use changelog for iteration stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 22 Jan 2013 03:23:02 +0100] rev 18463
bisect: use changelog for iteration With changelog filtering, we can not use xrange anymore. We have to use the changelog to do the iteration. This way, the changelog excludes filtered revision and we can safely use what we iterate over. Without this changes, bisect crash with a traceback if there is filtered revision in the repo. Tests have been updated.
Mon, 21 Jan 2013 19:40:15 +0100 documentation: update to new filter names stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 21 Jan 2013 19:40:15 +0100] rev 18462
documentation: update to new filter names Changeset f3b21beb9802 change filter names but forgot some documentation updates.
Mon, 21 Jan 2013 13:42:04 -0200 largefiles: enhance error message to make it more i18n-friendly stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 21 Jan 2013 13:42:04 -0200] rev 18461
largefiles: enhance error message to make it more i18n-friendly
Tue, 22 Jan 2013 17:55:14 -0600 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Tue, 22 Jan 2013 17:55:14 -0600] rev 18460
merge with i18n
Wed, 23 Jan 2013 00:51:53 +0100 largefiles: fix largefiles+subrepo update (issue3752) stable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Wed, 23 Jan 2013 00:51:53 +0100] rev 18459
largefiles: fix largefiles+subrepo update (issue3752) Override updaterepo() instead of individual methods that may not be called for each subrepo. Add test. Based on patch from Matt Harbison. Changes the order of update-related messages (now largefiles comes before the global status).
Mon, 21 Jan 2013 13:47:14 -0200 debugsuccessorssets: fix typos in docstring stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 21 Jan 2013 13:47:14 -0200] rev 18458
debugsuccessorssets: fix typos in docstring
Mon, 21 Jan 2013 13:30:53 -0200 i18n-pt_BR: synchronized with f5fbe15ca744 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 21 Jan 2013 13:30:53 -0200] rev 18457
i18n-pt_BR: synchronized with f5fbe15ca744
Sun, 20 Jan 2013 17:18:00 -0600 merge: only sort manifests in debug mode (issue3769) stable
Matt Mackall <mpm@selenic.com> [Sun, 20 Jan 2013 17:18:00 -0600] rev 18456
merge: only sort manifests in debug mode (issue3769)
Sat, 19 Jan 2013 17:26:19 -0600 Added signature for changeset f5fbe15ca744 stable
Matt Mackall <mpm@selenic.com> [Sat, 19 Jan 2013 17:26:19 -0600] rev 18455
Added signature for changeset f5fbe15ca744
Sat, 19 Jan 2013 17:26:16 -0600 Added tag 2.5-rc for changeset f5fbe15ca744 stable
Matt Mackall <mpm@selenic.com> [Sat, 19 Jan 2013 17:26:16 -0600] rev 18454
Added tag 2.5-rc for changeset f5fbe15ca744
Sat, 19 Jan 2013 17:24:33 -0600 merge default into stable for 2.5 code freeze stable 2.5-rc
Matt Mackall <mpm@selenic.com> [Sat, 19 Jan 2013 17:24:33 -0600] rev 18453
merge default into stable for 2.5 code freeze
Sat, 19 Jan 2013 17:20:39 -0600 pathencode: don't use alloca() for safety/portability
Matt Mackall <mpm@selenic.com> [Sat, 19 Jan 2013 17:20:39 -0600] rev 18452
pathencode: don't use alloca() for safety/portability
Sat, 19 Jan 2013 02:29:56 +0100 branchmap: display filtername when `updatebranch` fails to do its jobs
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 19 Jan 2013 02:29:56 +0100] rev 18451
branchmap: display filtername when `updatebranch` fails to do its jobs We have a very handy assert at the ends of `branchmap.updatecache` that check the resulting branchmap is actually valid. I know we do not like assert in mercurial but this one is very handy for debugging. There is really not reason for `branchmap.updatecache` to have this kind of issue but this happened and handful of time during the development of this or introduction of other related feature. I advice to keep it around until we are a bit more confident with the new code.
Fri, 18 Jan 2013 01:24:29 +0100 scmutil: localize and improve 'not under root' message
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Jan 2013 01:24:29 +0100] rev 18450
scmutil: localize and improve 'not under root' message
Fri, 18 Jan 2013 01:23:51 +0100 run-tests.py: don't let hg run interactively in debug mode
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Jan 2013 01:23:51 +0100] rev 18449
run-tests.py: don't let hg run interactively in debug mode In normal test mode stdin is closed and hg is thus not interactive. In --debug mode stdin is inherited from the running console and to the tests, and hg could thus wait in prompts when running on Windows. See http://selenic.com/pipermail/mercurial-devel/2013-January/047548.html . Instead set ui.interactive=False to make Mercurial non-interactive. Other commands might still work differently in the --debug environment. This should solve the problem with hg waiting for input but still make it possible to add --debugger to hg in a test and run run-tests.py with --debug.
Fri, 18 Jan 2013 01:16:16 +0100 run-tests.py: backout "don't use console for stdin when running in debug mode"
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Jan 2013 01:16:16 +0100] rev 18448
run-tests.py: backout "don't use console for stdin when running in debug mode" f5842787a958 caused that some kind of interactive debugging no longer was possible - such as running hg with --debugger in a test run with run-tests.py --debug .
Fri, 18 Jan 2013 23:41:48 +0100 rebase: properly handle unrebased revision between rebased one
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 18 Jan 2013 23:41:48 +0100] rev 18447
rebase: properly handle unrebased revision between rebased one With rebase taking multiple roots it is possible to have revision in the "rebase domain" not rebased themself. We do not want rebased revision above them to be detached. We want such revision to be rebased on the nearest rebased ancestors. This allows to preserve the topology of the rebase set as much a possible To achieve this we introduce a new state `revignored` which informs `defineparents` of the situation. The test in `test-rebase-obsolete.t` was actually wrote and his now fixed.
Fri, 18 Jan 2013 23:21:32 +0100 rebase: lose the comparison to `nullmerge`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 18 Jan 2013 23:21:32 +0100] rev 18446
rebase: lose the comparison to `nullmerge` For a proper behavior of the `--rev` revision we will need another possible state for revision ignored by rebase. We alter the comparison to `nullmerge` to match this future lower state too.
Fri, 18 Jan 2013 23:43:32 +0100 repoview: cache filtered changelog
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 18 Jan 2013 23:43:32 +0100] rev 18445
repoview: cache filtered changelog Creating a new changelog object for each access is costly and prevents efficient caching changelog side. This introduced a x5 performance regression in log because chunk read from disk were never reused. We were jumping from about 100 disk read to about 20 000. This changeset introduce a simple cache mechanism that help the last changelog object created by a repoview. The changelog is reused until the changelog or the filtering changes. The cache invalidation is much more complicated than it should be. But MQ test show a strange cache desync. I was unable to track down the source of this desync in descent time so I'm not sure if the issue is in MQ or core. However given the proximity to the 2.5 freeze, I'm choosing the inelegant but safe route that makes the cache mechanism safer.
Fri, 18 Jan 2013 14:15:32 +0100 rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 18 Jan 2013 14:15:32 +0100] rev 18444
rebase: do not invent successor to skipped changeset When rebase results in an empty a changeset it is "skipped" and no related changeset is created at all. When we added obsolescence support to rebase (in fc2a6114f0a0) it seemed a good idea to use its parent successor as the successors for such dropped changesets. (see old version of the altered test). This option was chosen because it seems a good way to hint about were the dropped changeset "intended" to be. Such hint would have been used by automatic evolution mechanism to rebase potential unstable children. However, field testing of this version are not conclusive. It very often leads to the creation of (totally unfounded) evolution divergence. This changeset changes this behavior and mark skipped changesets as pruned (obsolete without successors). This prevents the issue and seems semantically better probably a win for obsolescence reading tool. See example bellow for details: User Babar has five changesets of interest: - O, its current base of development. - U, the new upstream - A and C, some development changesets - B another development changeset independent from A O - A - B - C \ U Babar decides that B is more critical than the A and C and rebase it first $ hg rebase --rev B --dest U B is now obsolete (in lower case bellow). Rebase result, B', is its successors.(note, C is unstable) O - A - b - C \ U - B' Babar is now done with B', and want to rebase the rest of its history: $ hg rebase --source A --dest B' hg rebase process A, B and C. B is skipped as all its changes are already contained in B'. O - U - B' - A' - C' Babar have the expected result graph wise, obsolescence marker are as follow: B -> B' (from first rebase) A -> A' (from second rebase) C -> C' (from second rebase) B -> ?? (from second rebase) Before this changeset, the last marker is `B -> A'`. This cause two issues: - This is semantically wrong. B have nothing to do with A' - B has now two successors sets: (B',) and (A',). We detect a divergent rewriting. The B' and A' are reported as "divergent" to Babar, confusion ensues. In addition such divergent situation (divergent changeset are children to each other) is tricky to solve. With this changeset the last marker is `B -> ΓΈ`: - This is semantically better. - B has a single successors set (B',) This scenario is added to the tests suite.
Thu, 17 Jan 2013 17:51:30 +0100 repoview: protect `base` computation from weird phase root
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 17 Jan 2013 17:51:30 +0100] rev 18443
repoview: protect `base` computation from weird phase root If for some reason the phase roots contains nullid, the set of filtered revs will contains -1. That confuse Mercurial a lot. In particular this corrupt the branchcache. Standard code path does not result in nullid phase root. It can only result from altered `.hg/store/phaseroots` or buggy extension. However better safe than sorry.
Fri, 18 Jan 2013 15:55:16 -0800 posix: don't compare atime when determining if a file has changed
Siddharth Agarwal <sid0@fb.com> [Fri, 18 Jan 2013 15:55:16 -0800] rev 18442
posix: don't compare atime when determining if a file has changed A file's atime might change even if the file itself doesn't change. This might cause us to invalidate caches more often than necessary. Before this change, hg add often resulted in the dirstate being parsed twice on systems that track atime. After this change, it is only parsed once. For a repository with over 180,000 files, this speeds up hg add from 1.2 seconds to 1.0.
Fri, 05 Oct 2012 18:10:56 -0500 hg: replace DirCleanup class with normal try/finally use
Augie Fackler <raf@durin42.com> [Fri, 05 Oct 2012 18:10:56 -0500] rev 18441
hg: replace DirCleanup class with normal try/finally use
Wed, 16 Jan 2013 19:21:03 +0100 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 19:21:03 +0100] rev 18440
histedit: proper phase conservation (issue3724) Before this changeset, histedit created all new changesets according phases.new-commit option without any regards for the phases of the original changesets. This changeset fix that using the phase of rewritten changeset to decide the phase of the resulting changeset. In case of reordering or folding, we keep secret item secret as it seems the safer path. temporary commit creation are not affected. They are head only and stripped at the end of the histedit. As for the resolution of issue3681 (obsolescence cycle prevention), we do not handle changesets created by edit command.
Wed, 16 Jan 2013 19:19:56 +0100 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 19:19:56 +0100] rev 18439
test-histedit: reorder phases test and prepare for more We are going to add a lot regarding phase of test while fixing issue3724. This movement allows to put them after this first phase test.
Wed, 16 Jan 2013 19:17:36 +0100 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 19:17:36 +0100] rev 18438
test-histedit: fix instability creation test The current test does not rewrite anything and therefor does not create any instability. We also clean up the repo state after the test. This required the rebase extension.
Wed, 16 Jan 2013 19:14:22 +0100 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 19:14:22 +0100] rev 18437
histedit: record histedit source (issue3681) Have histedit record the hex of the original changeset as already done by: - graft - commit --amend - rebase My main motivation for adding this is to prevent the creation of obsolescence cycle (see issue3681). Note that commit created during edit are not affected yet.
Wed, 16 Jan 2013 19:11:06 +0100 histedit: factor most commit creation in a function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 19:11:06 +0100] rev 18436
histedit: factor most commit creation in a function Later commits add two important items to histedit: - Obsolescence cycle prevention - Proper phase conservation Those logics must be applied to all simple operations (pick, edit, mess) and will require verbose code. So we introduce a new function that will provide an entry point for this new. logic. The function build a closure to have a clear distinction between commit arguments and data provided to the function to fulfil its logic.
Wed, 12 Dec 2012 13:09:37 -0800 store: switch to C-based hashed path encoding
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:37 -0800] rev 18435
store: switch to C-based hashed path encoding
Wed, 12 Dec 2012 13:09:36 -0800 pathencode: implement both basic and hashed encoding in C
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:36 -0800] rev 18434
pathencode: implement both basic and hashed encoding in C
Wed, 12 Dec 2012 13:09:36 -0800 pathencode: implement hashed encoding in C
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:36 -0800] rev 18433
pathencode: implement hashed encoding in C This will be used by an upcoming patch.
Wed, 12 Dec 2012 13:09:35 -0800 pathencode: implement the "mangling" part of hashed encoding in C
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:35 -0800] rev 18432
pathencode: implement the "mangling" part of hashed encoding in C This will be used by an upcoming patch.
Wed, 12 Dec 2012 13:09:34 -0800 pathencode: add a SHA-1 hash function
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:34 -0800] rev 18431
pathencode: add a SHA-1 hash function This will be used by an upcoming patch. This calls out to the Python hash implementation. An earlier version of this function implemented SHA-1 directly, but the amount of extra code didn't seem like a good tradeoff compared to the small big-picture increase in performance (long paths are uncommon).
Wed, 12 Dec 2012 13:09:33 -0800 store: implement lowerencode in C
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 13:09:33 -0800] rev 18430
store: implement lowerencode in C
Tue, 15 Jan 2013 22:34:56 +0100 hgweb: run with "served" filter
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 15 Jan 2013 22:34:56 +0100] rev 18429
hgweb: run with "served" filter This changeset enable the "served" filter on all repo used by hgweb. Hgweb misbehave in a lot of when filtering changeset are present but I do not expect normal people to have secret or obsolete changeset on they server. Misbehavior will be gradually fixed later.
Wed, 16 Jan 2013 14:22:43 +0100 hgweb: walk the graph through the changelog
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 14:22:43 +0100] rev 18428
hgweb: walk the graph through the changelog This is necessary to enforce filtering. The result is a bit buggy (may provide less changeset than expected, but it will stop crashing on filtered revision access. Note that changelog.revs can not represents empty iteration like xrange did. So we have to explicitly prevent call when there is nothing to do.
Fri, 11 Jan 2013 01:08:00 +0100 hgweb: use changelog for iteration
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 11 Jan 2013 01:08:00 +0100] rev 18427
hgweb: use changelog for iteration Iterating through changelog is necessary to enforce filtering.
Wed, 16 Jan 2013 14:19:28 +0100 hgweb: ignore filtered revision in revnav
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 14:19:28 +0100] rev 18426
hgweb: ignore filtered revision in revnav This changeset checks that a revision is known before adding it to the navigation. This will prevent traceback on filtered repository. This changeset result in an incorrect behaviors, Navigation link may be dropped without any replacement. However this bad navigation generation is much better than a crash
Thu, 10 Jan 2013 19:29:48 +0100 hgweb: generate revnav in two phase
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 19:29:48 +0100] rev 18425
hgweb: generate revnav in two phase We first generate revision to link. Then we dispatch them in before, after list. This will help filtering of unknown revision.
Thu, 17 Jan 2013 00:35:01 +0100 rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 17 Jan 2013 00:35:01 +0100] rev 18424
rebase: support multiple roots for rebaseset We have all the necessary mechanism to rebase a set with multiple roots, we only needed a proper handling of this case we preparing and concluding the rebase. This changeset des that. Rebase set with multiple root allows some awesome usage of rebase like: - rebase all your draft on lastest upstream hg rebase --dest @ --rev 'draft()' - exclusion of specific changeset during rebase hg rebase --rev '42:: - author(Babar)' - rebase a set of revision were multiple roots are later merged hg rebase --rev '(18+42)::'
Wed, 16 Jan 2013 05:21:11 +0100 clfilter: stronger detection of filtered changeset in changectx.__init__
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Jan 2013 05:21:11 +0100] rev 18423
clfilter: stronger detection of filtered changeset in changectx.__init__ We previously let some IndexError spill out of this function. A new tests is added to check the command that spotted the error.
Tue, 11 Dec 2012 20:13:21 +0100 validate: check for spurious incoming filelog entries
Sune Foldager <cryo@cyanite.org> [Tue, 11 Dec 2012 20:13:21 +0100] rev 18422
validate: check for spurious incoming filelog entries Accepting those will lead to "mild corruption", correctly reported as an error by hg verify, but often not a problem in practice. Enabled when server.validate is switched on.
Thu, 17 Jan 2013 01:06:00 +0100 zsh_completion: add descriptive branch names to head revisions
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 01:06:00 +0100] rev 18421
zsh_completion: add descriptive branch names to head revisions
Thu, 17 Jan 2013 00:54:49 +0100 zsh_completion: add completion of branch names
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 00:54:49 +0100] rev 18420
zsh_completion: add completion of branch names
Thu, 17 Jan 2013 01:55:50 +0100 zsh_completion: fix issue with overlong branch/tag names
Johannes Schlatow <johannes@schlatow.name> [Thu, 17 Jan 2013 01:55:50 +0100] rev 18419
zsh_completion: fix issue with overlong branch/tag names
Wed, 16 Jan 2013 20:52:56 +0100 bundlerepo: remove old style check of file names
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:52:56 +0100] rev 18418
bundlerepo: remove old style check of file names The old check is no longer needed: The checked paths will be passed on to filelog.__init__ which will prefix the path with 'data/'. A leading '/' will thus not do any harm. And: The paths will be used by an opener which will use a pathauditor. And finally: The old check did not consider Windows paths and was thus insufficient.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: use revlog._checkhash
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18417
bundlerepo: use revlog._checkhash The error message will mention datafile instead of indexfile.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: store validated deltabase rev in basemap instead of node
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18416
bundlerepo: store validated deltabase rev in basemap instead of node This avoids some lookups and aligns bundlerepo more with what revlog do.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: use rev instead of node for iteration in revision()
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18415
bundlerepo: use rev instead of node for iteration in revision() Avoids some lookups and avoids using rev while iterating.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: inline inbundle()
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18414
bundlerepo: inline inbundle() It didn't make it faster, it didn't make the code smaller, it didn't make the code simpler. -1 is never in basemap.
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: drop bundlebase wrapper function for basemap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18413
bundlerepo: drop bundlebase wrapper function for basemap
Wed, 16 Jan 2013 20:41:41 +0100 bundlerepo: remove unused disktiprev attribute
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:41 +0100] rev 18412
bundlerepo: remove unused disktiprev attribute
Wed, 16 Jan 2013 20:41:34 +0100 bundlerepo: improve performance for bundle() revset expression
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:34 +0100] rev 18411
bundlerepo: improve performance for bundle() revset expression Create the set of revision numbers directly instead of creating a list of nodes first.
Wed, 16 Jan 2013 20:41:32 +0100 bundlerepo: fix outdated comment
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Jan 2013 20:41:32 +0100] rev 18410
bundlerepo: fix outdated comment Comment was made invalid by 01ee43dda681.
Wed, 16 Jan 2013 13:18:22 +0100 hgweb: pass repo object to revnav construction
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 13:18:22 +0100] rev 18409
hgweb: pass repo object to revnav construction For compatibility with changelog filtering we need access to the changelog, a simple nodefunc is not sufficient, only the changelog and repo have access the filteredrevs information. For the filerevnav version, we use an unfiltered changelog. Linkrev is currently broken with filtering and we need some failsafe to prevent traceback. This is the same approach as the one used in 518c1403838f. The use of filectx.changectx() allowed the previous code to use the 518c1403838f hack. This changeset may result in an incorrect behaviors, Navigation link may point to missing revision. However this bad navigation generation is much better than a plain crash
Mon, 14 Jan 2013 16:55:48 +0100 hgweb: introduction a filerevnav subclass
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 14 Jan 2013 16:55:48 +0100] rev 18408
hgweb: introduction a filerevnav subclass It'll be use to implement the file specific behavior.
Thu, 10 Jan 2013 19:09:32 +0100 hgweb: simplify addition of "(0) navigation entry"
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 10 Jan 2013 19:09:32 +0100] rev 18407
hgweb: simplify addition of "(0) navigation entry"
Mon, 14 Jan 2013 16:30:06 +0100 hgweb: simplify the handling of empty repo
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 14 Jan 2013 16:30:06 +0100] rev 18406
hgweb: simplify the handling of empty repo This abstraction have two advantages: - If the revlog is empty, None of the code bellow is relevant, early returns seems a win. - Abtraction of the 'emptiness' check will help later when we stop relying on nodefunc. A bonus, with filtering, a non-empty revlog may not have '0' revision accessible. It'll be easier to handle with the emptiness test in a dedicated function
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip