2010-04-14 75 views
3

如果我不在線,我有時想打包一些提交的更改,這些更改保存在工作副本中,一旦我重新聯機,就可以真正地提交到存儲庫。我怎麼用Subversion來做到這一點(可以藉助其他工具)。如何在Subversion中保存提交?

回答

4

你可以使用git-svn並建立一個本地的git倉庫,你保持與svn同步。您可以在離線工作時對git存儲庫進行本地提交,並在您重新聯機時將更改傳輸到中央svn。

0

erm ...如果您簽出了代碼的副本,您只需處理該本地副本,然後當您重新聯機時,即可提交更改。您的電腦只檢查它是否有最新版本。或者我在這裏錯過了一些問題?

+1

這不會讓您回滾,並且稍後會進行單獨更改的版本歷史記錄。 – 2010-04-14 07:33:34

+0

問題是,我想針對不同的項目進行不同的提交。如果我回到網上時犯下了錯誤,我只有一個重大的承諾,並在此失去歷史。 – Mnementh 2010-04-14 08:32:29

3

如果您希望將某些更改批量化爲單一類型的提交,我能想到的唯一選擇是生成所有已完成內容的差異(TortoiseSVN可以選擇執行此操作,或者如果命令行友好,則可以使用svn diff命令),但只有一次纔有效,除非您知道您將爲每個批處理單獨的文件。

過去我已經做了幾次這樣的事情,當時我不想爲一個非常實驗性的功能創建一個全新的分支,但也不想將它檢入中央倉庫。然後,我可以與其他人共享該修補程序文件,但它仍然是一個相對脆弱的方式,因爲它只能保證適用於我生成的修訂版本。

0

嘗試將GIT作爲存儲庫控制。 GIT離線處理很多操作,並以這種方式非常快速和可靠。然而,GIT是SVN的其他內容,因此您必須對此進行一些研究。但是,如果你在脫機工作經常我會definitly採取掠奪在GIT如果我是你:]

http://git-scm.com/

0

SVN不支持此功能,本地脫機單獨提交。因此你可以使用git-svn這樣的網絡來擴展工作副本和分佈式存儲庫,使本地提交成爲可能。

但是,您可以將您的提交保存爲修補程序文件,例如, TortoiseSVN或簡單的「svn diff」將每一步都保存爲補丁,並且它們將像迭代提交一樣工作。

當您恢復在線時,您可以簡單地將一個補丁應用於另一個補丁並執行每一步。

+0

手動保存和應用補丁文件聽起來非常耗時且容易出錯。是否存在一個工具來自動執行此任務? – Mnementh 2010-04-14 08:33:42

+0

不知道,但你可以很容易地編寫腳本。或者只是採取git-svn有更多的開銷,但結果應該是相同的。 – 2010-04-14 09:44:31