Sun, 15 Jul 2018 18:32:17 +0900 obsolete: explode if metadata contains invalid UTF-8 sequence (API)
Yuya Nishihara <yuya@tcha.org> [Sun, 15 Jul 2018 18:32:17 +0900] rev 38708
obsolete: explode if metadata contains invalid UTF-8 sequence (API) The current metadata API can be a source of bugs since it forces callers to process encoding conversion by themselves. So let's make it reject bad data as a last ditch. I assume there's no metadata field which is supposed to store arbitrary BLOB like transplant_source.
Sun, 15 Jul 2018 18:24:57 +0900 obsolete: store user name and note in UTF-8 (issue5754) (BC)
Yuya Nishihara <yuya@tcha.org> [Sun, 15 Jul 2018 18:24:57 +0900] rev 38707
obsolete: store user name and note in UTF-8 (issue5754) (BC) Before, user names were stored in local encoding and transferred across repositories, which made it impossible to restore non-ASCII user names on different platforms. This patch fixes new markers to be encoded in UTF-8 and decoded back to local encoding when displaying. Existing markers are unfixable so they may result in mojibake. I don't like the API that requires metadata dict to be UTF-8 encoded, which is a source of bugs, but there's no abstraction layer to process the encoding thingy efficiently. So we apply the same rule as extras dict to obsstore metadata.
Sun, 15 Jul 2018 18:22:40 +0900 obsolete: clarify users in markerusers() never contain None
Yuya Nishihara <yuya@tcha.org> [Sun, 15 Jul 2018 18:22:40 +0900] rev 38706
obsolete: clarify users in markerusers() never contain None
Thu, 12 Jul 2018 23:07:29 +0900 revset: special case commonancestors(none()) to be empty set
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Jul 2018 23:07:29 +0900] rev 38705
revset: special case commonancestors(none()) to be empty set This matches the behavior of ancestor(none()). From an implementation perspective, ancestor() and commonancestors() are intersection, and ancestors() is union, so it would make some sense that commonancestors(none()) returned all revisions. However, ancestor(none()) isn't implemented as such, which breaks ancestor(x) == max(commonancestors(x)). From a user perspective, ancestors of nothing is nothing whichever type of operation the ancestor predicate does.
Tue, 10 Jul 2018 23:01:53 +0900 revset: clarify heads() order doesn't matter while computing common ancestors
Yuya Nishihara <yuya@tcha.org> [Tue, 10 Jul 2018 23:01:53 +0900] rev 38704
revset: clarify heads() order doesn't matter while computing common ancestors Follows up 5460926352ee and 52f19a840543.
Sat, 14 Jul 2018 10:51:52 +0900 hghave: require clang-format >= 6 due to output change
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Jul 2018 10:51:52 +0900] rev 38703
hghave: require clang-format >= 6 due to output change
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -6 +6 +10 +30 +100 +300 +1000 +3000 +10000 tip