posix.checkexec can return True, False, or None. The rust status
implementation expects a boolean, so make sure _checkexec returns a boolean.
Details
Details
- Reviewers
marmoute Alphare - Group Reviewers
hg-reviewers - Commits
- rHG373dd22ae60e: dirstate: force _checkexec to return a bool
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Comment Actions
thre are some code somewhere putting a None in this attribute. given you issue you face. It seems reasonable to make that code set a False instead.
In practice this means doing this instead
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -180,7 +180,7 @@ class dirstate(object): @propertycache def _checkexec(self): - return util.checkexec(self._root) + return bool(util.checkexec(self._root)) @propertycache def _checkcase(self):
(we could also consider going up to the "plateform" file, but this seems a good enough spot.
Comment Actions
Thanks for the fix, I probably forgot about this because I remember writing a similar fix.