3

ファイルシステム全体に散在しているSVNリポジトリからのいくつかの異なるフォルダの作業コピーがあるとしましょう。それらの親ディレクトリはリポジトリの一部ではありません。例えば

somedir1\
   workingcopyOfA\
   workingcopyOfB\
somedir2\
   somedir3\
       workingcopyOfC\
   workingcopyOfD\

これで、すべてに一度にチェックインしたい変更が含まれています(svn便宜上、1回だけ呼び出し、簡単にするために1つの新しいリビジョン番号のみを使用します)。

これは可能ですか?これはチェンジリストの目的ですか?svn<v1.5を使用した場合はどうすればよいですか?

(ここSOには同様の質問がいくつかありますが、それらは異なる問題を参照しています。)

編集:明確にするために:作業コピーはすべて同じリポジトリに属していますが、異なる部分に属しています。つまり、リポジトリは次のようになります。

RepoDirA\
RepoDirB\
RepoDirC\
RepoDirD\
4

5 に答える 5

3

他の人が指摘したように、正当な理由でそのままでは不可能です(特にD Garciaの回答を参照してください)。

日食がそのようなものをサポートしている場合、背後で複数のチェックインが作成されるのではないかと思います.

ただし、1 つの作業ディレクトリの変更を比較し、それらの変更を他の作業ディレクトリに適用することは可能です (重複する場合)。これが完了すると、すべての変更は、チェックインできる単一の作業ディレクトリにあります。D Garcia が指摘したマージの問題は、パッチ時に解決する責任があります。

作業ディレクトリが重複しておらず、複数の作業ディレクトリがある唯一の理由が、たとえばリポジトリ全体をプルしたくないなどの理由である場合は、階層を作業ディレクトリの共通ルートにチェックアウトすることをお勧めしますが、非再帰的に(を使用して) 、中間ディレクトリ用のsvn co -N root特定の作業ディレクトリを取得します)。svn update path/to/subsetOfInterestそうすれば、それらはすべて同じ作業ディレクトリ内にあり、アトミックに作業できます。

于 2009-12-03T11:03:08.577 に答える
1

Eclipse がこれを行うことができることは知っていますが、内部でいくつかのトリックを使用している可能性があります (たとえば、CVS にあるものと SVN にあるものなど、異なるリポジトリを使用するプロジェクトをコミットできるため)。

クライアントと一緒に試してみることをお勧めします。動作しない場合は、エラーが出力されます。あなたはおそらく何も壊すことはできません。

于 2009-12-03T10:43:25.350 に答える
1

できるようには見えません。ここでは、複数の作業コピーを頻繁にチェックアウトしてみました。Subversion は、チェックインしようとしているフォルダーの共通ルートに .svn ディレクトリがないことに不機嫌になります。

もちろん、すべての作業コピーが同じリポジトリ パスを参照している場合、これを許可するのは非常に厄介なことです。基本的に、Subversion が 4 セットの変更をローカルでマージしてからリポジトリに配置することを期待しているでしょう。これにより、競合解決が楽しくなる可能性があります :)

これは subversion 1.4.5 であったことに注意してください。

1.5 では、変更リストは、複数の作業ディレクトリを持ち、それらを 1 つのエンティティとして扱うのではなく、同じ作業ディレクトリに複数の作業セットの変更を持ち、それらを個別に扱うことができるようになっているようです。

于 2009-12-03T10:45:22.723 に答える
0

コマンドラインでも TortoiseSVN でも不可能だと思います。しかし、これを可能にするツールが存在する可能性があります。そのための bach-script を書くこともできます。

変更リストは別のものです。ここでは、1 つの作業コピー内のいくつかの変更をグループ化して、個別にコミットすることができます。

于 2009-12-03T10:45:00.090 に答える
0

変更リストセットはリポジトリごとにリポジトリで維持されていると思います-したがって、あなたの例では、作業コピー AB と C はすべて同じリポジトリにある必要があります。次に、各作業コピーを個別に同じ変更リストに追加する必要があります。

(完了するまで)テストできませんが、セットアップは機能しているようです。

于 2009-12-03T10:57:47.150 に答える