forked from mirrors/jj
git: demonstrate bug when fetching into colocated working copy (#864)
This commit is contained in:
parent
fafa9b70fc
commit
e3e7c17f52
1 changed files with 38 additions and 1 deletions
|
@ -232,8 +232,45 @@ fn test_git_colocated_conflicting_git_refs() {
|
|||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_git_colocated_fetch_deleted_branch() {
|
||||
let test_env = TestEnvironment::default();
|
||||
let origin_path = test_env.env_root().join("origin");
|
||||
git2::Repository::init(&origin_path).unwrap();
|
||||
test_env.jj_cmd_success(&origin_path, &["init", "--git-repo=."]);
|
||||
test_env.jj_cmd_success(&origin_path, &["describe", "-m=A"]);
|
||||
test_env.jj_cmd_success(&origin_path, &["branch", "create", "A"]);
|
||||
test_env.jj_cmd_success(&origin_path, &["new", "-m=B"]);
|
||||
test_env.jj_cmd_success(&origin_path, &["branch", "create", "B"]);
|
||||
test_env.jj_cmd_success(&origin_path, &["new", "-m=C"]);
|
||||
|
||||
let clone_path = test_env.env_root().join("clone");
|
||||
git2::Repository::clone(origin_path.to_str().unwrap(), &clone_path).unwrap();
|
||||
test_env.jj_cmd_success(&clone_path, &["init", "--git-repo=."]);
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &clone_path), @r###"
|
||||
@ bc7d08e8de9b7bc248b9358a05e96f1671bbd4d9
|
||||
o e1f4268fabd2c84e880c5eb5bd87e076180fc8e3 B
|
||||
o a86754f975f953fa25da4265764adc0c62e9ce6b A master
|
||||
o 0000000000000000000000000000000000000000
|
||||
"###);
|
||||
|
||||
test_env.jj_cmd_success(&origin_path, &["branch", "delete", "B"]);
|
||||
let stdout = test_env.jj_cmd_success(&clone_path, &["git", "fetch"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
// TODO: e1f4 should have been abandoned (#864)
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &clone_path), @r###"
|
||||
@ bc7d08e8de9b7bc248b9358a05e96f1671bbd4d9
|
||||
o e1f4268fabd2c84e880c5eb5bd87e076180fc8e3
|
||||
o a86754f975f953fa25da4265764adc0c62e9ce6b A master
|
||||
o 0000000000000000000000000000000000000000
|
||||
"###);
|
||||
}
|
||||
|
||||
fn get_log_output(test_env: &TestEnvironment, workspace_root: &Path) -> String {
|
||||
test_env.jj_cmd_success(workspace_root, &["log", "-T", "commit_id \" \" branches"])
|
||||
test_env.jj_cmd_success(
|
||||
workspace_root,
|
||||
&["log", "-T", "commit_id \" \" branches", "-r=all()"],
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Reference in a new issue