Changeset View
Changeset View
Standalone View
Standalone View
rust/rhg/src/commands/status.rs
Show First 20 Lines • Show All 162 Lines • ▼ Show 20 Line(s) | let display_states = if args.is_present("all") { | ||||
} else { | } else { | ||||
requested | requested | ||||
} | } | ||||
}; | }; | ||||
let repo = invocation.repo?; | let repo = invocation.repo?; | ||||
let dirstate_data_mmap; | let dirstate_data_mmap; | ||||
let (mut dmap, parents) = if repo.has_dirstate_v2() { | let (mut dmap, parents) = if repo.has_dirstate_v2() { | ||||
let docket_data = | |||||
repo.hg_vfs().read("dirstate").io_not_found_as_none()?; | |||||
let parents; | let parents; | ||||
let dirstate_data; | let dirstate_data; | ||||
let data_size; | let data_size; | ||||
if let Some(docket_data) = | let docket; | ||||
repo.hg_vfs().read("dirstate").io_not_found_as_none()? | let tree_metadata; | ||||
{ | if let Some(docket_data) = &docket_data { | ||||
let docket = on_disk::read_docket(&docket_data)?; | docket = on_disk::read_docket(docket_data)?; | ||||
tree_metadata = docket.tree_metadata(); | |||||
parents = Some(docket.parents()); | parents = Some(docket.parents()); | ||||
data_size = docket.data_size(); | data_size = docket.data_size(); | ||||
dirstate_data_mmap = repo | dirstate_data_mmap = repo | ||||
.hg_vfs() | .hg_vfs() | ||||
.mmap_open(docket.data_filename()) | .mmap_open(docket.data_filename()) | ||||
.io_not_found_as_none()?; | .io_not_found_as_none()?; | ||||
dirstate_data = dirstate_data_mmap.as_deref().unwrap_or(b""); | dirstate_data = dirstate_data_mmap.as_deref().unwrap_or(b""); | ||||
} else { | } else { | ||||
parents = None; | parents = None; | ||||
tree_metadata = b""; | |||||
data_size = 0; | data_size = 0; | ||||
dirstate_data = b""; | dirstate_data = b""; | ||||
} | } | ||||
let dmap = DirstateMap::new_v2(dirstate_data, data_size)?; | let dmap = | ||||
DirstateMap::new_v2(dirstate_data, data_size, tree_metadata)?; | |||||
(dmap, parents) | (dmap, parents) | ||||
} else { | } else { | ||||
dirstate_data_mmap = | dirstate_data_mmap = | ||||
repo.hg_vfs().mmap_open("dirstate").io_not_found_as_none()?; | repo.hg_vfs().mmap_open("dirstate").io_not_found_as_none()?; | ||||
let dirstate_data = dirstate_data_mmap.as_deref().unwrap_or(b""); | let dirstate_data = dirstate_data_mmap.as_deref().unwrap_or(b""); | ||||
DirstateMap::new_v1(dirstate_data)? | DirstateMap::new_v1(dirstate_data)? | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 144 Lines • Show Last 20 Lines |