# TODO(machenbach): There is some svn knowledge in this interface. In svn,
# tag and commit are different remote commands, while in git we would commit
# and tag locally and then push/land in one unique step.
- def Tag(self, tag):
+ def Tag(self, tag, remote):
raise NotImplementedError()
def CLLand(self):
self.step.GitDCommit()
- def Tag(self, tag):
+ def Tag(self, tag, remote):
+ self.step.GitSVNFetch()
+ self.step.Git("rebase %s" % remote)
self.step.GitSVNTag(tag)
expectations.append(RL("Y")) # Sanity check.
expectations += [
Cmd("git svn dcommit 2>&1", ""),
+ Cmd("git svn fetch", ""),
+ Cmd("git rebase svn/trunk", ""),
Cmd("git svn tag 3.22.5 -m \"Tagging version 3.22.5\"", ""),
Cmd("git checkout -f some_branch", ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
Cmd("git cl presubmit", "Presubmit successfull\n"),
Cmd("git cl dcommit -f --bypass-hooks", "Closing issue\n",
cb=VerifySVNCommit),
+ Cmd("git svn fetch", ""),
+ Cmd("git rebase svn/trunk", ""),
Cmd("git svn tag 3.22.5.1 -m \"Tagging version 3.22.5.1\"", ""),
Cmd("git checkout -f some_branch", ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
Cmd("git cl presubmit", "Presubmit successfull\n"),
Cmd("git cl dcommit -f --bypass-hooks", "Closing issue\n",
cb=VerifySVNCommit),
+ # FIXME(machenbach): This won't work when setting tags on the git repo.
+ Cmd("git svn fetch", ""),
+ Cmd("git rebase origin/candidates", ""),
Cmd("git svn tag 3.22.5.1 -m \"Tagging version 3.22.5.1\"", ""),
Cmd("git checkout -f some_branch", ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
Cmd("git svn find-rev r123", "hash123"),
Cmd("git log -1 --format=%at hash123", "1"),
Cmd("git reset --hard hash123", ""),
+ Cmd("git svn fetch", ""),
+ Cmd("git rebase svn/bleeding_edge", ""),
Cmd("git svn tag 3.4.3 -m \"Tagging version 3.4.3\"", ""),
Cmd("git checkout -f some_branch", ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),