我對代碼做了很多更改,在提交之前,我想要一個朋友進行審閱。有沒有一種方式與SVN採取我的工作副本的副本(捆綁包中的所有內容)並將我迄今爲止所做的更改應用到另一臺機器而無需提交?如何將我的工作副本的副本與他人分享?
過去,在另一個源代碼管理系統中,我能夠做到以下操作來「打包」和「解壓」我的更改。有沒有什麼類似的SVN?
sourcecontrol.exe pack myChanges.pack
sourcecontrol.exe apply myChanges.pack
謝謝!
我對代碼做了很多更改,在提交之前,我想要一個朋友進行審閱。有沒有一種方式與SVN採取我的工作副本的副本(捆綁包中的所有內容)並將我迄今爲止所做的更改應用到另一臺機器而無需提交?如何將我的工作副本的副本與他人分享?
過去,在另一個源代碼管理系統中,我能夠做到以下操作來「打包」和「解壓」我的更改。有沒有什麼類似的SVN?
sourcecontrol.exe pack myChanges.pack
sourcecontrol.exe apply myChanges.pack
謝謝!
當然,您可以使用svn diff
命令來創建patch file。
svn diff >my-changes.patch
您可以使用任何常用方法(因爲它只是一個文本文件)發送此修補程序文件給其他人審查。要應用更改,
patch <my-changes.patch
請注意,如果您已經更改了任何非文本文件中,svn diff
的默認行爲是忽略從補丁文件中的實際差異(因爲補丁文件本身是一個文本文件,不能包含其他類型的內容,如圖像)。
新一代分佈式版本控制工具(如Git和Mercurial)可以更加優雅地處理這些問題,包括共享多個提交(一組更改)的能力。
雖然可以導出所有你的工作拷貝(使用SVN的export
功能),它是更好的提交到一個分支,讓與那支你的朋友差異,如果需要做選擇性修補。
這是適應正確的工作流程:始終讓您的版本提交到某個地方,這就是您首先使用VCS的原因! SVN分支很便宜,易於創建,一旦你不需要它們就容易忘記。但最重要的是,如果「意外」發生,他們很容易回覆。
不,你可以做的最好的事情就是創建一個分支。這是使用DVCS(如Git)的優點之一。如果你只是想分享差異,你可以運行svn diff
,但如果有很多,這不會是一個方便的方式來查看和分享它。