Wed, 30 Aug 2023 11:53:13 +0200 cachedlocalrepo: use sysstr for attribute name of "file of interest"
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 11:53:13 +0200] rev 50911
cachedlocalrepo: use sysstr for attribute name of "file of interest" The first item is an attribute name, the second one is a filename. So the first one can (and should) be a `str`.
Wed, 30 Aug 2023 13:01:10 +0200 terse-status: use `sysstr` to specify attributes to set
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:01:10 +0200] rev 50910
terse-status: use `sysstr` to specify attributes to set We use unicode string to specify attribute and we add a explicit char for the other usage.
Wed, 30 Aug 2023 00:50:28 +0200 path-suboption: deprecated specifying the attributes as bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:50:28 +0200] rev 50909
path-suboption: deprecated specifying the attributes as bytes The known suboptions have been updated, so we can deprecated passing bytes in case some extensions use them.
Wed, 30 Aug 2023 00:49:52 +0200 path-suboption: use str for "_pushloc" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:52 +0200] rev 50908
path-suboption: use str for "_pushloc" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:49:16 +0200 path-suboption: use str for "pushrev" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:49:16 +0200] rev 50907
path-suboption: use str for "pushrev" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:48:30 +0200 path-suboption: use str for "bookmarks_mode" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:48:30 +0200] rev 50906
path-suboption: use str for "bookmarks_mode" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:47:48 +0200 path-suboption: use str for "delta_reuse_policy" suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:48 +0200] rev 50905
path-suboption: use str for "delta_reuse_policy" suboptions That second argument refer to an attribute and do not needs to be bytes.
Wed, 30 Aug 2023 00:47:16 +0200 path-suboption: use str for "multi_urls" path suboptions
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 00:47:16 +0200] rev 50904
path-suboption: use str for "multi_urls" path suboptions That second argument refer to an attribute and do not needs to be bytes.
Fri, 01 Sep 2023 13:08:02 +0200 convert: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 13:08:02 +0200] rev 50903
convert: use sysstr to check for attribute presence We do not need bytes here.
Thu, 31 Aug 2023 16:57:16 +0200 mq: use sysstr to check for attribute access
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 16:57:16 +0200] rev 50902
mq: use sysstr to check for attribute access We do not need bytes here.
Wed, 30 Aug 2023 12:51:27 +0200 lfs: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:51:27 +0200] rev 50901
lfs: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 12:38:02 +0200 mq: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:38:02 +0200] rev 50900
mq: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:38:30 +0200 relink: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:38:30 +0200] rev 50899
relink: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:22:55 +0200 ui: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:22:55 +0200] rev 50898
ui: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 14:07:02 +0200 remotefilelog: use sysstr to access for attributes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 14:07:02 +0200] rev 50897
remotefilelog: use sysstr to access for attributes We do not need bytes here.
Wed, 30 Aug 2023 13:28:09 +0200 hgwebmod: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:28:09 +0200] rev 50896
hgwebmod: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:07:00 +0200 remotefilelog: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:07:00 +0200] rev 50895
remotefilelog: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:02:43 +0200 extensions: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:02:43 +0200] rev 50894
extensions: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:00:14 +0200 bundle2: use sysstr to check for attribute presence
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:00:14 +0200] rev 50893
bundle2: use sysstr to check for attribute presence We do not need bytes here.
Wed, 30 Aug 2023 13:32:45 +0200 largefile: use sysstr to check for attribute presence in `hgsubrepoarchive`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 13:32:45 +0200] rev 50892
largefile: use sysstr to check for attribute presence in `hgsubrepoarchive` We do not need bytes here.
Wed, 30 Aug 2023 12:03:11 +0200 largefile: use sysstr to check for attribute presence in `openstore`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:03:11 +0200] rev 50891
largefile: use sysstr to check for attribute presence in `openstore` We do not need bytes here.
Wed, 30 Aug 2023 12:01:37 +0200 largefile: use sysstr to check for attribute presence in `rebase` wrapping
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:01:37 +0200] rev 50890
largefile: use sysstr to check for attribute presence in `rebase` wrapping We do not need bytes here.
Wed, 30 Aug 2023 12:00:56 +0200 largefile: use sysstr to check for attribute presence in `getstatuswriter`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:00:56 +0200] rev 50889
largefile: use sysstr to check for attribute presence in `getstatuswriter` We do not need bytes here.
Wed, 30 Aug 2023 12:24:12 +0200 run-tests: detect HGWITHRUSTEXT value
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50888
run-tests: detect HGWITHRUSTEXT value Without this, some manual check in tests/test-dirstate.t could get confused by the lack of `rust` in module policy and break the test.
Tue, 29 Aug 2023 22:13:18 +0200 convert: stabilize subversion date sorter
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2023 22:13:18 +0200] rev 50887
convert: stabilize subversion date sorter In case of tie, this provides unstable result on my system. So I am adding a couple of tie breaker to fix the test.
Thu, 31 Aug 2023 19:47:33 -0400 rhg: allow setting defaults.cmd to an empty string
Spencer Baugh <sbaugh@janestreet.com> [Thu, 31 Aug 2023 19:47:33 -0400] rev 50886
rhg: allow setting defaults.cmd to an empty string This is used by at least one hg UI to prevent defaults from affecting the command: https://github.com/emacs-mirror/emacs/blob/b71beb7ae7c60a5c5af608420d28fdda5265a264/lisp/vc/vc-hg.el#L245 Let's let it work.
Sun, 20 Aug 2023 17:19:33 -0400 uncommit: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:19:33 -0400] rev 50885
uncommit: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:16:38 -0400 split: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:16:38 -0400] rev 50884
split: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:09:33 -0400 releasenotes: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:09:33 -0400] rev 50883
releasenotes: migrate `opts` to native kwargs
Sun, 20 Aug 2023 17:05:52 -0400 narrow: hoist a variable to a higher level to avoid use-before-init warning
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:05:52 -0400] rev 50882
narrow: hoist a variable to a higher level to avoid use-before-init warning In practice, this shouldn't generate an IOError, so there wouldn't have been a problem. But PyCharm didn't know that.
Sun, 20 Aug 2023 17:04:17 -0400 narrow: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 17:04:17 -0400] rev 50881
narrow: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:51:49 -0400 largefiles: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:51:49 -0400] rev 50880
largefiles: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:43:41 -0400 keyword: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:43:41 -0400] rev 50879
keyword: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:20:56 -0400 gpg: use a context manager to write `.hgsigs`
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:20:56 -0400] rev 50878
gpg: use a context manager to write `.hgsigs`
Sun, 20 Aug 2023 16:19:41 -0400 gpg: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:19:41 -0400] rev 50877
gpg: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:10:22 -0400 fetch: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:10:22 -0400] rev 50876
fetch: migrate `opts` to native kwargs
Sun, 20 Aug 2023 16:06:08 -0400 fastexport: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:06:08 -0400] rev 50875
fastexport: migrate `opts` to native kwargs
Mon, 21 Aug 2023 09:50:31 -0400 closehead: wrap transaction handling in a context manager
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 09:50:31 -0400] rev 50874
closehead: wrap transaction handling in a context manager
Sun, 20 Aug 2023 15:38:35 -0400 closehead: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 15:38:35 -0400] rev 50873
closehead: migrate `opts` to native kwargs
Sun, 20 Aug 2023 15:34:11 -0400 churn: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 15:34:11 -0400] rev 50872
churn: migrate `opts` to native kwargs
Sun, 20 Aug 2023 15:30:39 -0400 children: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 15:30:39 -0400] rev 50871
children: migrate `opts` to native kwargs
Sun, 20 Aug 2023 15:24:58 -0400 automv: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 15:24:58 -0400] rev 50870
automv: migrate `opts` to native kwargs
Sun, 20 Aug 2023 15:16:18 -0400 absorb: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 15:16:18 -0400] rev 50869
absorb: migrate `opts` to native kwargs
Mon, 21 Aug 2023 10:21:58 -0400 transaction: fix __repr__() and make the default name bytes stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 10:21:58 -0400] rev 50868
transaction: fix __repr__() and make the default name bytes This likely was always wrong on py3, since going back to aff5996f3043, these were added as a r-strings. Callers seem to always be supplying bytes, which makes the `b'/'.join(...)` part OK, but then bytes can't be interpolated into str with "%s", so it wouldn't have worked in either case.
Thu, 17 Aug 2023 15:53:32 -0400 rhg: support rhg files [FILE]
Spencer Baugh <sbaugh@janestreet.com> [Thu, 17 Aug 2023 15:53:32 -0400] rev 50867
rhg: support rhg files [FILE] This comes mostly for free after the rhg status [FILE] implementation.
Wed, 02 Aug 2023 10:46:47 -0400 rhg: support "status FILE"
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:46:47 -0400] rev 50866
rhg: support "status FILE" This change adds a new [file] argument to rhg status, parses them as patterns, canonicalizes the paths, and constructs a new PatternMatcher to intersect with the existing matcher being passed to the status implementation. We also make filepatterns a public module so we can access the pattern-parsing functionality we need from commands/status.rs.
Wed, 02 Aug 2023 10:16:33 -0400 rust-matchers: add PatternMatcher
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:16:33 -0400] rev 50865
rust-matchers: add PatternMatcher This should match the behavior of the Python patternmatcher. We need this for status [FILES] support.
Wed, 02 Aug 2023 10:33:11 -0400 rust-status: only visit parts of the tree requested by the matcher
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:33:11 -0400] rev 50864
rust-status: only visit parts of the tree requested by the matcher This is an optimization that the matcher is designed to support, but we weren't doing it until now. This is primarily relevant for supporting "hg status [FILES]", where this optimization is crucial for getting good performance (without this optimization, that command will still scan the entire tree, and just filter it down after the fact). When this optimization fires we have to return false from traverse_fs_directory_and_dirstate, representing that that part of the tree *might* have new files which we didn't see because we skipped parts of it. This only affects the cached result of the status, and is necessary to make future status operations (which might use a different matcher) work properly.
Wed, 02 Aug 2023 10:21:18 -0400 rust-status: error on non-existent files in file_set
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:21:18 -0400] rev 50863
rust-status: error on non-existent files in file_set file_set here consists of the files that were explicitly specified on the command line. Erroring on them matches the behavior of Python status.
Wed, 02 Aug 2023 10:07:00 -0400 rust-status: explicitly track bad file types
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:07:00 -0400] rev 50862
rust-status: explicitly track bad file types Before this, we silently skipped bad file types. Now, we check to see if a path is an exact_match in our matcher, and if so, print an error for it, and only then do we skip it. A path will be an exact match when it's specified as an explicit command line argument, and this error-printing behavior is necessary for compatibility with Python status.
Mon, 14 Aug 2023 09:25:36 -0400 rust: de-hardcode glob_suffix
Spencer Baugh <sbaugh@janestreet.com> [Mon, 14 Aug 2023 09:25:36 -0400] rev 50861
rust: de-hardcode glob_suffix We're adding patternmatcher in a subsequent commit, and this needs needs to be different for includematcher and patternmatcher.
Tue, 08 Aug 2023 11:50:26 -0400 rust: improve the type on DirsMultiset::from_manifest
Spencer Baugh <sbaugh@janestreet.com> [Tue, 08 Aug 2023 11:50:26 -0400] rev 50860
rust: improve the type on DirsMultiset::from_manifest It could only return an HgPathError, but we didn't express this in the type, so we needed some unreachable!()s. Now that is expressed in the type.
Wed, 02 Aug 2023 09:59:49 -0400 rust: don't escape spaces in regex
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 09:59:49 -0400] rev 50859
rust: don't escape spaces in regex Spaces are not in fact a regex special character, and escaping them is not correct.
Wed, 02 Aug 2023 10:09:23 -0400 rust-filepatterns: also normalize RelPath
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:09:23 -0400] rev 50858
rust-filepatterns: also normalize RelPath These patterns should be normalized too; this at least does no harm, and is necessary for proper status support.
Wed, 09 Aug 2023 18:08:28 -0400 rust: simplify pattern file parsing
Spencer Baugh <sbaugh@janestreet.com> [Wed, 09 Aug 2023 18:08:28 -0400] rev 50857
rust: simplify pattern file parsing Previously we kept the pattern syntax as a &[u8] until the last possible moment, which meant we had to handle potential errors when parsing that &[u8]. But such errors could never actually occur, given the structure of the code. Now we parse it eagerly (in two places) and pass it around as a PatternSyntax, so we can delete some error handling code. parse_one_pattern is in particular useful for parsing patterns passed on the command line, as we'll support later in this series.
Wed, 02 Aug 2023 09:57:29 -0400 rust-matchers: better support file_set in IntersectionMatcher
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 09:57:29 -0400] rev 50856
rust-matchers: better support file_set in IntersectionMatcher Previously, if both of the input matchers had non-exact file sets, IntersectionMatcher would simply have an empty fileset. Now, we duplicate Python behavior: we *union* the filesets of the matchers in that case. This makes some sense, because without exact input file sets, we can't do an exact intersection and must over-approximate. Concretely, this is necessary because the file_set is the list of files that were explicitly listed by the user, and we want to provide explicit errors for all such files, from both matchers.
(0) -30000 -10000 -3000 -1000 -300 -100 -56 +56 +100 +300 +1000 tip