commit | b8f65b77062bde51a24a52282279c64617c6085a | [log] [tgz] |
---|---|---|
author | Marcello Salomao <msalomao@google.com> | Mon Dec 05 23:33:30 2022 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Dec 05 23:33:30 2022 |
tree | 36bdcf1ce3a9e9a8414d650980daae80f351fb4a | |
parent | b32b40278c22501d81ce6b4f437a09caf9b23c1a [diff] |
[Mirror Sync] Handle mid-sync move and delete Updates the SyncStatusTracker to account for the stable_ids of files being renamed, moved, or deleted while they are syncing. A new flat_map is added to SyncStatusTracker to ensure there are never any duplicate stable_ids across the nodes of the trie. Upon trying to set a path, SyncStatusTracker now verifies if there is already a node with the same stable_id in the trie. If so, the old node is deleted in favor of the new one, guaranteeing there's never more than one node with the same stable_id in the trie. Note: This change originally depended on cl/490594871 being uprreved into ChromeOS, but has been adapted to work without it. For more details, see b/260664904. Bug: b/252902656 Test: chromeos_unittests *SyncStatusTrackerTest* Test: chromeos_unittests *DriveFsHostTest* Change-Id: I1800d3ef8c82c46379d964bb39cea6216876f929 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4054805 Reviewed-by: Ben Reich <benreich@chromium.org> Reviewed-by: Austin Tankiang <austinct@chromium.org> Reviewed-by: Dominick Ng <dominickn@chromium.org> Commit-Queue: Marcello Salomao <msalomao@google.com> Cr-Commit-Position: refs/heads/main@{#1079525}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.