Wed, 10 Jan 2018 19:36:45 -0800 rust: add TODO about lifetime of program_name variable
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 10 Jan 2018 19:36:45 -0800] rev 35604
rust: add TODO about lifetime of program_name variable Per review comment in D1581. Differential Revision: https://phab.mercurial-scm.org/D1847
Wed, 10 Jan 2018 19:23:36 -0800 rust: move import of PathBuf
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 10 Jan 2018 19:23:36 -0800] rev 35603
rust: move import of PathBuf By moving it to the single function that uses it, we eliminate a #cfg. Differential Revision: https://phab.mercurial-scm.org/D1845
Wed, 10 Jan 2018 21:09:57 -0800 perf: do not import util.queue
Jun Wu <quark@fb.com> [Wed, 10 Jan 2018 21:09:57 -0800] rev 35602
perf: do not import util.queue This was added by af25237be091. But util.queue is not a module and is not importable. I guess it wasn't noticed because of demandimport. Differential Revision: https://phab.mercurial-scm.org/D1848
Wed, 10 Jan 2018 19:08:51 -0800 rust: move Cargo.lock
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 10 Jan 2018 19:08:51 -0800] rev 35601
rust: move Cargo.lock If you do a `cargo build` in rust/, Cargo will create rust/Cargo.lock. Furthermore, the previous rust/hgcli/Cargo.lock appears to not even be consulted because the auto-generated rust/Cargo.lock varied from rust/hgcli/Cargo.lock. This commit moves Cargo.lock to where Cargo expects it to be. While we're here, bump the version of libc to the latest available. Differential Revision: https://phab.mercurial-scm.org/D1844
Wed, 10 Jan 2018 19:04:52 -0800 run-tests: fix regular expression for path test
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 10 Jan 2018 19:04:52 -0800] rev 35600
run-tests: fix regular expression for path test The previous regexp would match the empty string. This fixes a mistake added in 964212780daf. Differential Revision: https://phab.mercurial-scm.org/D1843
Sun, 17 Dec 2017 04:31:27 +0100 perf: add threading capability to perfbdiff
Boris Feld <boris.feld@octobus.net> [Sun, 17 Dec 2017 04:31:27 +0100] rev 35599
perf: add threading capability to perfbdiff Since we are releasing the GIL during diffing, it is interesting to see how a thread pool would perform on diffing. We add a new `--threads` argument to commands. Synchronizing the thread pool is a bit complex because we want to be able to reuse it from one run to another. On my computer (i7 with 4 cores + hyperthreading), I get the following data for about 12000 revisions: threads wall comb wall gain comb overhead none 31.596715 31.59 0.00% 0.00% 1 31.621228 31.62 -0.08% 0.09% 2 16.406202 32.8 48.08% 3.83% 3 11.598334 34.76 63.29% 10.03% 4 9.205421 36.77 70.87% 16.40% 5 8.517604 42.51 73.04% 34.57% 6 7.94645 47.58 74.85% 50.62% 7 7.434972 51.92 76.47% 64.36% 8 7.070638 55.34 77.62% 75.18% Compared to the feature disabled (threads=0), the overhead is negligible with the threading code (threads=1), and the gain is already 48% with two threads.
Wed, 10 Jan 2018 17:24:25 +0100 upgraderepo: select correct deltareuse depending on actions
Paul Morelle <paul.morelle@octobus.net> [Wed, 10 Jan 2018 17:24:25 +0100] rev 35598
upgraderepo: select correct deltareuse depending on actions Only 'redeltafulladd' was taken into account because of a small typo.
Tue, 02 Jan 2018 18:35:11 +0900 revsetlang: add %p specifier to format list of function arguments
Yuya Nishihara <yuya@tcha.org> [Tue, 02 Jan 2018 18:35:11 +0900] rev 35597
revsetlang: add %p specifier to format list of function arguments This will be used to construct parameters passed to _matchfiles().
Tue, 02 Jan 2018 21:05:40 +0900 revsetlang: unnest inner functions from formatspec()
Yuya Nishihara <yuya@tcha.org> [Tue, 02 Jan 2018 21:05:40 +0900] rev 35596
revsetlang: unnest inner functions from formatspec()
Sat, 01 Apr 2017 17:51:56 +0900 revsetlang: fix quoting of %ls string
Yuya Nishihara <yuya@tcha.org> [Sat, 01 Apr 2017 17:51:56 +0900] rev 35595
revsetlang: fix quoting of %ls string Before, "'" wasn't escaped appropriately. This also changes the separator '\0' to '\\0', but that's okay as a string token is unescaped.
Sat, 01 Apr 2017 17:44:07 +0900 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org> [Sat, 01 Apr 2017 17:44:07 +0900] rev 35594
revsetlang: catch invalid value passed to formatspec() The scope of AttributeError is narrowed because it's more likely to be triggered by mistake.
Sat, 01 Apr 2017 17:28:28 +0900 revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org> [Sat, 01 Apr 2017 17:28:28 +0900] rev 35593
revsetlang: check incomplete revspec format character
Sat, 01 Apr 2017 17:25:45 +0900 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org> [Sat, 01 Apr 2017 17:25:45 +0900] rev 35592
revsetlang: check number of arguments passed to formatspec()
Sat, 01 Apr 2017 17:18:31 +0900 revsetlang: catch invalid format character with %l prefix
Yuya Nishihara <yuya@tcha.org> [Sat, 01 Apr 2017 17:18:31 +0900] rev 35591
revsetlang: catch invalid format character with %l prefix listexp() could call argtype() with an invalid format character, but that wasn't checked before.
Fri, 29 Dec 2017 06:32:17 +0530 py3: add 8 new passing tests to the whitelist
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 06:32:17 +0530] rev 35590
py3: add 8 new passing tests to the whitelist Differential Revision: https://phab.mercurial-scm.org/D1800
Fri, 29 Dec 2017 05:33:36 +0530 py3: use list() to get a list of items using dict.items()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:33:36 +0530] rev 35589
py3: use list() to get a list of items using dict.items() dict.items() on Python 3 returns a generator over the values of the dictionary, hence we can't delete elements while iterating over dict.items() in Python 3. Differential Revision: https://phab.mercurial-scm.org/D1799
Fri, 29 Dec 2017 05:31:27 +0530 py3: convert dict keys' to str before passing as kwargs
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:31:27 +0530] rev 35588
py3: convert dict keys' to str before passing as kwargs We have pycompat.strkwargs() which converts the keys of a dict to str and returns that. Differential Revision: https://phab.mercurial-scm.org/D1798
Fri, 29 Dec 2017 05:29:57 +0530 py3: make sure we open the file to write in bytes mode
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:29:57 +0530] rev 35587
py3: make sure we open the file to write in bytes mode Differential Revision: https://phab.mercurial-scm.org/D1797
Fri, 29 Dec 2017 05:47:17 +0530 py3: don't use dict.iterkeys()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:47:17 +0530] rev 35586
py3: don't use dict.iterkeys() Instead of iterating of dict.iterkeys(), let's iterate of dict as that will be equivalent and dict.iterkeys() is not present in Python 3. Differential Revision: https://phab.mercurial-scm.org/D1796
Fri, 29 Dec 2017 05:29:04 +0530 py3: use pycompat.bytestr() instead of str()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:29:04 +0530] rev 35585
py3: use pycompat.bytestr() instead of str() Differential Revision: https://phab.mercurial-scm.org/D1795
Fri, 29 Dec 2017 05:28:05 +0530 py3: make regular expressions bytes by prepending b''
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:28:05 +0530] rev 35584
py3: make regular expressions bytes by prepending b'' Regexes start with r'' and hence transformer skips adding b'' there. # skip-blame because we are just adding b'' Differential Revision: https://phab.mercurial-scm.org/D1794
Fri, 29 Dec 2017 05:27:00 +0530 py3: slice on bytes instead of indexing
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:27:00 +0530] rev 35583
py3: slice on bytes instead of indexing Indexing returns the ascii value on Python 3. Differential Revision: https://phab.mercurial-scm.org/D1793
Fri, 29 Dec 2017 05:25:27 +0530 py3: use node.hex(h.digest()) instead of h.hexdigest()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:25:27 +0530] rev 35582
py3: use node.hex(h.digest()) instead of h.hexdigest() hashlib.sha1.hexdigest() returns str on Python 3. Differential Revision: https://phab.mercurial-scm.org/D1792
Fri, 29 Dec 2017 05:22:06 +0530 tests: make autodiff.py work on Python 3
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:22:06 +0530] rev 35581
tests: make autodiff.py work on Python 3 This patch adds b'' to string literal to make it compatible with in-core Python 3 compatibility. # skip-blame because we are just adding b'' Differential Revision: https://phab.mercurial-scm.org/D1791
Fri, 29 Dec 2017 03:32:04 +0530 py3: use pycompat.ziplist instead of inbuilt zip
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 03:32:04 +0530] rev 35580
py3: use pycompat.ziplist instead of inbuilt zip zip just like map on Python 3 returns a generator object instead of list. This results in error if we try to iterate over the result once we consume it. We have added pycompat.ziplist which returns a list. Differential Revision: https://phab.mercurial-scm.org/D1790
Fri, 29 Dec 2017 05:35:57 +0530 py3: use bytes and open() instead of file() in test-diff-upgrade.t
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 29 Dec 2017 05:35:57 +0530] rev 35579
py3: use bytes and open() instead of file() in test-diff-upgrade.t file() is not present in Python 3. Differential Revision: https://phab.mercurial-scm.org/D1789
Wed, 10 Jan 2018 11:02:20 -0800 exchange: use context manager for locks and transaction in unbundle()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Jan 2018 11:02:20 -0800] rev 35578
exchange: use context manager for locks and transaction in unbundle() Note that the transactionmanager doesn't actually create a transaction -- that is done the first time .transaction() is called on it (if at all). Consequently, .close() and .release() won't do anything if no transaction has been created. This makes it a little unusual, but it still works as a context manager. Differential Revision: https://phab.mercurial-scm.org/D1841
Wed, 10 Jan 2018 10:49:12 -0800 bookmarks: use context managers for locks and transaction in pushbookmark()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Jan 2018 10:49:12 -0800] rev 35577
bookmarks: use context managers for locks and transaction in pushbookmark() Differential Revision: https://phab.mercurial-scm.org/D1840
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip