Fri, 14 Nov 2014 19:40:30 -0800 ancestor: add a way to remove ancestors of bases from a given set
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 19:40:30 -0800] rev 23342
ancestor: add a way to remove ancestors of bases from a given set This and missingancestors can share state, which will turn out to be perfect for set discovery.
Fri, 14 Nov 2014 17:21:00 -0800 ancestor: add a way to add to bases of a missing ancestor object
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 17:21:00 -0800] rev 23341
ancestor: add a way to add to bases of a missing ancestor object This will be useful for setdiscovery, since with that we incrementally add to our knowledge of common nodes.
Sun, 16 Nov 2014 00:39:29 -0800 ancestor: add a way to test whether a missing ancestor object has bases
Siddharth Agarwal <sid0@fb.com> [Sun, 16 Nov 2014 00:39:29 -0800] rev 23340
ancestor: add a way to test whether a missing ancestor object has bases This is pretty trivial so there's no unit test coverage for it. This will be used by setdiscovery.
Fri, 14 Nov 2014 16:53:40 -0800 ancestor: remove now-unused missingancestors function
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 16:53:40 -0800] rev 23339
ancestor: remove now-unused missingancestors function Callers should use revlog.incrementalmissingrevs instead.
Fri, 14 Nov 2014 16:52:40 -0800 revlog: switch findmissing* methods to incrementalmissingrevs
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 16:52:40 -0800] rev 23338
revlog: switch findmissing* methods to incrementalmissingrevs This will allow us to remove ancestor.missingancestors in an upcoming patch.
Sun, 16 Nov 2014 00:39:48 -0800 revlog: add a method to get missing revs incrementally
Siddharth Agarwal <sid0@fb.com> [Sun, 16 Nov 2014 00:39:48 -0800] rev 23337
revlog: add a method to get missing revs incrementally This will turn out to be useful for discovery.
Sat, 15 Nov 2014 19:26:20 -0800 test-ancestor: add support for multiple tests against one incremental object
Siddharth Agarwal <sid0@fb.com> [Sat, 15 Nov 2014 19:26:20 -0800] rev 23336
test-ancestor: add support for multiple tests against one incremental object In upcoming patches we'll add more operations to the object, and this prepares for testing those operations.
Fri, 14 Nov 2014 23:50:01 -0800 test-ancestor: move naive missing ancestor algorithm into a class
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 23:50:01 -0800] rev 23335
test-ancestor: move naive missing ancestor algorithm into a class This mirrors the change to the real missing ancestor algorithm in a previous patch.
Fri, 14 Nov 2014 23:44:38 -0800 ancestor.missingancestors: turn into a state-keeping class
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 23:44:38 -0800] rev 23334
ancestor.missingancestors: turn into a state-keeping class This allows multiple efficient missing ancestor queries against the same set of bases. In upcoming patches we'll also define ways to grow the set of bases. The fact that the test output hasn't changed establishes this patch's correctness.
Fri, 14 Nov 2014 13:47:25 -0800 ancestor.missingancestors: calculate start point after filtering revsvisit
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 13:47:25 -0800] rev 23333
ancestor.missingancestors: calculate start point after filtering revsvisit Any revs that are filtered out are also in basesvisit, which means they wouldn't be returned in the missing list anyway. There's no need to explore such revs or their ancestors. The 'if not revsvisit' check moves down because we can't call max() on an empty set.
Fri, 14 Nov 2014 11:33:52 -0800 ancestor.missingancestors: don't discard from basesvisit
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 11:33:52 -0800] rev 23332
ancestor.missingancestors: don't discard from basesvisit We only actually care about whether revsvisit is empty, so we can let basesvisit grow to arbitrary size. It turns out that this actually helps performance. For a large repo with hundreds of thousands of commits, hg perfrevset 'only(0, tip)' (basically the worst case, involving a full DAG traversal) goes from 1.63 seconds to 1.50. hg perfrevset 'only(tip, 0)' remains unchanged at 1.98 seconds.
Sat, 15 Nov 2014 10:55:34 -0800 test-ancestor: use random testing for missing ancestors
Siddharth Agarwal <sid0@fb.com> [Sat, 15 Nov 2014 10:55:34 -0800] rev 23331
test-ancestor: use random testing for missing ancestors We're going to make changes to the missing ancestor algorithm, and random testing will give us much more confidence than a fixed set of tests.
Sat, 15 Nov 2014 18:52:44 -0800 test-ancestor: define a main function
Siddharth Agarwal <sid0@fb.com> [Sat, 15 Nov 2014 18:52:44 -0800] rev 23330
test-ancestor: define a main function We're going to add to it in upcoming patches.
Fri, 14 Nov 2014 14:50:03 -0800 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 14:50:03 -0800] rev 23329
test-ancestor: test iteration for lazyancestors This has some test coverage in test-revlog-ancestry.py, but not very much.
Fri, 14 Nov 2014 14:36:25 -0800 ancestor.lazyancestors: take parentrevs function rather than changelog
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 14:36:25 -0800] rev 23328
ancestor.lazyancestors: take parentrevs function rather than changelog Principle of least privilege, and it also brings this in line with missingancestors.
Sun, 16 Nov 2014 00:24:23 -0500 remove: avoid a bogus warning about no tracked files when removing '.'
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Nov 2014 00:24:23 -0500] rev 23327
remove: avoid a bogus warning about no tracked files when removing '.' Previously, any files relative to the root of the repo that match the -I patterns would be deleted, but the command exited with 1 after printing a warning: $ hg remove -S -I 're:.*.txt' . removing sub1/sub2/folder/test.txt removing sub1/sub2/test.txt not removing .: no tracked files
Wed, 12 Nov 2014 23:15:20 -0500 remove: support remove with explicit paths in subrepos
Matt Harbison <matt_harbison@yahoo.com> [Wed, 12 Nov 2014 23:15:20 -0500] rev 23326
remove: support remove with explicit paths in subrepos
Sat, 15 Nov 2014 21:36:19 -0500 remove: recurse into subrepositories with --subrepos/-S flag
Matt Harbison <matt_harbison@yahoo.com> [Sat, 15 Nov 2014 21:36:19 -0500] rev 23325
remove: recurse into subrepositories with --subrepos/-S flag Like 'forget', git and svn subrepos are currently not supported. Unfortunately the name 'remove' is already used in the subrepo classes, so we break the convention of naming the subrepo function after the command.
Sat, 15 Nov 2014 13:50:43 +0900 cmdserver: protect pipe server streams against corruption caused by direct io
Yuya Nishihara <yuya@tcha.org> [Sat, 15 Nov 2014 13:50:43 +0900] rev 23324
cmdserver: protect pipe server streams against corruption caused by direct io Because pipe-mode server uses stdio as IPC channel, other modules should not touch stdio directly and use ui instead. However, this strategy is brittle because several Python functions read and write stdio implicitly. print 'hello' # should use ui.write() # => ch = 'h', size = 1701604463 'ello', data = '\n' This patch adds protection for such mistakes. Both stdio files and low-level file descriptors are redirected to /dev/null while command server uses them.
Sat, 15 Nov 2014 13:04:41 +0900 cmdserver: postpone creation of pipe server until run()
Yuya Nishihara <yuya@tcha.org> [Sat, 15 Nov 2014 13:04:41 +0900] rev 23323
cmdserver: postpone creation of pipe server until run() This makes it easy to swap file descriptors while running command server.
Sat, 15 Nov 2014 12:43:35 +0900 cmdserver: use given streams as pipe channels like other commands
Yuya Nishihara <yuya@tcha.org> [Sat, 15 Nov 2014 12:43:35 +0900] rev 23322
cmdserver: use given streams as pipe channels like other commands Because commandserver itself is an hg subcommand, it shouldn't use stdio directly in principle.
Fri, 14 Nov 2014 16:38:58 -0800 revset.only: use cl.findmissingrevs
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 16:38:58 -0800] rev 23321
revset.only: use cl.findmissingrevs ancestor.missingancestors is really an implementation detail.
Fri, 14 Nov 2014 09:33:28 -0800 manifestmerge: use already existing fl2 synonym for m2.flags(f)
Martin von Zweigbergk <martinvonz@google.com> [Fri, 14 Nov 2014 09:33:28 -0800] rev 23320
manifestmerge: use already existing fl2 synonym for m2.flags(f) Probably not a noticeable performance gain, but shortens the code slightly.
Thu, 13 Nov 2014 23:12:15 -0800 merge: drop underscore prefix from _checkunknown()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 13 Nov 2014 23:12:15 -0800] rev 23319
merge: drop underscore prefix from _checkunknown() The method has been called from commands.py since 3eab42088be4 (update: just merge unknown file collisions, 2012-02-09), so drop the underscore prefix that suggests that it's private.
Wed, 12 Nov 2014 14:47:48 +0000 transaction: drop special handling for phases and bookmarks generation
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Nov 2014 14:47:48 +0000] rev 23318
transaction: drop special handling for phases and bookmarks generation We are still doing double backups, but now that we have proper location handling this is less of an issue. Dropping this simplifies the code before we add some pending-related logic. This also ensures we actually test the new 'location' mechanism.
Fri, 17 Oct 2014 20:53:42 -0700 transaction: use 'location' instead of 'vfs' objects for file generation
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 17 Oct 2014 20:53:42 -0700] rev 23317
transaction: use 'location' instead of 'vfs' objects for file generation The argument is now a location name. The location must be present in the 'vfsmap' provided to the transaction at creation time.
Wed, 05 Nov 2014 01:59:32 +0000 transaction: use 'location' instead of 'vfs' in the addbackup method
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Nov 2014 01:59:32 +0000] rev 23316
transaction: use 'location' instead of 'vfs' in the addbackup method This unlock the backup of file outside of store (eg: bookmarks).
Fri, 14 Nov 2014 00:14:23 +0000 addbackup: handle file in subdirectory
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 14 Nov 2014 00:14:23 +0000] rev 23315
addbackup: handle file in subdirectory The current naming scheme ('journal.backups.<file>') resulted is bad directory name when 'file' was in a subdirectory. We now extract the directory name and create the backupfile within it. We plan to use file in a subdirectory for cachefile.
Fri, 14 Nov 2014 14:54:55 +0000 addbackup: use the vfs for the backup destination too
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 14 Nov 2014 14:54:55 +0000] rev 23314
addbackup: use the vfs for the backup destination too The backup file location was always computed using the opener, bypassing the 'location' setting. (And making the feature broken.)
Thu, 13 Nov 2014 11:17:36 +0000 transaction: set backupentries version to proper value
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 13 Nov 2014 11:17:36 +0000] rev 23313
transaction: set backupentries version to proper value Now that all mechanisms are in place, we can advertise it with a proper new version.
Thu, 13 Nov 2014 11:17:09 +0000 transaction: support cache file in backupentries
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 13 Nov 2014 11:17:09 +0000] rev 23312
transaction: support cache file in backupentries We do not want to abort if anything wrong happen while handling a cache file. Cache file have way to be invalidated and if old/bad version stay no misbehavior will happen. Proper value will eventually be computed and the wrong will be righten. This changeset use the transaction reporter (usually writing on stderr) to write details about failed cache handling. This will only apply to write operation using a transaction. The usual update during read only operation will stay a debug message. I was on the way to bring these message back to debug level when I realised it could be a feature. People with write access to the repository are likely to have the power to fix error related to cache (and it is valuable to fix them). So let the things as is for now.
Fri, 17 Oct 2014 21:04:35 -0700 transaction: use the location value when doing backup
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 17 Oct 2014 21:04:35 -0700] rev 23311
transaction: use the location value when doing backup We finally use the 'location' value coupled with the 'vfsmap' to restore backup for the right file.
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 tip