2010-04-07 18 views
2

我已經成功地將我的svn存儲庫轉換爲mercurial,但是當我克隆此repo時,默認分支將被賦予項目名稱而不是「default」。我將我的svn存儲庫轉換爲mercurial。當我克隆這個新的存儲庫時,默認分支有一個不同的名稱,爲什麼?

例子:

遠程服務器上:

hg branch 
default 

本地機器上:

hg clone http://server/hg/coolProject 
hg branch 
coolProject 

我希望我的本地機器上的汞分支輸出 「默認」。我不會真的關心這一點,但是當我將更改推回到原始倉庫時,會創建一個新倉庫,並且我認爲這是因爲分支名稱不同。

回答

0

當你說「默認分支被賦予項目名稱默認」是否沒有與branchname「默認」的變更集或是你克隆後結束了什麼分支?如果是後者,你總是可以只用hg update default

如果是前者,則可以使用--branchmap選項將convert重新命名爲default

+0

這是我做的。 1.在服務器上:我使用hg convert將我的svn repo轉換爲mercurial。這個回購被稱爲「coolProject」。 2.在本地pc上:我使用hg克隆將新的mercurial存儲庫克隆到本地機器。 現在,當我查看服務器repo上的分支時,它有一個標記爲「default」的分支。但是,當我查看本地回購時,它有一個標籤爲「coolProject」的分支。 我希望克隆是一個精確的副本。那麼爲什麼最初分支的不同名稱呢?我不是在指責善變;我確定我搞砸了,但我不知道它是什麼。 – Cliff 2010-04-07 03:38:04

+0

我想猜你的服務器上的一個名稱是'coolProject',而某些(hgweb?)將其顯示爲默認值。在mercurial中,變更集的分支名稱是其哈希的一部分,並且是完全不可更改的,因此絕對不是該分支在克隆上重命名的情況。從服務器repo上的命令行運行時,「hg branches」會顯示什麼內容? – 2010-04-07 13:32:07

0

hg branch命令向您顯示您當前所在的分支。改爲使用hg branches命令。遠程服務器和本地機器可能不在同一修訂版本上。

使用資源管理器,hg servehg identifyhg log來查看是否屬於這種情況。

至於項目名稱結尾作爲分支名稱,因爲在SVN分支實際上只是文件夾和分支是按照慣例完成的,可能SVN轉換錯誤分支文件夾的項目文件夾。你的SVN項目是否有標準的trunk/branches/tags文件夾佈局?在這種情況下,請使用convert.svn選項指定佈局(請參閱hg help convert)。你也可以試着去上下一個目錄。

+0

我試過了hg branches的方法。在我的服務器上,我看到一個標籤爲「默認」的分支,而在本地PC上,我看到一個標籤爲「coolProject」的分支。 – Cliff 2010-04-07 11:42:24

+0

您是否嘗試在這兩個存儲庫中使用「hg update tip」?如果你做'hg''和'hg''',你會得到相同的修訂版嗎? – 2010-04-07 12:22:03

相關問題