web-dev-qa-db-ja.com

リビジョン間に「パッチ」を作成しますか?

SVNの「パッチ」機能は、まさに私が望んでいるものではないようです。本当に欲しいのは、リビジョン間のファイルの差分を作成することです。したがって、rev1とrev 2を選択すると、それらのリビジョン間で変更または追加されたすべてのファイルを含むフォルダーになります。

これはTortoise SVNまたは平凡なsvnで実行できますか?

23
Josh M.

これは、カメのSVN自体で実現できます。パッチを作成する場所からブランチ(フォルダ)を右クリックします>> Show Log >>パッチを作成する必要があるすべてのリビジョンを選択>>右クリックしてCompare revisions >>変更されたファイルが表示されます>>すべてのファイルを選択>>右クリックしてExport Revision To >>マシンの任意のパスを指定>>ファイルはそれぞれのフォルダー構造にエクスポートされます。

または、スクリプトを使用してこれを実現できます。それについては、次のリンクを参照してください。

http://www.electrictoolbox.com/Subversion-export-changed-files-cli

25
Dipu H

コマンドラインから次のように実行できます。

フォルダー内のすべてのファイル

「my_project」フォルダー内のすべての変更されたファイルから、リビジョン123と124の間のすべての変更を含むパッチをホームフォルダーに作成します。

svn diff -r123:124 path/to/my_project > ~/my_project_changes_123_124.patch

特定のファイル

「my_project.php」という名前の1つのファイルのみから、リビジョン123と124の間のすべての変更を含むパッチをホームフォルダーに作成します。

svn diff -r123:124 path/to/my_project/my_project.php > ~/my_project_changes_123_124.patch
28
batigolix

ええと... svn diff?目的のリビジョンを渡すだけです。

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html

TortoiseSVNでは、「ログの表示」ダイアログで必要なリビジョンを強調表示すると、変更を差分として表示するコンテキストメニュー項目もあり、それをどこかに保存できます。

2
Ben