0

我正在使用这么多 git-svn 存储库(同时),以至于更新它们变得很麻烦。我想编写一个自动化的脚本,这样我就可以每天早上在我拿咖啡的时候运行它。

基本上我的工作流程是这样的

cd ~/module1
git svn fetch
git checkout master
git svn rebase

git checkout topicbranch
git svn rebase

cd ~/module2
git svn fetch
git checkout master
git svn rebase

我已经将该git svn fetch部分自动化,可以随时安全地完成。但是自动执行 git svn rebase 并不安全,因为可能存在冲突。

脚本如何确定变基后是否存在冲突?然后我可以运行 git rebase --abort,并在日志文件中写入一行,这样当我喝咖啡回来时,我可以查看失败:)

4

2 回答 2

3

在执行“git svn fetch”之后,您可以使用合并而不是变基将最新的 svn 内容获取到本地分支。如果合并成功,您就会知道,因为没有冲突(您可以使用 git ls-files 等工具找到)。如果合并不起作用,则说明您没有破坏任何内容,可以忽略对工作树的顶层更改。

然后在提交之前做一个变基作为最后一步(如果你愿意的话;它不是严格需要的),你可以交互地处理容易出错的变基一次。

于 2009-08-20T18:13:38.290 回答
1

从我可以收集到的内容git-svn中,如果由于冲突而无法执行 rebase git-rebasegit-sh-setupgit 将退出并退出代码。1

于 2009-08-19T12:41:06.037 回答