2010-02-15 68 views
3

我正在爲使用svn的開源項目的補丁工作。我沒有提交訪問權限,但我想要版本跟蹤我自己的更改。我跟着this guide閱讀並將svn回購轉換爲hg回購。如何在遷移到mercurial後從svn repos中提取更改

我希望能夠將從官方svn回覆新變化成我自己的本地副本,那該如何實現?導入後,我的本地文件夾包含未跟蹤的.hgignore文件。我應該添加一個被mercurial追蹤的嗎?

我也看着this tool,但它似乎更適合在本地在mercurial連接到svn回購站工作。我想把我的善後回購放在bitbucket上,因爲這份前指南似乎更有意義。

這可能是早期思考,但後來當我的貢獻完成時,生成補丁發送上游的最佳方式是什麼?是否有任何警告我應該馬上意識到?

編輯:orip's answer(它的編輯部分)總結了幾乎正是我想做的事:local hg copy這可以從updatesvnpush到我的網上bitbucket回購。

回答

1

你可以在TortoiseHg wiki on SVN看一看 - 使用TortoiseHg作爲一個Subversion服務器部分客戶,也許它會幫你做一個關於你在你的問題聯繫在一起的Mercurial維基介紹的工具決定。

此外,檢查出由VonC對這個問題給出了答案:Mercurial from Subversion: moves, renames and tags

+0

如果TortoiseHg客戶端允許我同時執行結帳和svn回購更新,同時能夠推送到我的hg回購,那就太棒了。我檢查一下。 – Mizipzor 2010-02-16 08:56:33

2

吸引新的變化很簡單:檢出svn代碼,並定期'svn update'它,然後檢查那些下載的文件到你的mercurial repo中。

.hgignore文件告訴mercurial哪些文件類型不要跟蹤 - 即忽略。不要將此添加到您的mercurial repo中,它可能僅包含與subversion全局忽略相同的排除項。

補丁一代SVN是很容易,做svn diff > myPatch.diff(更新了svn回購後)

+0

你的意思是隻是普通的文件複製到我的本地mercurial樹?有沒有辦法像最初的進口一樣保留歷史? – Mizipzor 2010-02-16 00:22:53

+0

將.hgignore文件添加到回購中沒有任何問題,實際上該書推薦它 – 2010-02-16 11:08:24

1

引導你使用svn涉及到汞皈依,而是意味着一次性轉換,而不是持續的互操作性。

你想要類似hgsubversion

編輯:只是注意到你鏈接到它的問題。在bitbucket上保存資源庫的克隆應該不會有問題 - 通過本地hgsubversion與SVN進行交互,並像往常一樣推送到bitbucket - 您有一個常規的hg repo。

+0

您幾乎將它與Im瞄準的目標(編輯部分)釘在了一起。但我仍然沒有想出如果.svn和.hgsvn文件夾應該在我的副本中進行跟蹤,你不知道嗎?我也在等待新的東西出現在官方的svn回購站上,以便從那裏嘗試更新。 – Mizipzor 2010-02-16 08:54:38

2

你可以考慮用MQ工作。

  • SVN:用於熬夜到最新與主存儲庫
  • HG:在這裏您可以每個之後執行addremove命令,這樣,你將有一個項目由兩個VCS在同一時間管理從SVN更新以及您將使用MQ編寫補丁的位置。

這樣做的話,當將時間提供給主存儲庫時,它會更容易。

+0

乍一看,這似乎有點矯枉過正/複雜。但也許我低估了這裏的問題。我會研究它,謝謝! – Mizipzor 2010-02-16 10:53:10

+0

如果需要,請參考此處描述的工作流程:http://bitbucket.org/segv/hg-website/wiki/Workflows「處理CVS」部分 – gizmo 2010-02-16 12:05:03