2012-05-02 84 views
2

我使用GUI程序與我們的SVN存儲庫進行交互。有很多時候我會提交十個不同的文件,但是不小心只選擇一個並提交它。然後,我必須再次提交所有其他更改。如何合併兩個Subversion提交到一個

有沒有辦法在跟蹤程序中將這兩個「重複」提交合併爲一個單一提交的提交?

這是非常微不足道的,但我很好奇它是否有可能。

+0

FWIW,這不會是在Git的一個問題,因爲您通常會在一天中承諾您的本地回購,然後每天一次或兩次將您的提交推送到服務器。在你提交任何提交之前,你可以合併你的提交併進行其他SVN中不可能的維護。 Git FTW !! –

回答

2

它聽起來不像是「重複」提交。

這聽起來像你有10個文件,你在兩個提交中分別提交(如果我理解正確)。

我不知道您是否可以「解除」第一個文件,但是您可以做另一次提交,以便在進行意外提交之前將回購「恢復」到它的位置。這將允許您在同一修訂版中提交所有十個文件。

我不知道如何用GUI/IDE來做到這一點。

在命令行中,你可以做這樣的:

  • 意外提交文件中的翻修5000

  • 創建一個補丁,以恢復提交:

    SVN差異-r 5000:4999> revert.patch

  • 應用補丁:

    補丁-p0 < revert.patch

  • 現在你的回購是它是前意外提交

  • 現在你可以提交所有十個文件一起

可能有許多方式(一些更容易)來做到這一點。我相信這個答案會被低估!

+0

複製當然不是我想要的確切術語。我引用它是因爲我知道這不是很正確,但它是我能想出的最接近於快速描述問題的方法。感謝演練! – jdp

+0

它看起來像Ondra Peterka答案中的第一個鏈接顯示了使用合併命令執行相同操作的另一種方法。 – jahroy

0

一般來說,修訂控制系統的思想是你不能回去改變以前的提交 - 這會消除很多價值,因爲你不能再保證修訂控制系統中的內容是你的實際上當時有。

在顛覆的情況下,你可能使用svnadmin轉儲出庫,編輯備份,然後再次恢復它......但是這東西是邊際價值的大量的工作。聽起來對我來說更好的主意是獲得一個更適合您工作流程的前端,或者添加一些提交鉤子來阻止您首先做出錯誤的提交。