def test_tag(data_working_copy, cli_runner): """ review commit history """ with data_working_copy("points") as (repo_dir, wc): # create a tag r = cli_runner.invoke(["tag", "version1"]) assert r.exit_code == 0, r repo = KartRepo(repo_dir) assert "refs/tags/version1" in repo.references ref = repo.lookup_reference_dwim("version1") assert ref.target.hex == H.POINTS.HEAD_SHA
def test_fetch( data_archive_readonly, data_working_copy, cli_runner, insert, tmp_path, request, ): with data_working_copy("points") as (path1, wc): subprocess.run(["git", "init", "--bare", str(tmp_path)], check=True) r = cli_runner.invoke(["remote", "add", "myremote", tmp_path]) assert r.exit_code == 0, r with Db_GPKG.create_engine(wc).connect() as conn: commit_id = insert(conn) r = cli_runner.invoke(["push", "--set-upstream", "myremote", "main"]) assert r.exit_code == 0, r with data_working_copy("points") as (path2, wc): repo = KartRepo(path2) h = repo.head.target.hex r = cli_runner.invoke(["remote", "add", "myremote", tmp_path]) assert r.exit_code == 0, r r = cli_runner.invoke(["fetch", "myremote"]) assert r.exit_code == 0, r H.git_graph(request, "post-fetch") assert repo.head.name == "refs/heads/main" assert repo.head.target.hex == h remote_branch = repo.lookup_reference_dwim("myremote/main") assert remote_branch.target.hex == commit_id fetch_head = repo.lookup_reference("FETCH_HEAD") assert fetch_head.target.hex == commit_id # merge r = cli_runner.invoke(["merge", "myremote/main"]) assert r.exit_code == 0, r assert repo.head.name == "refs/heads/main" assert repo.head.target.hex == commit_id commit = repo.head_commit assert len(commit.parents) == 1 assert commit.parents[0].hex == h
def test_pull( data_archive_readonly, data_working_copy, cli_runner, insert, tmp_path, request, chdir, ): with data_working_copy("points") as (path1, wc1), data_working_copy("points") as ( path2, wc2, ): with chdir(path1): subprocess.run(["git", "init", "--bare", str(tmp_path)], check=True) r = cli_runner.invoke(["remote", "add", "origin", tmp_path]) assert r.exit_code == 0, r r = cli_runner.invoke(["push", "--set-upstream", "origin", "main"]) assert r.exit_code == 0, r with chdir(path2): r = cli_runner.invoke(["remote", "add", "origin", tmp_path]) assert r.exit_code == 0, r r = cli_runner.invoke(["fetch", "origin"]) assert r.exit_code == 0, r r = cli_runner.invoke(["branch", "--set-upstream-to=origin/main"]) assert r.exit_code == 0, r with chdir(path1): with Db_GPKG.create_engine(wc1).connect() as conn: commit_id = insert(conn) r = cli_runner.invoke(["push"]) assert r.exit_code == 0, r with chdir(path2): repo = KartRepo(path2) h = repo.head.target.hex r = cli_runner.invoke(["pull"]) assert r.exit_code == 0, r H.git_graph(request, "post-pull") remote_branch = repo.lookup_reference_dwim("origin/main") assert remote_branch.target.hex == commit_id assert repo.head.name == "refs/heads/main" assert repo.head.target.hex == commit_id commit = repo.head_commit assert len(commit.parents) == 1 assert commit.parents[0].hex == h # pull again / no-op r = cli_runner.invoke(["branch", "--unset-upstream"]) assert r.exit_code == 0, r r = cli_runner.invoke(["pull"]) assert r.exit_code == 0, r assert repo.head.target.hex == commit_id