在git svn重新设置基础后检测冲突
我同时使用了太多git svn存储库,所以更新它们变得很麻烦。我想写一个自动化的脚本,这样我每天早上去拿咖啡的时候就可以运行它了 基本上我的工作流程是这样的在git svn重新设置基础后检测冲突,git,automation,git-svn,lazy-evaluation,git-rebase,Git,Automation,Git Svn,Lazy Evaluation,Git Rebase,我同时使用了太多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 我已经自
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重新设置基址并不安全,因为可能存在冲突
脚本如何判断在重新设置基础后是否存在冲突?然后我可以运行git-rebase--abort,并在日志文件中写入一行,这样我可以在带着咖啡回来时查看失败:)从git-svn,
git-rebase
收集到的信息,如果由于冲突无法执行重基,git sh设置将退出,退出代码为1
。根据我从git svn收集的信息,git重基
,如果由于冲突而无法执行重新基址,git sh安装程序将退出,退出代码为1
。执行“git svn fetch”后,您可以使用合并而不是重新基址将最新的svn内容获取到本地分支中。如果合并成功,您就会知道,因为没有冲突(您可以通过git ls文件等工具找到冲突)。如果合并不起作用,您就没有损坏任何东西,可以忽略对工作树的顶级更改
然后在提交之前做一个重基作为最后一步(如果您愿意,这不是严格需要的),您可以交互地处理容易出错的重基只一次。在执行“git svn fetch”之后,您可以使用合并而不是重基将最新的svn内容获取到您的本地分支中。如果合并成功,您就会知道,因为没有冲突(您可以通过git ls文件等工具找到冲突)。如果合并不起作用,您就没有损坏任何东西,可以忽略对工作树的顶级更改
然后在提交之前,作为最后一步执行重新基址(如果您愿意,这不是严格需要的),您只能交互处理一次容易出错的重新基址。这似乎是正确的,但如果由于工作副本中存在未提交的更改而无法执行重新基址,则它也会返回1。我是否应该运行git rebase--无论如何都要中止?如果一个rebase在没有交互的情况下无法执行,那么当它被自动运行时,你真的没有选择余地,是吗?这似乎是对的,不过如果由于工作副本中存在未提交的更改而无法执行,它也会返回1。我应该运行git rebase吗?不管怎样,中止?好吧,如果一个rebase不能在没有交互的情况下执行,那么当它被自动运行时,你真的没有选择,是吗?