Mon, 12 Feb 2018 16:15:34 -0800 hg: move share._getsrcrepo into core
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 16:15:34 -0800] rev 36197
hg: move share._getsrcrepo into core The fact we were calling this from extensions was a sign that it should live in core. We were also able to remove some extra attribute aliases from the share extension. Differential Revision: https://phab.mercurial-scm.org/D2200
Mon, 12 Feb 2018 15:49:15 -0800 tests: glob over line number
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 15:49:15 -0800] rev 36196
tests: glob over line number Differential Revision: https://phab.mercurial-scm.org/D2199
Mon, 12 Feb 2018 15:39:47 -0800 tests: remove references to bundle2-exp config option
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 15:39:47 -0800] rev 36195
tests: remove references to bundle2-exp config option This option was deleted a while ago. We don't even alias it in core. Differential Revision: https://phab.mercurial-scm.org/D2198
Tue, 13 Feb 2018 11:12:36 -0500 py3: whitelist another six passing tests
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 11:12:36 -0500] rev 36194
py3: whitelist another six passing tests Differential Revision: https://phab.mercurial-scm.org/D2230
Tue, 13 Feb 2018 10:54:58 -0500 narrowrepo: filter() is a generator on py3, wrap in list()
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 10:54:58 -0500] rev 36193
narrowrepo: filter() is a generator on py3, wrap in list() Was at the top of Python 3 exceptions. Differential Revision: https://phab.mercurial-scm.org/D2229
Tue, 13 Feb 2018 10:39:31 -0500 narrowcommands: use pycompat.{bytes,str}kwargs
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 10:39:31 -0500] rev 36192
narrowcommands: use pycompat.{bytes,str}kwargs Differential Revision: https://phab.mercurial-scm.org/D2228
Tue, 13 Feb 2018 10:38:02 -0500 debugcommands: mergestate version is an int, use %d on it
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 10:38:02 -0500] rev 36191
debugcommands: mergestate version is an int, use %d on it Differential Revision: https://phab.mercurial-scm.org/D2227
Tue, 13 Feb 2018 10:20:57 -0500 progress: use %d to format ints instead of %s
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 10:20:57 -0500] rev 36190
progress: use %d to format ints instead of %s Due to behavioral changes between '% Ns' and '% Nd' this has some unfortunate extra dancing. I'm not sure of a better way to solve this problem. Differential Revision: https://phab.mercurial-scm.org/D2226
Tue, 13 Feb 2018 08:43:14 -0500 progress: determine padding width portably
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 08:43:14 -0500] rev 36189
progress: determine padding width portably Differential Revision: https://phab.mercurial-scm.org/D2225
Tue, 13 Feb 2018 08:41:42 -0500 branchmap: wrap builtin exception in bytes for logging
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 08:41:42 -0500] rev 36188
branchmap: wrap builtin exception in bytes for logging Differential Revision: https://phab.mercurial-scm.org/D2224
Sat, 23 Dec 2017 15:11:13 +0530 remotenames: add three new revsets related to remotenames
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 23 Dec 2017 15:11:13 +0530] rev 36187
remotenames: add three new revsets related to remotenames This patch adds three new revsets 'remotenames', 'remotebookmarks' and 'remotebranches' which will return changesets which have remotenames, remotebookmarks and remotebranches on them respectively. The remotenames revset exist in hgremotenames extension and is moved from there whereas rest of the two revsets are introduced in this patch. hgremotenames: https://bitbucket.org/seanfarley/hgremotenames Differential Revision: https://phab.mercurial-scm.org/D2002
Tue, 13 Feb 2018 21:52:51 +0900 convert: fix line ending of mapfile and commit.desc file
Yuya Nishihara <yuya@tcha.org> [Tue, 13 Feb 2018 21:52:51 +0900] rev 36186
convert: fix line ending of mapfile and commit.desc file Follows up 42a393ea56d2. CRLF vs LF doesn't really matter as we do strip() or rstrip() on read, but mixing them isn't nice. So let's restore the old behavior. I don't know whether CVS/Root, CVS/Repository, and ~/.cvspass are written in native line ending, so I leave them read as binary files.
Sun, 11 Feb 2018 18:34:22 -0800 py3: port string formatting
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 18:34:22 -0800] rev 36185
py3: port string formatting `skipped` is a set of integer revs here. So cast integers to strings using %d. None doesn't cast to an empty string on Python 3. So use '' explicitly. Differential Revision: https://phab.mercurial-scm.org/D2146
Thu, 25 Jan 2018 21:16:28 -0500 bdiff: write a native version of splitnewlines
Augie Fackler <augie@google.com> [Thu, 25 Jan 2018 21:16:28 -0500] rev 36184
bdiff: write a native version of splitnewlines ./hg perfunidiff mercurial/manifest.py 0 --count 500 --profile before: ! wall 0.309280 comb 0.350000 user 0.290000 sys 0.060000 (best of 32) ./hg perfunidiff mercurial/manifest.py 0 --count 500 --profile after: ! wall 0.241572 comb 0.260000 user 0.240000 sys 0.020000 (best of 39) so it's about 20% faster. I hate Python. I wish we could usefully write this in Rust, but it doesn't look like that's realistic without using the cpython crate, which I'd still like to avoid. Differential Revision: https://phab.mercurial-scm.org/D1973
Mon, 12 Feb 2018 16:09:31 +0100 label: enforce the lack of leading or trailing white space
Boris Feld <boris.feld@octobus.net> [Mon, 12 Feb 2018 16:09:31 +0100] rev 36183
label: enforce the lack of leading or trailing white space In practice, all commands create label are currently striping external white space. Let us enforce this logic at a lower level before starting to rely on it elsewhere.
Tue, 13 Feb 2018 00:05:45 +0100 buildrpm: bump bundled docutils version to 0.14 when building for centos{5,6}
Antonio Muci <a.mux@inwind.it> [Tue, 13 Feb 2018 00:05:45 +0100] rev 36182
buildrpm: bump bundled docutils version to 0.14 when building for centos{5,6} when building rpm packages for centos 5 and 6, we bundle a mercurial-specific version of docutils in /opt/python-hg/lib/python2.7/site-packages/docutils Let's bump the embedded docutils version from 0.12 (released in 2014) to 0.14 (latest as of today)
Mon, 12 Feb 2018 23:59:36 +0100 buildrpm: bump bundled python version to 2.7.14 when building for centos{5,6}
Antonio Muci <a.mux@inwind.it> [Mon, 12 Feb 2018 23:59:36 +0100] rev 36181
buildrpm: bump bundled python version to 2.7.14 when building for centos{5,6} when building rpm packages for centos 5 and 6, we bundle a mercurial-specific version of python 2.7 in /opt/python-hg Let's bump the embedded python version from 2.7.10 (released in 2015) to 2.7.14 (latest as of today)
Sun, 11 Feb 2018 13:25:56 -0500 merge: invoke scmutil.fileprefetchhooks() prior to applying updates
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 13:25:56 -0500] rev 36180
merge: invoke scmutil.fileprefetchhooks() prior to applying updates This moves the file list calculation into core, so other extensions don't need to duplicate it.
Sun, 11 Feb 2018 00:40:27 -0500 revert: drop the remnant of the prefetchfiles hook
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 00:40:27 -0500] rev 36179
revert: drop the remnant of the prefetchfiles hook
Sun, 11 Feb 2018 00:51:22 -0500 cat: migrate to the fileprefetch callback mechanism
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 00:51:22 -0500] rev 36178
cat: migrate to the fileprefetch callback mechanism
Sun, 11 Feb 2018 00:49:43 -0500 archive: migrate to the fileprefetch callback mechanism
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 00:49:43 -0500] rev 36177
archive: migrate to the fileprefetch callback mechanism
Sun, 11 Feb 2018 00:30:15 -0500 lfs: migrate to the fileprefetch callback mechanism
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 00:30:15 -0500] rev 36176
lfs: migrate to the fileprefetch callback mechanism
Sun, 11 Feb 2018 00:23:57 -0500 cmdutil: convert the prefetchfiles() hook to a callback mechanism (API)
Matt Harbison <matt_harbison@yahoo.com> [Sun, 11 Feb 2018 00:23:57 -0500] rev 36175
cmdutil: convert the prefetchfiles() hook to a callback mechanism (API) Yuya suggested a list of callbacks instead of function wrapping. This means that one extension can't block another from processing the list. .. api:: File prefetching is now handled by registering a callback with scmutil.fileprefetchhooks.
Tue, 13 Feb 2018 00:54:36 -0500 test-narrow: partially stabilize on Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 13 Feb 2018 00:54:36 -0500] rev 36174
test-narrow: partially stabilize on Windows test-narrow-strip.t is still broken. I don't see any feature condititionals, so it might be an actual problem.
Tue, 13 Feb 2018 00:06:22 -0500 py3: whitelist test-convert-clonebranches.t
Augie Fackler <augie@google.com> [Tue, 13 Feb 2018 00:06:22 -0500] rev 36173
py3: whitelist test-convert-clonebranches.t Differential Revision: https://phab.mercurial-scm.org/D2223
Mon, 12 Feb 2018 23:51:37 -0500 convert: make hg sha1 regex consistently be a bytes
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 23:51:37 -0500] rev 36172
convert: make hg sha1 regex consistently be a bytes Differential Revision: https://phab.mercurial-scm.org/D2222
Mon, 12 Feb 2018 23:51:18 -0500 convcmd: pass encoding name as a sysstr
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 23:51:18 -0500] rev 36171
convcmd: pass encoding name as a sysstr Differential Revision: https://phab.mercurial-scm.org/D2221
Mon, 12 Feb 2018 23:50:58 -0500 convert: open all files in binary mode
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 23:50:58 -0500] rev 36170
convert: open all files in binary mode Differential Revision: https://phab.mercurial-scm.org/D2220
Mon, 12 Feb 2018 22:29:36 -0500 py3: whitelist another 11 passing tests
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 22:29:36 -0500] rev 36169
py3: whitelist another 11 passing tests Differential Revision: https://phab.mercurial-scm.org/D2213
Mon, 12 Feb 2018 20:44:06 -0500 util: convert traceback-related sysstrs to sysbytes in getstackframes
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:44:06 -0500] rev 36168
util: convert traceback-related sysstrs to sysbytes in getstackframes With this change, test-devel-warnings.t passes except for differences in how ProgrammingError is formatted and one mysterious traceback inside of transaction.__del__. Differential Revision: https://phab.mercurial-scm.org/D2212
Mon, 12 Feb 2018 20:43:33 -0500 util: format line number of stack trace using %d
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:43:33 -0500] rev 36167
util: format line number of stack trace using %d Required on Python 3, functional on Python 2. Differential Revision: https://phab.mercurial-scm.org/D2211
Mon, 12 Feb 2018 20:43:05 -0500 util: call warnings.warn() with a sysstr in nouideprecwarn
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:43:05 -0500] rev 36166
util: call warnings.warn() with a sysstr in nouideprecwarn This preserves nouideprecwarn wanting a bytes, which is consistent with the rest of hg. Differential Revision: https://phab.mercurial-scm.org/D2210
Mon, 12 Feb 2018 20:42:28 -0500 ui: convert stack traces to sysbytes before logging
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:42:28 -0500] rev 36165
ui: convert stack traces to sysbytes before logging They're coming back as unicodes, so sysbytes seems like the best we can do. This is like D2171 and D2172, but those fail on Python 2.7.5 (seriously!), so this is my version of the same change. I actually wrote this before reviewing those, then discarded it, then came back to it after finding out 2.7.5 is a silly place. Differential Revision: https://phab.mercurial-scm.org/D2209
Mon, 12 Feb 2018 20:41:47 -0500 ui: use pycompat.bytestr() to get a bytes-repr of config default
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:41:47 -0500] rev 36164
ui: use pycompat.bytestr() to get a bytes-repr of config default We don't know what type we'll get here, so we need something that'll behave like a repr without returning a unicode. Differential Revision: https://phab.mercurial-scm.org/D2208
Mon, 12 Feb 2018 20:39:48 -0500 tests: add tons of b prefixes in test-devel-warnings.t
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 20:39:48 -0500] rev 36163
tests: add tons of b prefixes in test-devel-warnings.t # skip-blame because it's just b prefixes Differential Revision: https://phab.mercurial-scm.org/D2207
Sun, 11 Feb 2018 19:43:43 -0800 py3: convert traceback representation to bytes when logging
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 19:43:43 -0800] rev 36162
py3: convert traceback representation to bytes when logging Python's APIs should return a system string. We want to use bytes for logging. So convert the traceback to bytes before sending it to the logger. Differential Revision: https://phab.mercurial-scm.org/D2176
Sun, 11 Feb 2018 19:26:53 -0800 py3: convert context to bytes instead of str
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 19:26:53 -0800] rev 36161
py3: convert context to bytes instead of str This yields identical behavior on Python 2 and 3. Differential Revision: https://phab.mercurial-scm.org/D2174
Sun, 11 Feb 2018 19:24:27 -0800 py3: add missing b'' literal to sshprotoext.py
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 19:24:27 -0800] rev 36160
py3: add missing b'' literal to sshprotoext.py Everywhere else in this file uses b''. I must have missed a line when I wrote this code a few days ago. # skip-blame b prefix Differential Revision: https://phab.mercurial-scm.org/D2173
Sun, 11 Feb 2018 19:11:17 -0800 py3: make dummyssh compatible with Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 19:11:17 -0800] rev 36159
py3: make dummyssh compatible with Python 3 Required encoding a str to bytes and writing bytes to a file descriptor. Differential Revision: https://phab.mercurial-scm.org/D2170
Sun, 11 Feb 2018 18:58:45 -0800 mail: import email.utils not email.Utils
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 18:58:45 -0800] rev 36158
mail: import email.utils not email.Utils email.Utils was renamed to email.utils in Python 2.5. But it appears at some point before Python 2.7 (possibly 2.5) email.Utils was aliased to the new home. So email.utils should be safe for all versions of Python we support. Differential Revision: https://phab.mercurial-scm.org/D2168
Sun, 11 Feb 2018 18:50:24 -0800 py3: cast character set to bytes
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 18:50:24 -0800] rev 36157
py3: cast character set to bytes The returned value from this function is eventually fed into email.charset.Charset.__init__. However, the standard library appears to handle both string types in Python 2 and 3. So there shouldn't be any problem returning a bytes here. Differential Revision: https://phab.mercurial-scm.org/D2167
Sun, 11 Feb 2018 18:47:19 -0800 py3: cast decode() argument to system string
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 18:47:19 -0800] rev 36156
py3: cast decode() argument to system string The actual types here may be mixed due to string literals and variables from other modules. So a cast is necessary. Differential Revision: https://phab.mercurial-scm.org/D2166
Sun, 11 Feb 2018 16:56:29 -0800 py3: avoid changing dictionary during iteration
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:56:29 -0800] rev 36155
py3: avoid changing dictionary during iteration dict.items() and friends are iterators/views in Python 3. You aren't allowed to mutate the underlying dictionary when iterating on these views. So iterate over a copy of things. Differential Revision: https://phab.mercurial-scm.org/D2164
Sun, 11 Feb 2018 16:54:56 -0800 py3: use raw string for key in **kwargs
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:54:56 -0800] rev 36154
py3: use raw string for key in **kwargs Otherwise Python 3 is unhappy. We only set a single key here. So I don't think pycompat.strkwargs() is necessary. Differential Revision: https://phab.mercurial-scm.org/D2163
Sun, 11 Feb 2018 16:50:45 -0800 py3: preserve chunks as an iterable of bytes
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:50:45 -0800] rev 36153
py3: preserve chunks as an iterable of bytes patch.diffstat() returns a bytes. util.chunkbuffer() expects an iterable of bytes. Feeding it a single bytes instance on Python 3 will iterate the characters as integers. This blows up util.chunkbuffer. Differential Revision: https://phab.mercurial-scm.org/D2162
Sun, 11 Feb 2018 16:40:02 -0800 py3: use b'' for changegroup version literals
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:40:02 -0800] rev 36152
py3: use b'' for changegroup version literals Test extensions aren't currently loaded with our custom module importer. # skip-blame b prefix Differential Revision: https://phab.mercurial-scm.org/D2161
Sun, 11 Feb 2018 16:30:44 -0800 py3: use b'' in inline extension
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:30:44 -0800] rev 36151
py3: use b'' in inline extension # skip-blame b prefix Differential Revision: https://phab.mercurial-scm.org/D2160
Sun, 11 Feb 2018 16:29:35 -0800 py3: use hex(hasher.digest())
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 16:29:35 -0800] rev 36150
py3: use hex(hasher.digest()) .hexdigest() returns a system str. .digest() consistently returns bytes. Differential Revision: https://phab.mercurial-scm.org/D2159
(0) -30000 -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 +10000 tip