2011-02-08 55 views
28

我正在使用SVN上的項目。然而我幾天沒有訪問互聯網,並且將在我的項目上工作。在本地機器上臨時使用SVN離線工作

有沒有什麼辦法,使資料庫的克隆我的本地機器上,提交更改它,當我訪問互聯網「推」到他們的共享資源庫?在這裏從Mercurial的角度思考,是否值得完全遷移?!

+7

因爲他想要做的改變離線提交,而不是一個大的變更全都在結尾處進行處理。 – 2011-02-08 14:35:23

+0

,因爲我承諾進行小的更改,因此需要在旅行時在我的存儲庫上提交...因此需要本地存儲庫(可能是克隆的)來提交。 – Karan 2011-02-08 14:37:17

回答

49

你的問題聽起來好像git-svn用例:

  • 設置你的Git回購:git svn clone http://svn.example.com/project/trunk
  • ,同時在線,之後再脫機,提交更改到SVN
  • ,做一個git svn rebase讓你的Git回購與SVN回購同步
  • 當離線時,承諾使用git commit
  • 恢復聯網時再,做一個git svn dcommit把你的修改到SVN回購

我每天使用這個工作流程!

你得到兩個巨大的優勢,這樣做:

  • 您的完整SVN歷史記錄中的Git回購和在會從一個
  • 在離線狀態下克隆的每一個混帳回購備份,您可以查看提交消息,檢出其他分支等。
0

呵呵呵,一個很好的時間讓你發現自己mercurialgit

+1

讓我對mercurial感到困擾的事情之一就是你不能改變提交摘要。我覺得這很重要,因爲它更容易跟蹤哪些提交是哪個任務的一部分。 Mercurial有沒有更好的修訂/任務控制方法? – Karan 2011-02-08 14:40:08

+0

@Newton抱歉提問,但是提交摘要究竟是什麼?我只知道文本提交消息,這是支持,因爲它在svn – phihag 2011-02-08 23:00:27

1

總是有SVK爲好。儘管如此,我還沒有使用它,所以我不確定它的效果如何。

+0

SVK已停產。 – 2013-07-11 10:28:17

7

荒謬的答案是遷移到另一個版本工具,沒有冒犯!

我有確切的問題。
在我的「真實」存儲庫所在的「真實」服務器上使用SVN。
當我走出我的筆記本電腦,沒有互聯網我會簡單地複製這檯筆記本電腦(的VisualSVN + TortoiseSVN的)的「真實」信息庫,它的工作,改變/提交任何別的東西,回來的時候簡單的「同步」的新「修改'文件到「真實」存儲庫。

要更清楚一點:有兩臺SVN服務器,一臺在您的筆記本本地(克隆),另一臺在您的「真實」服務器(顯然)。只需在兩者之間同步即可。

5

我一直在使用上使用SVN爲你上面描述相同的原因項目飯桶。有一些習慣了git/mercurial,但過了一段時間,我真的很喜歡這種新方法。進一步,我從來沒有任何問題與使用git-svn,從未嘗試過mercurial和svn。

如果你到了Mercurial,並仍然在尋找一個好的教程與之間的一個或兩個笑之間檢查出這tutorial寫Joel Spolsky。如前所述,肯定是開始使用DVCS的絕好機會。

1

聲明:我是SOS(SVN Offline Support)的作者。

我寫了這個易於使用的命令行工具來準確地解決SVN脫機工作的問題,但它的作品不僅在SVN檢出,但對於任何VCS工作拷貝(如集市,Git的,化石),或即使在未跟蹤的文件樹中。 SOS允許簡單的提交,分支,切換/更新操作,而沒有傳統VCS所需的複雜語義背景知識。 聯機後,您可以將所有更改集成回基礎VCS。

Website

安裝需要一個Python 3,並通過pip install -U sos-vcs

相關問題