Mon, 19 Dec 2016 04:31:13 +0100 changegroup: simplify 'allsupportedversions' logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 19 Dec 2016 04:31:13 +0100] rev 30631
changegroup: simplify 'allsupportedversions' logic Discarding '03' to add it back is a bit strange. Instead we only discard it when needed.
Sun, 18 Dec 2016 01:17:12 +0530 py3: replace os.altsep with pycompat.altsep
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Dec 2016 01:17:12 +0530] rev 30630
py3: replace os.altsep with pycompat.altsep All the occurences of os.altsep are replaced with pycompat.altsep which returns bytes.
Sun, 18 Dec 2016 00:52:05 +0530 py3: have a bytes version of sys.platform
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Dec 2016 00:52:05 +0530] rev 30629
py3: have a bytes version of sys.platform sys.platform returns unicodes on Python 3. This patch adds up pycompat.sysplatform which returns bytes.
Sun, 18 Dec 2016 00:44:21 +0530 py3: have a bytes version of os.altsep
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Dec 2016 00:44:21 +0530] rev 30628
py3: have a bytes version of os.altsep os.altsep returns unicodes on Python 3. We need a bytes version hence added pycompat.altsep.
Sat, 17 Dec 2016 23:55:25 +0530 py3: make sure encoding.encoding is a bytes variable
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 23:55:25 +0530] rev 30627
py3: make sure encoding.encoding is a bytes variable encoding.encoding returns unicodes when locale.getpreferredencoding() is used to get the preferred encoding. This patch fixes that.
Mon, 19 Dec 2016 22:15:00 +0000 chg: remove locks
Jun Wu <quark@fb.com> [Mon, 19 Dec 2016 22:15:00 +0000] rev 30626
chg: remove locks See the previous two patches for the reason. The advantage is a simplified code base and better throughput when starting multiple servers with multiple confighashes. The disadvantage is starting multiple servers in parallel with a single confighash will waste some CPU time, which is probably fine in common use-cases. This makes it easier to switch to relative paths to support long unix domain socket paths.
Mon, 19 Dec 2016 22:09:49 +0000 chg: start server at a unique address
Jun Wu <quark@fb.com> [Mon, 19 Dec 2016 22:09:49 +0000] rev 30625
chg: start server at a unique address See the previous patch for motivation. Previously, the server is started at a globally shared address. This patch appends pid to the address so it becomes unique. Note: with Linux pid namespace, the address may be non-unique, but it does not affect correctness of chg - chg client will receive an redirection and that's it.
Mon, 19 Dec 2016 22:07:41 +0000 chgserver: truncate base address at "." for hash address
Jun Wu <quark@fb.com> [Mon, 19 Dec 2016 22:07:41 +0000] rev 30624
chgserver: truncate base address at "." for hash address Previously, the hash address is just appending "-$HASH" to base address. This patch makes it truncate the basename address at "." before appending "-$HASH". This makes it possible to spawn new servers in a racy situation and the client could be sure the server it connects is the new server just spawned. This is a step towards removing the lock. One of the functionalities of the lock is to make sure the connect will connect to a server it just created: 1. start server --address foo 2. connect to foo # wish "foo" is the server just started With this change, the client could do: 1. start server --address foo.tmp$PID 2. connect to foo.tmp$PID # is the server just started (note: if it is not, it does not affect correctness - linux pid namespace is not a concern here) 3. rename foo.tmp$PID to foo Another functionality of the lock is to avoid starting multiple servers with a same confighash in parallel. But that also prevents starting multiple servers with different confighashes in parallel.
Sun, 23 Oct 2016 17:47:00 +0900 ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Oct 2016 17:47:00 +0900] rev 30623
ui: do not translate empty configsource() to 'none' (API) It should be processed when displaying data, so we can get "source": "" in JSON output.
Sun, 18 Dec 2016 16:20:04 +0900 convert: remove unused-but-set variable introduced in db9e883566e8
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Dec 2016 16:20:04 +0900] rev 30622
convert: remove unused-but-set variable introduced in db9e883566e8 Spotted by pyflakes.
Sat, 17 Dec 2016 20:24:46 +0530 py3: replace os.sep with pycompat.ossep (part 4 of 4)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 20:24:46 +0530] rev 30621
py3: replace os.sep with pycompat.ossep (part 4 of 4)
Sat, 17 Dec 2016 20:14:24 +0530 py3: replace os.sep with pycompat.ossep (part 3 of 4)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 20:14:24 +0530] rev 30620
py3: replace os.sep with pycompat.ossep (part 3 of 4)
Sat, 17 Dec 2016 20:02:50 +0530 py3: replace os.sep with pycompat.ossep (part 2 of 4)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 20:02:50 +0530] rev 30619
py3: replace os.sep with pycompat.ossep (part 2 of 4) This part also replaces some chunks of os.sep with pycompat.ossep.
Sat, 17 Dec 2016 19:56:30 +0530 py3: replace os.sep with pycompat.ossep (part 1 of 4)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 19:56:30 +0530] rev 30618
py3: replace os.sep with pycompat.ossep (part 1 of 4) os.sep returns unicodes on Python 3. We have pycompat.ossep which returns bytes. This patch is a part of 4 patch series which will replace all the occurrences of os.sep to pycompat.ossep
Sat, 17 Dec 2016 19:47:17 +0530 py3: replace os.pathsep with pycompat.ospathsep
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 19:47:17 +0530] rev 30617
py3: replace os.pathsep with pycompat.ospathsep os.pathsep returns unicode on Python 3. We already have pycompat.ospathsep which return bytes on Python 3. This patch replaces all the occurrences of os.pathsep in the codebase (excluding tests) to pycompat.ospathsep.
Sat, 17 Dec 2016 19:36:40 +0530 py3: use %d instead of %s for integers
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 17 Dec 2016 19:36:40 +0530] rev 30616
py3: use %d instead of %s for integers Python 3 returns an error if we use %s as type specifiers for integers.
Fri, 16 Dec 2016 09:48:14 -0800 help: make multirevs just an alias for revsets
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Dec 2016 09:48:14 -0800] rev 30615
help: make multirevs just an alias for revsets The multirevs topis seems to be covered well by the revsets topic, so just make it an alias and remove multirevs.txt.
Fri, 16 Dec 2016 21:02:39 +0000 context: correct metadataonlyctx's parameter
Jun Wu <quark@fb.com> [Fri, 16 Dec 2016 21:02:39 +0000] rev 30614
context: correct metadataonlyctx's parameter It's "originalctx", not "path" as Yuya pointed in [1]. [1]: www.mercurial-scm.org/pipermail/mercurial-devel/2016-December/091508.html
Mon, 12 Dec 2016 13:32:45 +0100 registrar: raise a programming error on duplicated registering
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 12 Dec 2016 13:32:45 +0100] rev 30613
registrar: raise a programming error on duplicated registering Previous, registering different object with the same name would silently overwrite the first value with the second one. We now detect the situation and raise an error. No extension in test or core had the issues.
Sun, 16 Oct 2016 17:01:41 +0900 py3kcompat: drop unused module
Yuya Nishihara <yuya@tcha.org> [Sun, 16 Oct 2016 17:01:41 +0900] rev 30612
py3kcompat: drop unused module Perhaps this was a predated attempt of Python 3 porting. Python 3.5 supports %-formatting of bytes.
Sun, 16 Oct 2016 16:59:50 +0900 strutil: drop module which no longer be used
Yuya Nishihara <yuya@tcha.org> [Sun, 16 Oct 2016 16:59:50 +0900] rev 30611
strutil: drop module which no longer be used
Sun, 16 Oct 2016 16:58:43 +0900 convert: inline strutil.rfindall()
Yuya Nishihara <yuya@tcha.org> [Sun, 16 Oct 2016 16:58:43 +0900] rev 30610
convert: inline strutil.rfindall() This is the only place where strutil is used. I don't think it's worth to keep the strutil module, so inline it. Also, strutil.rfindall() appears to have off-by-one error. 'end = c - 1' is wrong because 'end' is exclusive.
Wed, 14 Dec 2016 12:07:23 -0800 convert: return commit objects for revisions in the revmap
David Soria Parra <davidsp@fb.com> [Wed, 14 Dec 2016 12:07:23 -0800] rev 30609
convert: return commit objects for revisions in the revmap Source revision data that exists in the revmap are ignored when pulling data from Perforce as we consider them already imported. In case where the `convertcmd.convert` algorithm requests a commit object for such a revision we are creating it. This is usually the case for parent of the first imported revision.
Tue, 13 Dec 2016 21:49:58 -0800 convert: encapsulate commit data fetching and commit object creation
David Soria Parra <davidsp@fb.com> [Tue, 13 Dec 2016 21:49:58 -0800] rev 30608
convert: encapsulate commit data fetching and commit object creation Split fetching the `describe` form from Perforce and the commit object creation into two functions. This allows us to reuse the commit construction for revisions passed from a revmap.
Tue, 13 Dec 2016 21:49:58 -0800 convert: do not provide head revisions if we have no changests to import
David Soria Parra <davidsp@fb.com> [Tue, 13 Dec 2016 21:49:58 -0800] rev 30607
convert: do not provide head revisions if we have no changests to import Don't set a head revision in cases where we have a revmap but no changesets to import, as convertcmd.convert() treats them as heads of to-imported revisions.
Wed, 14 Dec 2016 01:45:57 -0800 convert: allow passing in a revmap
David Soria Parra <davidsp@fb.com> [Wed, 14 Dec 2016 01:45:57 -0800] rev 30606
convert: allow passing in a revmap Implement `common.setrevmap` which is used to pass in a file with existing revision mappings. This functionality is used by `convertcmd.convert` if it exists and allows implementors such as the p4 converter to make use of an existing mapping. We are using the revmap to abort scanning and the repository for more information if we already have the revision. This means we are allowing incremental imports in cases where a revmap is provided.
Tue, 13 Dec 2016 21:49:58 -0800 convert: use convert_revision for P4 imports
David Soria Parra <davidsp@fb.com> [Tue, 13 Dec 2016 21:49:58 -0800] rev 30605
convert: use convert_revision for P4 imports We are using convert_revisions in other importers. In order to unify this we are also using convert_revision for Perforce in addition to the original 'p4'.
Wed, 14 Dec 2016 01:45:17 -0800 convert: remove unused dictionaries
David Soria Parra <davidsp@fb.com> [Wed, 14 Dec 2016 01:45:17 -0800] rev 30604
convert: remove unused dictionaries self.parent, self.lastbranch and self.tags have never been used.
Wed, 14 Dec 2016 01:43:47 -0800 convert: self.heads is a list
David Soria Parra <davidsp@fb.com> [Wed, 14 Dec 2016 01:43:47 -0800] rev 30603
convert: self.heads is a list self.heads is used as a list throughout convert and never a dictionary. Initialize it correctly to a list.
Tue, 13 Dec 2016 21:49:58 -0800 convert: don't use long list comprehensions
David Soria Parra <davidsp@fb.com> [Tue, 13 Dec 2016 21:49:58 -0800] rev 30602
convert: don't use long list comprehensions We are iterating over p4changes. Make the continue condition more clear and easier to add new conditions in future patches, by removing the list comprehension and move the condition into the existing for-loop.
Thu, 15 Dec 2016 11:00:18 -0800 changelog: keep track of file end in appender (issue5444)
Durham Goode <durham@fb.com> [Thu, 15 Dec 2016 11:00:18 -0800] rev 30601
changelog: keep track of file end in appender (issue5444) Previously, changelog.appender.end() would compute the end of the file by joining all the current appended data and checking the length. This is an O(n) operation. e240e914d226 introduced a seek call before every revlog write, which means we are hitting this O(n) behavior n times, which causes changelog writes during a pull to be n^2. In our large repo, this caused pulling 100k commits to go from 17s to 130s. With this fix, it's back to 17s.
Thu, 15 Dec 2016 11:14:00 -0500 tests: fix test-bdiff to handle variance between pure and c bdiff code
Augie Fackler <augie@google.com> [Thu, 15 Dec 2016 11:14:00 -0500] rev 30600
tests: fix test-bdiff to handle variance between pure and c bdiff code Obviously we'd rather patch pure to have the same algorithmic win as the C code, but this is a quick fix for the pure build since pure isn't wrong, just not as fast as it could be.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 tip