2009-10-20 42 views
7

在工作中,我們使用perforce,並鼓勵定期提交它(我很好)。然而,我想運行像mercurial這樣的東西,所以我可以在本地提交正在進行的工作,並且不一定會編譯/運行,然後從我這裏做常規提交到中央perforce服務器。推送到中央服務器的本地提交

我的問題有兩種,首先,有人知道Visual Studio如何處理多個源代碼控制綁定(理想情況下,我希望一切儘可能自治 - 嘿,我很懶: ))

其次,是否有任何工具可以讓我做一些簡單的操作,比如「檢查mercurial repository的當前頭部到perforce」。

我似乎記得GIT允許你做類似的事情,我並不完全反對嘗試它。

如果我已經錯過了任何明顯的或正在考慮這完全是錯誤的方式,請隨時痛斥我;)

乾杯

回答

3

您的想法不像在「離線開發」中那樣在私有提交中很有趣:即使沒有連接到中央Perforce存儲庫,Mercurial或Git也可以讓您工作。

但是關於分支,他們更容易創建或合併汞或Git,所以它可能是一個想法。
原理是在您的Perforce工作區中創建您的Hg或Git倉庫。

本文using mercurial with perforce (or some other centralized vcs)確實說明了類似的方法:

如果代碼已經在Perforce公司,我就拉下副本和汞初始化本地資源庫;否則我會啓動使用mercurial並在稍後檢查perforce(通常這是爲了秒殺)。
我會做一些工作,在我去mercurial時犯下。
我的perforce提交往往是一個較小的hg提交的彙總,或者如果我想特別跟蹤更改,我將通過使用「hg update」(下面的更多內容)滾動歷史記錄來檢查各個hg提交。
不要被方式提交.hg文件夾到Perforce的

+0

謝謝,我今天晚些時候會嘗試這個:] – Lee

+0

這似乎工作 - 也設置了一個宏來保存所有文件並提交... overkill:] – Lee

6

在我看來,你想要的是不同分支機構而不是多個SCM系統。如果您想在可以提交在製品的地方有您的遊樂場,請在Perforce的主要分支之外創建一個開發分支。您可以定期更新其他人提交的內容,並在您滿意/完成後將您的更改集成回主內容。

這也消除了VS如何處理它的問題。

+0

一個公平的點和一個絕對值得考慮的,但是我們的perforce可以是SLOW有時可以提交。但我一定會考慮這個! – Lee

2

Git自帶了一個git-p4前端,允許你創建跟蹤一個Perforce子的全部或部分新的git倉庫樹。 (複雜的客戶端工作區不支持,最後我檢查)。 git-p4通常位於contrib樹中,可能會或不會附帶您的Git安裝,或者您可以抓取最近的版本here, from git.kernel.org。這個腳本需要Python。

本質上講,你git p4 clone你的上游//depot/path,然後可以git p4 sync新的變化拉低到當前分支,或者git p4 rebase變基上游的Perforce路徑的頂部當前分支。如果你有一個獨立的Perforce工作區,與你的git倉庫相鄰,那麼你可以使用git p4 submit。 (我在VMware上使用一個單獨的內部工具提交給我們的Perforce服務器,所以我沒有使用git p4 submit。)

不幸的是,我不知道VS如何同時處理git或git和Perforce。我的猜測是,任何VS集成都不涉及git-p4的Perforce方面,但是您可以像平時一樣進行所有常規git操作,只需使用shell調用git-p4.bat或其他方法來執行Perforce操作。

另一種選擇是隻需在Perforce工作區中初始化一個git(或Mercurial)存儲庫。 Heresomeone who does this with Mercurial的示例。

+0

我發現這篇文章是非常有用的:https:// git.wiki.kernel.org/index.php/Git-p4_Usage –

相關問題