2009-08-17 9 views
1

ここではかなり複雑なリポジトリがあります。私はSubversionへの最近の切り替えを最大限に活用しようとしています。一般的に次のような設定があります:Subversionで同時に複数のモジュールにコミットする

parent_dir (unversioned) 
->module1_dir (versioned) 
->module2_dir (versioned) 
->module3_dir (versioned) 
->etc 

などがあります。 modules1-xは、一般的に同じブランチのすべてのさまざまなモジュールです。 module1(サーバー)とmodule2(クライアント)のコードを変更する必要があるのは、比較的一般的なシナリオです。以前はCVSの下で、各モジュールの変更を手動でチェックインするだけでした。私ができることをしたいのは、サーバーとクライアントの両方の変更(それぞれ異なる2つのモジュール(または多分もっと多くのモジュール)の変更)を同時にコミットすることです。

Subversion(とくにTortoise SVN/Windows)でこれを行うにはどうしますか?私はおそらく唯一のステップだよう

Error 'D:\parent_dir' is not a working copy 

はそう:私はちょうどそのparent_dirに移動した場合、ダイアログが起動し、でも私のすべてのファイルが一覧表示されますが、実際は言って失敗したコミットコミット、フォルダを選択し、コミットしますまたはこの仕事をすることから2つ離れているが、私は何をする必要があるかは十分にはわかっていない。ああ、我々はすぐにそのディレクトリ構造を変更するつもりはないので、可能性としてそれを示唆しないでください。また、私が求めていることがはっきりしない場合は、フォローアップの質問をしてください。前もって感謝します。

ボーナスポイント:複数のモジュールを複数のブランチに同時にコミットする方法はありますか?例えば。私は、1.0と2.0の両方のブランチに入る必要があるクライアント+サーバーの変更を行います。

答えて

2

module1、module2、module3はリポジトリ内に共通の親を持っていますか?その場合は、その親ディレクトリをチェックアウトするだけです。 (あなたには関係のない作業コピーにたくさんの余分なファイルが残ってしまうかもしれません)

+0

いいえ、共通の親はありません。それは間違いなくこれを一番簡単にするでしょう。 – Morinar

+2

リポジトリには共通の親(リポジトリのルート)があります。チェックアウトされたディレクトリを再配置するために立つことができれば、ルートから疎なチェックアウトを行い、必要なファイルとディレクトリのみを取得することができます。 –

+0

あなたがそれらを再配置することができない場合は、とにかくそれを行うことができるかもしれないし、ファイルシステムの接続点を使用して、現在の場所をスパースチェックアウトに必要な場所にリンクします。 –

-1

Tortoiseを使用する方法があるかどうかわかりませんが、小さなスクリプトとコマンドライン Slik SVNのようなSVNクライアントは仕事をします。

+0

自動ANTビルドにはSlik SVNを使用していますので、すでにインストール済みです。スクリプトはそれほど複雑ではありませんが、私はTortoise GUIからの使いやすさを失います。これは間違いなく私を悲しくします。 – Morinar

1

Subversion 1.7では、コマンドラインから複数のモジュールの変更を原子的にコミットすることができます。ただ、このようにそれを実行します。私はTortoiseSVNの中でそれを試すことができないんだもののSubversionの1.6およびそれ以前で同じコマンドを実行するときに

$ svn commit module1_dir/ module2_dir/ ... 

を、あなたが言及したエラーが発生します。したがって、私はTortoiseSVN 1.7.Xでも「うまくいく」と信じるのは妥当だと思います。

関連する問題