rust/hg-core/src/dirstate_tree/status.rs
changeset 49563 6b32d39e9a67
parent 49520 eb02decdf0ab
child 49564 da48f170d203
--- a/rust/hg-core/src/dirstate_tree/status.rs	Thu Sep 22 16:27:17 2022 +0200
+++ b/rust/hg-core/src/dirstate_tree/status.rs	Wed Oct 19 14:46:19 2022 +0200
@@ -414,7 +414,7 @@
         let dirstate_nodes = dirstate_nodes.sorted();
         // `sort_unstable_by_key` doesn’t allow keys borrowing from the value:
         // https://github.com/rust-lang/rust/issues/34162
-        fs_entries.sort_unstable_by(|e1, e2| e1.base_name.cmp(&e2.base_name));
+        fs_entries.sort_unstable_by(|e1, e2| e1.hg_path.cmp(&e2.hg_path));
 
         // Propagate here any error that would happen inside the comparison
         // callback below
@@ -430,7 +430,7 @@
                 dirstate_node
                     .base_name(self.dmap.on_disk)
                     .unwrap()
-                    .cmp(&fs_entry.base_name)
+                    .cmp(&fs_entry.hg_path)
             },
         )
         .par_bridge()
@@ -440,7 +440,7 @@
             match pair {
                 Both(dirstate_node, fs_entry) => {
                     self.traverse_fs_and_dirstate(
-                        &fs_entry.full_path,
+                        &fs_entry.fs_path,
                         &fs_entry.metadata,
                         dirstate_node,
                         has_ignored_ancestor,
@@ -737,7 +737,7 @@
         directory_hg_path: &HgPath,
         fs_entry: &DirEntry,
     ) -> bool {
-        let hg_path = directory_hg_path.join(&fs_entry.base_name);
+        let hg_path = directory_hg_path.join(&fs_entry.hg_path);
         let file_type = fs_entry.metadata.file_type();
         let file_or_symlink = file_type.is_file() || file_type.is_symlink();
         if file_type.is_dir() {
@@ -755,7 +755,7 @@
                 let is_at_repo_root = false;
                 if let Ok(children_fs_entries) = self.read_dir(
                     &hg_path,
-                    &fs_entry.full_path,
+                    &fs_entry.fs_path,
                     is_at_repo_root,
                 ) {
                     children_fs_entries.par_iter().for_each(|child_fs_entry| {
@@ -821,8 +821,10 @@
 }
 
 struct DirEntry {
-    base_name: HgPathBuf,
-    full_path: PathBuf,
+    /// Path as stored in the dirstate
+    hg_path: HgPathBuf,
+    /// Filesystem path
+    fs_path: PathBuf,
     metadata: std::fs::Metadata,
 }
 
@@ -872,8 +874,8 @@
             };
             let base_name = get_bytes_from_os_string(file_name).into();
             results.push(DirEntry {
-                base_name,
-                full_path,
+                hg_path: base_name,
+                fs_path: full_path,
                 metadata,
             })
         }