我使用GUI程序與我們的SVN存儲庫進行交互。有很多時候我會提交十個不同的文件,但是不小心只選擇一個並提交它。然後,我必須再次提交所有其他更改。如何合併兩個Subversion提交到一個
有沒有辦法在跟蹤程序中將這兩個「重複」提交合併爲一個單一提交的提交?
這是非常微不足道的,但我很好奇它是否有可能。
我使用GUI程序與我們的SVN存儲庫進行交互。有很多時候我會提交十個不同的文件,但是不小心只選擇一個並提交它。然後,我必須再次提交所有其他更改。如何合併兩個Subversion提交到一個
有沒有辦法在跟蹤程序中將這兩個「重複」提交合併爲一個單一提交的提交?
這是非常微不足道的,但我很好奇它是否有可能。
它聽起來不像是「重複」提交。
這聽起來像你有10個文件,你在兩個提交中分別提交(如果我理解正確)。
我不知道您是否可以「解除」第一個文件,但是您可以做另一次提交,以便在進行意外提交之前將回購「恢復」到它的位置。這將允許您在同一修訂版中提交所有十個文件。
我不知道如何用GUI/IDE來做到這一點。
在命令行中,你可以做這樣的:
意外提交文件中的翻修5000
創建一個補丁,以恢復提交:
SVN差異-r 5000:4999> revert.patch
應用補丁:
補丁-p0 < revert.patch
現在你的回購是它是前意外提交
現在你可以提交所有十個文件一起
可能有許多方式(一些更容易)來做到這一點。我相信這個答案會被低估!
一般來說,修訂控制系統的思想是你不能回去改變以前的提交 - 這會消除很多價值,因爲你不能再保證修訂控制系統中的內容是你的實際上當時有。
在顛覆的情況下,你可能使用來svnadmin
轉儲出庫,編輯備份,然後再次恢復它......但是這東西是邊際價值的大量的工作。聽起來對我來說更好的主意是獲得一個更適合您工作流程的前端,或者添加一些提交鉤子來阻止您首先做出錯誤的提交。
就我所知,在Subversion中沒有直接的支持(比如git)。但是,您可以撤消更改並進行新的提交。你可以參考這裏: http://svnbook.red-bean.com/en/1.2/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo
,或者如果你使用一些像GUI烏龜例如,您可能會發現以下有趣shortarticle:
http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html
FWIW,這不會是在Git的一個問題,因爲您通常會在一天中承諾您的本地回購,然後每天一次或兩次將您的提交推送到服務器。在你提交任何提交之前,你可以合併你的提交併進行其他SVN中不可能的維護。 Git FTW !! –