2011-09-02 54 views
2

更新我有一個projectX創建,其包括一個git子模塊GIT中的子模塊不從一個git-svn庫

/projectx/foo/bar/submodule 

子模塊庫本身是一個git - svn的回購跟蹤一個svn存儲庫。

在獨立的子模塊回購,我已經拉在一些新的更新:

git svn fetch 

,我看到一些修訂進來於是我運行:

git svn rebase master 

,當我打電話:

git status 

這一切都看起來不錯。所以在我的projectx的根目錄中,我運行:

git submodule update 

沒有任何反應。我究竟做錯了什麼?我肯定跑:

git submodule add 
git submodule init 

子模塊,當我運行:

git submodule status 

我看到的散列其狀態。

那麼爲什麼git submodule update不會導致任何更新發生?

回答

3

不幸的是,git submodule update導致git fetch在子模塊中運行而不是git svn fetch。最簡單的解決方案是將您的git-svn副本保存在其他位置的Subversion存儲庫中,然後將存儲庫作爲子模塊添加。也就是說在這個類似的問題的建議:

據推測,如果你希望其他人使用你的資料庫,這就是你會想反正做什麼,因爲.gitmodules只能指向一個git倉庫,而不是SVN倉庫。

當然,沒有什麼能阻止您在子模塊目錄中手動運行git svn rebase,然後在超級模塊中添加並提交您喜歡的任何版本。但是,.gitmodules中的URL需要指向該存儲庫或其克隆。

+0

_最簡單的解決方案是保持subversion版本庫的git-svn克隆在其他地方,然後將該版本庫添加爲子模塊._ - 是的,這就是我所做的......但是您提到的是** git svn在submodule中的rebase **使我走上了正確的軌道。我只需要**子系統中的git pull origin master **。我得到了所有屁股後退,並認爲git子模塊更新會更新本地子模塊並導致發生取/合併。謝謝! – jaygooby