def test_incorrect_branch_still_fetches(qisrc_action, git_server): git_server.create_repo("foo.git") qisrc_action("init", git_server.manifest_url) qisrc_action("sync") git_worktree = TestGitWorkTree() foo = git_worktree.get_git_project("foo") test_git = TestGit(foo.path) test_git.checkout("-b", "wip") git_server.push_file("foo.git", "foo.txt", "some change") previous_sha1 = test_git.get_ref_sha1("refs/remotes/origin/master") foo.sync() new_sha1 = test_git.get_ref_sha1("refs/remotes/origin/master") assert previous_sha1 != new_sha1
def test_sync_branch_devel_no_ff(qisrc_action, git_server, test_git): """ Test Sync Branc Devel No Fast Forward """ # Case where master can't be fast-forwarded, does nothing except warning git_server.create_repo("foo.git") qisrc_action("init", git_server.manifest_url) git_server.push_file("foo.git", "foo.txt", "a super change") git_worktree = TestGitWorkTree() foo1 = git_worktree.get_git_project("foo") test_git = TestGit(foo1.path) test_git.commit_file("foo.git", "div.txt", "diverging from master") master_sha1 = test_git.get_ref_sha1("refs/heads/master") test_git.call("checkout", "-b", "devel") test_git.commit_file("developing.txt", "like a boss") git_server.push_file("foo.git", "foobar.txt", "some other change") qisrc_action("sync", "--rebase-devel") # Master HEAD is untouched assert test_git.get_ref_sha1("refs/heads/master") == master_sha1
def test_push_after_rebase(git_server, git_worktree, qisrc_action, interact): # pylint: disable=unused-argument git_server.create_repo("foo") git_server.switch_manifest_branch("devel") git_server.change_branch("foo", "devel") git_server.push_file("foo", "master.txt", "devel") qisrc_action("init", git_server.manifest_url, "--branch", "devel") git_server.push_file("foo", "master.txt", "master") git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.commit_file("devel.txt", "devel") git.fetch() git.push("origin", "devel") interact.answers = [True] qisrc_action("rebase", "--branch", "master", "--push", "--force", "--all") local_sha1 = git.get_ref_sha1("refs/heads/devel") remote_sha1 = git.get_ref_sha1("refs/remotes/origin/devel") assert local_sha1 == remote_sha1
def test_push_after_rebase(git_server, git_worktree, qisrc_action, interact): git_server.create_repo("foo") git_server.switch_manifest_branch("devel") git_server.change_branch("foo", "devel") git_server.push_file("foo", "master.txt", "devel") qisrc_action("init", git_server.manifest_url, "--branch", "devel") git_server.push_file("foo", "master.txt", "master") git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.commit_file("devel.txt", "devel") git.fetch() git.push("origin", "devel") interact.answers = [True] qisrc_action("rebase", "--branch", "master", "--push", "--force", "--all") local_sha1 = git.get_ref_sha1("refs/heads/devel") remote_sha1 = git.get_ref_sha1("refs/remotes/origin/devel") assert local_sha1 == remote_sha1