2011-04-12 47 views
10

我已經解決了這個問題。但我仍然不知道我爲什麼工作。神祕的Git行爲

我們有一個svn倉庫用於我們的代碼工作。我有一個本地git-svn存儲庫,因爲我是< 3 Git。 :)我們使用Windows,所以我使用Cygwin。我認爲Cygwin的最新版本是Git 1.7.0.4。星期五,我毫無問題地提交了我的代碼,回家了。星期一上午我回來了,並試圖'git svn rebase',因爲有人在週末犯了代碼(超級成年人)。

它開始正常,然後突然決定找不到樹幹。不幸的是,我失去了確切的錯誤信息,但它正在大吼大叫沒有找到/ refs/remotes/trunk ......我非常害怕。幸運的是,雖然我沒有未提交的代碼。沒什麼可失去的。不過,每次我試圖之後「混帳SVN變基」時,它會永遠掛,然後我會得到以下錯誤:

Unable to determine upstream SVN information from working tree history

我研究了一整天。我試圖將svn-remote url從https://xxx.xxx.xxx/xxx/xxx更改爲https://xxx.xxx.xxx/xxx/xxx/,看起來很荒謬。然後我做了'git svn fetch'...並重新獲取了整個主幹(全部1682次提交)。但rebase仍然行不通。所以我放棄了這一天,並決定第二天我會創建一個新的存儲庫並重新開始(這需要一整天)。今天早上,我去之前問這個問題,然後我毫不猶豫地刪除了我的存儲庫。我碰到這樣的:

git-svn rebase gone horribly wrong

這是不準確問題,但我決定嘗試「混帳的復位 - 硬主幹」,因爲這就是我想要的。它的工作。現在一切都很好。

但是,

爲什麼它首先做到這一點?我沒有更改任何事情,據我所知,因爲我週末沒有工作。什麼樣的事情會導致這個錯誤?我認爲我心不在焉做了一件可怕的事情,但我需要知道什麼,所以我不再做。 :)

在此先感謝。

回答

2

此錯誤:

Unable to determine upstream SVN information from working tree history 

聽起來像是你當前的git的歷史是不是基於SVN歷史可言,因此,重訂找不到一個共同的祖先。

通過改變網址,我認爲所有的提交都有不同的提交信息,因此不同的sha1哈希值,因此你的舊祖先不匹配新的祖先,導致重建失敗。

至於爲什麼主幹消失/失敗,這將是很難理解沒有錯誤信息發生了什麼。