2010-03-23 39 views
9

作爲一名自由職業者,我經常在使用Subversion版本庫的公司工作。我可以在本地使用Mercurial,並從/推送到Subversion存儲庫嗎?

如果我可以使用Mercurial從這些存儲庫獲取代碼,在脫機狀態下跟蹤我的更改,然後在我重新聯機時將所有本地更改提交到公司的Subversion服務器,這會很方便。

這是行不通的?你讀過關於具體細節的好教程嗎?

+0

類似的問題:http://stackoverflow.com/questions/799860/使用-善變,本地只有-與顛覆服務器。我認爲我的問題也應該留在附近。這是可以用不同方式措辭的問題之一。 – 2010-03-23 16:05:31

+0

Aaaand這一個:http://stackoverflow.com/questions/826938/interoperation-between-mercurial-and-subversion – 2010-03-23 17:46:17

+0

這是關於窯溢出,或任何它被稱爲相同的問題:http://kiln.stackexchange.com/ 「我正在使用CVS的公司工作」 - yikes。問題/ 948/can-i-use-mercurial-local-and-update-from-push-to-a-subversion-repository/950#950 – 2010-03-23 17:49:51

回答

5

嘗試HgSubversion。它可以讓你做到這一點。你可以將一個(部分)svn倉庫克隆到一個hg倉庫中,並且可以在本地和svn上遠程處理(推拉你所期望的)。

我已經在過去取得了一些成功,但沒有豐富的經驗。

8

我正在使用CVS的公司工作,所以HgSubversion不是一個選項。我前幾天有同樣的問題,並制定了工作流程在此基礎上:

http://momentaryfascinations.com/programming/how.to.use.mercurial.for.local.source.code.management.with.a.public.subversion.server.html

我創建了一個Mercurial庫在我的CVS倉庫是,我當作「只讀」。然後,我將這個「只讀」hg repo克隆到工作存儲庫,我在本地進行更改/修復。我一直在克隆每個功能的回購和我所做的修復,但您也可以只有一個回購,並使用不同的分支策略來管理您的開發。這種策略的a good overview

此工作流程的關鍵在於擁有「只讀」存儲庫。我曾經在我創建的第一個Mercurial存儲庫中進行了更改,這個存儲庫位於CVS之上。這工作,但從CVS更新時,它變得混亂。通過添加這個附加層,您可以分別處理自己的更改和從CVS進行更新。

同時要同步與CVS

每當有在CVS的變化,我做cvs更新。對於「只讀」hg存儲庫,這將顯示爲已修改的文件。要同步了水銀,我只是做了

hg ci -m "Updated from CVS." 

(所以,你會看到我日誌中的汞很多這些消息)。此時,我的「只讀」存儲庫與CVS同步。現在我可以轉到我克隆的任何存儲庫,然後發出hg pull,然後hg update將其同步。

從HG回CVS

走向另一個方向,當我想承諾CVS,我會去到我的工作庫之一,我已經提交了我的變化已經對Hg提交更改。然後我將hg push更改回「只讀」,跳到「只讀」存儲庫,執行hg update。從CVS的角度來看,這將顯示爲新鮮的修改。然後我做一個cvs commit回到CVS。在這裏,我將不得不在我的日誌消息中重複/總結我在hg存儲庫中完成的工作。

不可否認,這個工作流程中存在一些不容忽視的地方。您可能會對hg進行多項更改,這隻會對CVS/SVN進行一次更改,因此歷史記錄不會保存在CVS/SVN中,您必須總結提交消息。您必須手動管理將CVS和「只讀」存儲庫保持同步。這樣做的好處是你不需要安裝任何額外的擴展 - 你只是從兩個角度處理文件本身。發生的一切都是非常透明的,並在你的控制之下。

我仍然對hg咬牙切齒,但到目前爲止,這個工作流程一直在合理地完成。

Harvey提供的這一個漂亮的圖,使一個很好的點,這個工作流程適用於任何其他VCS:

alt text http://sr105.com/other_vcs_to_hg_workflow.png

這裏
+1

「我正在使用CVS的公司工作。 – 2010-03-24 16:36:51

+3

@bentsai:這是一個很好的解釋,可能是任何其他VCS使用mercurial的最基本方法。適合顧問。它需要一個圖表。 – Harvey 2010-03-27 15:07:28

+2

您可以將其放入您的答案圖:http://sr105.com/other_vcs_to_hg_workflow.png – Harvey 2010-03-27 16:13:14

相關問題