Mon, 26 Jun 2017 11:31:30 -0700 setup: update runcmd() to also return the exit status
Adam Simpkins <simpkins@fb.com> [Mon, 26 Jun 2017 11:31:30 -0700] rev 33123
setup: update runcmd() to also return the exit status Update the runcmd() helper function so it also returns the process exit status. This allows callers to more definitively determine if a command failed, rather than testing only for the presence of data on stderr. I don't expect this to have any behavioral changes for now: the commands invoked by setup generally should print data on stderr if and only if they failed.
Mon, 26 Jun 2017 11:31:30 -0700 setup: fail if we cannot determine the version number
Adam Simpkins <simpkins@fb.com> [Mon, 26 Jun 2017 11:31:30 -0700] rev 33122
setup: fail if we cannot determine the version number If running hg fails, exit the setup script unsuccessfully, rather than proceeding to use a bogus version of "+0-". Using an invalid version number causes various tests to fail later. Failing early makes it easier to identify the source of the problem. It is currently easy for setup.py to fail this way since it sets HGRCPTH to the empty string before running "hg", which may often disable extensions necessary to interact with the local repository.
Tue, 27 Jun 2017 23:50:22 +0900 smartset: fix generatorset.last() to not return the first element (issue5609)
Yuya Nishihara <yuya@tcha.org> [Tue, 27 Jun 2017 23:50:22 +0900] rev 33121
smartset: fix generatorset.last() to not return the first element (issue5609)
Mon, 26 Jun 2017 21:11:02 -0700 strip: respect the backup option in stripcallback
Jun Wu <quark@fb.com> [Mon, 26 Jun 2017 21:11:02 -0700] rev 33120
strip: respect the backup option in stripcallback The backup option was mistakenly ignored. It should be respected. Thanks Martin von Zweigbergk for finding this out!
Mon, 26 Jun 2017 23:58:27 +0530 py3: use pycompat.bytestr() to convert str to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 23:58:27 +0530] rev 33119
py3: use pycompat.bytestr() to convert str to bytes
Mon, 26 Jun 2017 23:57:49 +0530 py3: pass the memoryview object into bytes() to get the value
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 23:57:49 +0530] rev 33118
py3: pass the memoryview object into bytes() to get the value
Mon, 26 Jun 2017 17:23:10 +0530 py3: use pycompat.bytestr instead of str
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 17:23:10 +0530] rev 33117
py3: use pycompat.bytestr instead of str
Mon, 26 Jun 2017 17:22:45 +0530 py3: use '%d' to convert integers to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 17:22:45 +0530] rev 33116
py3: use '%d' to convert integers to bytes
Sun, 25 Jun 2017 08:36:51 +0530 py3: slice over bytes to prevent getting it's ascii value
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 08:36:51 +0530] rev 33115
py3: slice over bytes to prevent getting it's ascii value
Tue, 27 Jun 2017 00:23:32 +0530 py3: use pycompat.strkwargs() to convert kwargs keys to str
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Jun 2017 00:23:32 +0530] rev 33114
py3: use pycompat.strkwargs() to convert kwargs keys to str
Tue, 27 Jun 2017 00:15:56 +0530 py3: use r'' to prevent the addition of b'' by transformer
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Jun 2017 00:15:56 +0530] rev 33113
py3: use r'' to prevent the addition of b'' by transformer There are cases in opts handling in debugcommands.py where we don't need to convert opts keys back to bytes as there are some handful cases and no other function using opts value. Using r'', we prevent the transformer to add a b'' which will keep the value str.
Tue, 27 Jun 2017 00:20:55 +0530 py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Jun 2017 00:20:55 +0530] rev 33112
py3: use pycompat.byteskwargs() to convert kwargs' keys to bytes This is used where ever required like where kwargs are passed into ui.formatter(), scmutil.match() or cmdutil.openrevlog() which expects bytes.
Tue, 27 Jun 2017 02:24:38 +0900 tests: use cgienv to minimize environment setup at hgweb tests
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 27 Jun 2017 02:24:38 +0900] rev 33111
tests: use cgienv to minimize environment setup at hgweb tests This patch follows other hgweb tests.
Tue, 27 Jun 2017 02:24:37 +0900 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 27 Jun 2017 02:24:37 +0900] rev 33110
tests: avoid test failure for mangling path-like string by MSYS
Sun, 25 Jun 2017 08:20:05 +0530 py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 08:20:05 +0530] rev 33109
py3: make sure commands name are bytes in tests
Sun, 25 Jun 2017 03:11:55 +0530 py3: add b'' to make the regex pattern bytes
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 03:11:55 +0530] rev 33108
py3: add b'' to make the regex pattern bytes
Mon, 26 Jun 2017 17:20:46 +0530 py3: use hex() to convert the hash to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 17:20:46 +0530] rev 33107
py3: use hex() to convert the hash to bytes
Sat, 24 Jun 2017 19:57:50 +0530 py3: add b'' to make a triple quoted string bytes on Python 3
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Jun 2017 19:57:50 +0530] rev 33106
py3: add b'' to make a triple quoted string bytes on Python 3 Transformer does not adds b'' in front of triple quoted strings to prevent converting docs to bytes.
Sat, 24 Jun 2017 19:55:41 +0530 py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Jun 2017 19:55:41 +0530] rev 33105
py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Sat, 24 Jun 2017 19:55:01 +0530 py3: fix kwargs handling for `hg bookmarks`
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Jun 2017 19:55:01 +0530] rev 33104
py3: fix kwargs handling for `hg bookmarks`
Mon, 26 Jun 2017 09:37:16 +0900 identify: provide changectx to templater
Yuya Nishihara <yuya@tcha.org> [Mon, 26 Jun 2017 09:37:16 +0900] rev 33103
identify: provide changectx to templater
Mon, 26 Jun 2017 09:33:01 +0900 formatter: proxy fm.context() through converter
Yuya Nishihara <yuya@tcha.org> [Mon, 26 Jun 2017 09:33:01 +0900] rev 33102
formatter: proxy fm.context() through converter Otherwise nested template formatter would not see the context objects. It's just a boolean flag now. We might want to change it to 'ctxs -> items' function so changectx attributes are populated automatically in JSON, but I'm not sure.
Mon, 26 Jun 2017 09:18:55 +0900 identify: change p1/p2 to a list of parents
Yuya Nishihara <yuya@tcha.org> [Mon, 26 Jun 2017 09:18:55 +0900] rev 33101
identify: change p1/p2 to a list of parents It makes sense because the nested data structure is a list of items.
Sun, 25 Jun 2017 13:31:56 -0700 scmutil: add a cleanupnodes method for developers
Jun Wu <quark@fb.com> [Sun, 25 Jun 2017 13:31:56 -0700] rev 33100
scmutil: add a cleanupnodes method for developers It's now common that an old node gets replaced by zero or more new nodes, that could happen with amend, rebase, histedit, etc. And it's a common requirement to do bookmark movements, strip or obsolete nodes and even moving working copy parent. Previously, amend, rebase, history have their own logic doing the above. This patch is an attempt to unify them and future code. This enables new developers to be able to do "replace X with Y" thing correctly, without any knowledge about bookmarks, strip or obsstore. The next step will be migrating rebase to the new API, so it works inside a transaction, and its code could be simplified.
Sun, 25 Jun 2017 10:38:45 -0700 strip: add a delayedstrip method that works in a transaction
Jun Wu <quark@fb.com> [Sun, 25 Jun 2017 10:38:45 -0700] rev 33099
strip: add a delayedstrip method that works in a transaction For long, the fact that strip does not work inside a transaction and some code has to work with both obsstore and fallback to strip lead to duplicated code like: with repo.transaction(): .... if obsstore: obsstore.createmarkers(...) if not obsstore: repair.strip(...) Things get more complex when you want to call something which may call strip under the hood. Like you cannot simply write: with repo.transaction(): .... rebasemod.rebase(...) # may call "strip", so this doesn't work But you do want rebase to run inside a same transaction if possible, so the code may look like: with repo.transaction(): .... if obsstore: rebasemod.rebase(...) obsstore.createmarkers(...) if not obsstore: rebasemod.rebase(...) repair.strip(...) That's ugly and error-prone. Ideally it's possible to just write: with repo.transaction(): rebasemod.rebase(...) saferemovenodes(...) This patch is the first step towards that. It adds a "delayedstrip" method to repair.py which maintains a postclose callback in the transaction object.
Sun, 25 Jun 2017 22:30:14 -0700 workingfilectx: add audit() as a wrapper for wvfs.audit()
Phil Cohen <phillco@fb.com> [Sun, 25 Jun 2017 22:30:14 -0700] rev 33098
workingfilectx: add audit() as a wrapper for wvfs.audit()
Sun, 25 Jun 2017 22:30:14 -0700 workingfilectx: add backgroundclose as a kwarg to write()
Phil Cohen <phillco@fb.com> [Sun, 25 Jun 2017 22:30:14 -0700] rev 33097
workingfilectx: add backgroundclose as a kwarg to write() This is necessary because some callers in merge.py pass backgroundclose=True when writing. As with previous changes in this series, this should be a no-op.
Sun, 25 Jun 2017 22:29:09 -0700 merge: change repo.wvfs.setflags calls to a new wctx[f].setflags function
Phil Cohen <phillco@fb.com> [Sun, 25 Jun 2017 22:29:09 -0700] rev 33096
merge: change repo.wvfs.setflags calls to a new wctx[f].setflags function As with previous changes in this series, this should be a no-op.
Sun, 25 Jun 2017 17:00:15 -0700 merge: convert repo.wwrite() calls to wctx[f].write()
Phil Cohen <phillco@fb.com> [Sun, 25 Jun 2017 17:00:15 -0700] rev 33095
merge: convert repo.wwrite() calls to wctx[f].write() As with the previous patch in this series, workingfilectx.write() is a direct call to repo.wwrite(), so this change should be a no-op.
Sun, 25 Jun 2017 16:58:26 -0700 merge: replace repo.wvfs.unlinkpath() with calls to wctx[f].remove()
Phil Cohen <phillco@fb.com> [Sun, 25 Jun 2017 16:58:26 -0700] rev 33094
merge: replace repo.wvfs.unlinkpath() with calls to wctx[f].remove() The code inside workingfilectx.remove() is a straight call to repo.wvfs.unlinkpath, so this should be a no-op.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip