簡體   English   中英

想要在一組修訂版本之間制作一個SVN補丁文件

[英]Want to make an svn patch file between a set of revisions

我想通過svn命令行或使用Tortoise為一組修訂創建補丁文件。 如果有問題,我將使用Win 7。

我不需要做比較。 我可以的 我有一些軟件的兩個不同版本。 版本A中修復了一個錯誤,該錯誤涉及大量文件。 我想將其移植到版本B。除了逐個文件之外,我沒有看到一種簡便的方法。

我可以單擊文件,然后對文件進行保存修訂,但是它並沒有像保存補丁文件那樣真正保留文件夾結構。

謝謝,埃里克

我個人將使用命令行svn diff。 如果您還沒有下載鏈接,請點擊這里: http : //subversion.apache.org/packages.html#windows

這是svn diff的文檔: http : //svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html

根據上面的描述,它可能很簡單:

svn diff --new="url of A" --old="url of B" > mypatch.patch

您可以嘗試使用烏龜,但首先需要GnuWin的UNIX工具集的Windows端口。 http://sourceforge.net/projects/gnuwin32/

這將為您提供一個可以創建補丁文件的diff util。 TortoiseSVN允許您設置一個外部diff程序,但是我不確定這樣做的效果如何,因為我以前只是為了方便起見使用過陸龜(任何繁重的工作,我都回到了CLI上)。 此處的文檔: http : //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html 您也可以將外部差異與svn一起使用。 此處的文檔: http : //svnbook.red-bean.com/en/1.7/svn.advanced.externaldifftools.html

埃里克的建議可能會奏效。 使用Jubob的建議,我能夠完成所需的工作。

我有13個變更集,其中有些變更集不完整或以前的變更集全部集中到多個文件,這些文件我想從代碼的版本A移植到版本B。 我通過在Tortoise的“消息”字段中搜索缺陷ID來生成修訂列表。 然后,我轉到Tortoise中的每個相關修訂版,右鍵單擊它們,然后執行“將更改顯示為統一差異”。 這基本上產生了Jubob所談論的差異。 在每個差異上,我執行了一個另存為並將每個修訂版本另存為version1.patch,revision2.patch等。

我開始使用Tortoise一次應用每個補丁文件,但這很麻煩。 因此,我編寫了一個批處理文件,該文件逐個運行。 批處理文件中的命令如下所示:

patch -p0 -i  "C:\mypatchfilelocation\revision1.patch"

還有件事兒。 在每個補丁文件中,我必須更改路徑以匹配版本B的路徑。 所以我不得不從例如c:/ versionA /更改為c:/ versionB /

-埃里克

打開資源庫瀏覽器。 瀏覽到舊版本。 右鍵單擊該標記/分支文件夾,選擇“比較標記”。 您將看到存儲庫瀏覽器現在以粗體顯示該目錄。

然后瀏覽到新版本,右鍵單擊該標記/分支文件夾,選擇“將差異顯示為統一的差異”,您將獲得一個補丁文件。

或者,您可以右鍵單擊並選擇“比較URL”,然后在以下對話框中選擇所有更改的文件,右鍵單擊並選擇“將選擇的文件導出到...”或“將所選文件的列表保存到...”。 “導出”保留文件夾結構,“保存...”將所有文件保存到同一文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM