6

Apache Subversion 1.7リリースノートによると:

作業コピー内のすべてのディレクトリにある.svnディレクトリの代わりに、Subversion 1.7作業コピーには、作業コピーのルートに1つの.svnディレクトリしかありません。

リポジトリに複数のディレクトリがあり、最初にチェックアウトするときは、特定のディレクトリのみを選択的にチェックアウトするとします。ドキュメントに記載されているように、これにより、最上位ディレクトリに.svn隠しフォルダが1つだけ作成されます。

ただし、後で別のディレクトリをチェックアウトすることにした場合、チェックアウトが完了した後、新しくチェックアウトされたディレクトリ内に別の.svnディレクトリがあります。

これが意味することは、ルートレベルからコミットを実行しようとすると、最初にチェックアウトされたディレクトリのみが認識されるということです。また、その後のチェックアウトについては個別にコミットする必要があります。

この動作を変更したり、2つの非表示の.svnディレクトリをマージしたりする方法はありますか?または、初めてチェックアウトするときに、リポジトリディレクトリ構造全体をチェックアウトするようなことをする必要がありますか?

4

1 に答える 1

6

簡単な答え:いいえ。それぞれが個別のチェックアウトであり、独自のデータベースがあります。ディレクトリ内に隠された深い魔法を理解していれば、.svnそれを操作してやりたいことができると確信しています。ただし、Subversionバージョン1.1から1.6とは異なり、その.svnディレクトリの構造ははるかに複雑で、簡単には理解できません。

あなたの場合、最善の策は、すべてをチェックインし、両方のプロジェクトを含めるために新しいチェックアウトを行うことです。

これを定期的に実行したい場合は、--depth=insvn co--set-depth=inを使用する必要がありますsvn update

たとえば、ベースディレクトリをチェックアウトしていますが、他には何も必要ありません。

$ svn co --depth=immediates http://svn.vegicorp.com/svn/base_prod
A base_prod/.classpath
A base_prod/.settings
A base_prod/foundation
A base_prod/client
A base_prod/server

これにより、.settingsand.classpathファイル、、、、およびディレクトリがチェックアウトされますが、それ以外はチェックアウトされません。それは速いです、そして私は私が望まないものの多くをチェックアウトしません。foundationclientserver

今、私はサーバーで作業したいと思います:

$ cd base_prod
$ svn update --set-depth=infinity server

これによりサーバーディレクトリが更新されますが、ディレクトリ構造全体がチェックアウトされます。で作業できるようになりましたが、またはファイルが占有されserverていません。foundationclient

後で、私はいくつかの仕事をしたいと思いますfoundation

$ svn update --set-depth = infinity Foundation

今、私はfoundationディレクトリを持っています。.svnそして、私は自分のディレクトリの下に1つのディレクトリしかありませんbase_prod

于 2012-09-13T14:34:56.903 に答える