feat: one store directory per checkout
This commit is contained in:
@@ -260,3 +260,25 @@ fn distinct_remotes_do_not_share_one_store_directory() {
|
||||
// the ordinary remote keeps the path it already had
|
||||
assert!(plain.contains("/a/my_api"), "{plain}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn two_checkouts_of_one_remote_keep_their_own_files() {
|
||||
let case = Case::new("clones");
|
||||
let second = case.second_checkout();
|
||||
case.write(".env", b"FIRST\n");
|
||||
second.write(".env", b"SECOND\n");
|
||||
|
||||
case.ahab(&["link", "add", ".env"]).ok();
|
||||
// no collision, and no --force needed
|
||||
second.ahab(&["link", "add", ".env"]).ok();
|
||||
|
||||
assert_ne!(case.store, second.store);
|
||||
assert_eq!(fs::read(case.path(".env")).unwrap(), b"FIRST\n");
|
||||
assert_eq!(fs::read(second.path(".env")).unwrap(), b"SECOND\n");
|
||||
|
||||
// one restoring leaves the other linked
|
||||
case.ahab(&["link", "restore", "--all"]).ok();
|
||||
assert!(second.is_symlink(".env"));
|
||||
assert_eq!(fs::read(second.path(".env")).unwrap(), b"SECOND\n");
|
||||
second.ahab(&["link", "list"]).ok().says("linked: .env");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user