##// END OF EJS Templates
rust-dirstate-status: add call to rust-fast path for `dirstate.status`...
Raphaël Gomès -
r43568:733d4ffc default
parent child Browse files
Show More
@@ -27,6 +27,7 b' from . import ('
27 27 policy,
28 28 pycompat,
29 29 scmutil,
30 sparse,
30 31 txnutil,
31 32 util,
32 33 )
@@ -1097,6 +1098,58 b' class dirstate(object):'
1097 1098
1098 1099 dmap = self._map
1099 1100 dmap.preload()
1101
1102 use_rust = True
1103 if rustmod is None:
1104 use_rust = False
1105 elif subrepos:
1106 use_rust = False
1107 if bool(listunknown):
1108 # Pathauditor does not exist yet in Rust, unknown files
1109 # can't be trusted.
1110 use_rust = False
1111 elif self._ignorefiles() and listignored:
1112 # Rust has no ignore mechanism yet, so don't use Rust for
1113 # commands that need ignore.
1114 use_rust = False
1115 elif not match.always():
1116 # Matchers have yet to be implemented
1117 use_rust = False
1118 # We don't yet have a mechanism for extensions
1119 elif sparse.enabled:
1120 use_rust = False
1121 elif not getattr(self, "_fsmonitordisable", True):
1122 use_rust = False
1123
1124 if use_rust:
1125 (
1126 lookup,
1127 modified,
1128 added,
1129 removed,
1130 deleted,
1131 unknown,
1132 clean,
1133 ) = rustmod.status(
1134 dmap._rustmap,
1135 self._rootdir,
1136 match.files(),
1137 bool(listclean),
1138 self._lastnormaltime,
1139 self._checkexec,
1140 )
1141
1142 status = scmutil.status(
1143 modified=modified,
1144 added=added,
1145 removed=removed,
1146 deleted=deleted,
1147 unknown=unknown,
1148 ignored=ignored,
1149 clean=clean,
1150 )
1151 return (lookup, status)
1152
1100 1153 dcontains = dmap.__contains__
1101 1154 dget = dmap.__getitem__
1102 1155 ladd = lookup.append # aka "unsure"
General Comments 0
You need to be logged in to leave comments. Login now