爲什麼我會收到此錯誤消息?無法確定HEAD歷史記錄中的上游SVN信息
回答
(發佈乍得的「問題」作爲回答,固定的格式和拼寫錯誤。)
有幾個原因此錯誤消息。
第一,是最常見的。你的git倉庫中有兩個不相交的歷史記錄:你在git中創建的歷史記錄,以及來自遠程svn倉庫的歷史記錄。
爲了解決這個問題,你需要讓你的git倉庫和svn倉庫共享一個共同的祖先,這樣git可以確定哪些提交改變了什麼。
以下Article,討論如何解決這個問題:
問題的第二個原因可能是,如果你有git的(可能的,窗戶msysGit包)的早期版本,你剛剛創建了一個新的git與遠程svn存儲庫進行通信的存儲庫。
例如:
git svn init svn://svn.xxx.xxx/xxx/trunk
git svn fetch -r BASE:10
或
git clone svn://svn.xxx.xxx/xxx/trunk // Adds all the files in the revision...
,你會得到如下錯誤信息,使用下面的命令時。
git svn info
無法從工作樹或
確定上游SVN信息git svn rebase
無法確定工作樹歷史或
git svn dcommit
無法確定從HEAD歷史
上游SVN信息上游SVN信息如果你得到上面的錯誤信息,f第一步是檢查你的git版本。如果你使用(msysGit)運行舊版git版本< = 1.6.3.3。*,那麼解決這個問題最簡單的方法就是更新到最新版本的git,比如1.6.4。*。
以下Article更詳細地討論了該問題。
我收到此消息是因爲克隆svn回購--no-metadata
選項。也許你的問題就是這樣。
當沒有這個選項克隆時,一切都很好。
--no-metadata
選項是爲了在新的git
克隆將來成爲規範來源時克隆SVN存儲庫。它缺乏向上遊提交SVN的能力,因爲它無法追蹤git克隆和SVN上游之間的差異。
這就是我所做的。 – 2016-07-05 17:08:20
我得到這個消息後,我錯誤地添加的-s
/--stdlayout
參數到git svn clone
命令對於沒有不一個Subversion回購具有trunk
,tags
,和branches
相對路徑「標準的Subversion佈局」。我通常克隆的Subversion回購確實有標準的相對路徑,所以當我克隆了一個Subversion回購,但沒有使用我的通常的git svn clone
命令時,我得到了這個神祕的消息,消息是100%正確的,但試圖找出問題時幾乎100%無用)。
我遇到了這個問題,因爲我用'-s'選項執行'git svn clone'時,在svn url中添加了/ trunk。所以儘管與你的情況不完全相同,但你的評論幫助我發現了我的錯誤。謝謝! – jeroen 2011-11-30 08:44:35
此問題的另一個原因是錯誤的svn-remote.svn.rewriteRoot
選項(請參閱this answer以獲取有關使用此指令的說明)。
從Subversion導入的提交中的git-svn-id
行必須與rewriteRoot
URL匹配(如果已設置)。
從鏈接的答案這裏簡單的svn URL switcheroo工作! – lkraav 2015-08-05 15:28:00
就我而言,svn repo的HEAD應該與git repo的HEAD匹配。 This應該解決的問題:
git update-ref refs/remotes/git-svn refs/remotes/origin/master
這並沒有解決我的問題。 – 2015-01-02 04:44:56
這解決了我的問題。 – 2016-09-24 03:30:08
我得到這個消息,因爲我使用的FQDN爲git svn init
命令,但預先存在的混帳SVN一體化是隻使用主機名。
例如grep git-svn-id
表明:
git-svn-id: svn://host/repo/...
但我所做的:(我們有一個機器,定期同步與SVN一個混帳回購協議,那麼其他人有git config --add remote.origin.fetch refs/remotes/*:refs/remotes/*
去取下來SVN同步分支)
git svn init -Ttrunk svn://host.domain.com/repo
當您結賬新創建的SVN回購時,您也可能會收到此錯誤。
我已經
- 首先解決了這個操作的方式通過svn命令的初始提交
- 然後用git svn的命令克隆回購。
得到了同樣的問題,在這裏是基於http://eikke.com/importing-a-git-tree-into-a-subversion-repository/文章的解決方案:
$ git svn init http://server.com/svn/project/trunk/prototypes/proto1/
$ git svn fetch
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/svn/!svn/bc/100/dcom/trunk/prototypes/ws' path not found
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
r147367 = 37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d (refs/remotes/git-svn)
$ svn log http://server.com/svn/project/trunk/prototypes/proto1/
------------------------------------------------------------------------
r147367 | user | 2014-01-16 18:02:43 +0100 (Thu, 16 Jan 2014) | 1 line
proto1 home
------------------------------------------------------------------------
$ git log --pretty=oneline master | tail -n1
71ceab2f4776089ddbc882b8636aacec1ba5e832 Creating template
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #1
$ git show-ref git-svn
37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d refs/remotes/git-svn
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #2
$ echo "71ceab2f4776089ddbc882b8636aacec1ba5e832 37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d" >> .git/info/grafts
$ git svn dcommit
Committing to http://server.com/svn/project/trunk/prototypes/proto1 ...
A README.md
A pom.xml
A src/main/java/.gitkeep
A src/main/resources/.gitkeep
A src/main/webapp/WEB-INF/web.xml
A src/main/webapp/index.html
A webapps/.gitkeep
Committed r147419
A README.md
A pom.xml
A src/main/java/.gitkeep
A src/main/resources/.gitkeep
A src/main/webapp/WEB-INF/web.xml
A src/main/webapp/index.html
A webapps/.gitkeep
r147419 = 6a8bda7262739306d0a6e17eaad2802737dedc35 (refs/remotes/git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
Unstaged changes after reset:
M pom.xml
M src/main/webapp/index.html
A .gitignore
Committed r147420
M pom.xml
M src/main/webapp/index.html
A .gitignore
r147420 = 749b5acec55c341672bca08d07de8c336b5a4701 (refs/remotes/git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
...etc...
另一個可能的原因:如果你有一個SVN-remote..rewriteUUID配置設置,混帳SVN可能有麻煩定位存儲庫的右側元數據。例如,你可能有這樣的事情(見的git - svn的手冊頁,你爲什麼會想討論這樣做):
[svn-remote "svn"]
url = svn://read-write.test.org
fetch = trunk/project:refs/remotes/trunk
rewriteRoot = http://read-only.test.org/svn
rewriteUUID = 1234-abcd
...其中1234-ABCD是讀的UUID - 僅鏡子。當你混帳SVN取',你最終可能會與本文件:
.git/svn/refs/remotes/trunk/.rev_map.5678-dcba
...其中56780-DCBA是讀寫存儲庫的UUID。解決方法是:
$ mv .git/svn/refs/remotes/trunk/.rev_map.5678-dcba \
.git/svn/refs/remotes/trunk/.rev_map.1234-abcd
不能肯定說這是否是一個持久的解決辦法,即,它可能會混淆下次你'git的SVN獲取的時間。可能嘗試一個符號鏈接而不是'mv',我沒有嘗試過。
- 1. 無法確定HEAD歷史記錄中的上游SVN信息
- 2. Git:無法確定HEAD歷史記錄中的上游SVN信息
- 3. 無法確定在一些從HEAD歷史上遊SVN信息GIT-SVN命令
- 4. 「無法確定工作樹歷史記錄中的上游SVN信息」
- 5. git svn clone> git svn rebase>無法確定工作樹歷史記錄中的上游SVN信息
- 6. git svn「無法確定工作樹目錄中的上游SVN信息」
- 7. 的Git SVN,無法確定混帳之後,從工作樹歷史上遊SVN信息變基
- 8. 如何查找/搜索/ grep SVN信息庫歷史記錄?
- 9. 獲取SVN提交Eclipse歷史記錄
- 10. 使用自定義信息配置IPython(即Jupyter)歷史記錄
- 11. 如何查看SVN信息庫的修訂歷史記錄圖表
- 12. Javascript歷史記錄無效
- 13. 捕獲數據庫中聯繫人信息的歷史記錄
- 14. 貝寶Sandbox歷史記錄重定向到REAL歷史記錄
- 15. readline歷史記錄無法運行
- 16. 從SVN導入歷史記錄到Git - 更改提交者信息
- 17. GWT歷史記錄:歷史記號
- 18. 無法找出正確的SQL查詢歷史表記錄
- 19. android-pubnub - 無法查看消息和歷史記錄
- 20. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 21. 無法獲得通話記錄歷史記錄的正確月份
- 22. 如何在windows phone'mango'中查找通話記錄(歷史記錄)信息?
- 23. 歷史上的Mercurial認證信息
- 24. Android:發送消息到歷史記錄
- 25. Websphere MQ消息歷史記錄
- 26. 解析Google網絡歷史記錄信息 - 登錄頁面重定向
- 27. 如何使SVN標籤上的git svn clone獲取完整的歷史記錄?
- 28. 未正確存儲導航歷史記錄和會話信息中未記錄的腳本訪問
- 29. T-SQL確定歷史記錄表中的狀態更改
- 30. 無法從Git歷史記錄中刪除目錄
它是一個社區wiki。 – Chad 2010-06-30 00:00:48
這意味着很多人可能會回答,編輯或編輯答案。它仍然應該問一個問題。 – bmargulies 2010-06-30 00:49:12