2011-05-18 49 views
0

我想设置一个shell脚本(最终作为cron作业运行)自动执行git svn rebase,然后将结果推送到github存储库。这是我现在有:shell脚本自动git svn重定位,推送到github

#!/bin/sh 

export PATH=/sw/bin:$PATH 
cd ~/Projects/FieldTrip 

git checkout svnMirror 
git svn rebase 
git push github svnMirror 
git checkout master 
git merge svnMirror 

的问题是,它执行结账和重订,但它比不上那些后没有任何的步骤:

$ fieldtrip_rebase.sh 
Switched to branch 'svnMirror' 
Current branch svnMirror is up to date. 
Everything up-to-date 
Switched to branch 'master' 
Your branch is ahead of 'github/master' by 7 commits. 
Already up-to-date. 

知道为什么,可能是?

+0

痕迹表示它执行所有步骤,但在后面的步骤中没有任何要做的事情 - 或者我误解了某些内容? – 2011-05-18 18:34:18

+0

@john - 不,行'你的分支在'github/master'之前提交了7个提交'表明'git push github svnMirror'应该推动某事,但它并不实际执行推送。 – eykanal 2011-05-18 19:20:58

回答

2

让我们遵循的步骤和输出:

git checkout svnMirror 

你有Switched to branch 'svnMirror' - 好

git svn rebase 

你有Current branch svnMirror is up to date. - 好

git push github svnMirror 

你有Everything up-to-date - 好。所以你没有什么可推动的。然后继续......

git checkout master 

你有Switched to branch 'master'.Your branch is ahead of 'github/master' by 7 commits.

git merge svnMirror 

你有Already up-to-date.没有什么可以从svnMirror分支合并。

它已经完成了你想要它做的一切。请注意,这是主人提前github /主7提交,你不推它。

+1

* facepalm *我认为你是对的。 – eykanal 2011-05-18 20:14:01