最近、SVNクライアントを1.6.9から1.7.2にアップグレードしました。新しい形式に変換した後、すべてのサブフォルダーに.svnがないことに気付きました。私の特定の構成では、これはあまり便利ではありません。
これを元に戻す方法、またはCOの各サブフォルダーに.svnがある古い動作に戻す方法はありますか?
最近、SVNクライアントを1.6.9から1.7.2にアップグレードしました。新しい形式に変換した後、すべてのサブフォルダーに.svnがないことに気付きました。私の特定の構成では、これはあまり便利ではありません。
これを元に戻す方法、またはCOの各サブフォルダーに.svnがある古い動作に戻す方法はありますか?
Subversion 1.7は、コードネームWC-NGであるSubversionのワーキングコピーメタデータ管理システムを完全に書き直したものです。古いシステムはSubversionの最初の部分の1つであり、時間の経過とともに保守と拡張が困難になりました。WC-NGは、パフォーマンスを即座に向上させると同時に、将来の多くの機能拡張を可能にすることを目的としています。
Subversion 1.7で導入された変更の主な機能は、作業コピーのメタデータストレージを単一の場所に一元化することです。作業コピー内のすべてのディレクトリにある.svnディレクトリの代わりに、Subversion 1.7作業コピーには、作業コピーのルートに1つの.svnディレクトリしかありません。このディレクトリには、(とりわけ)その作業コピーにSubversionが必要とするすべてのメタデータを含むSQLiteでバックアップされたデータベースが含まれています。
データは構造化された形式で保存されますが、データ間の関係は複雑です。外部ツールがこのデータベースに保持されているデータを変更することは、作業コピーの破損につながる可能性があるため、強くお勧めしません。
Subversionを取得してすべてのディレクトリの.svnディレクトリを書き出す最も簡単な方法は、Subversionを1.7シリーズより前のバージョンにダウングレードすることです。 Subversion 1.6.23は、必要な動作をする最後のバージョンでした。
Subversion 1.7以降で機能するこれを実現する別の方法は、プロジェクトの各サブディレクトリを個別にチェックアウトすることです。たとえば、次のようなディレクトリ構造を持つプロジェクトがある場合:
project
`- bin
`- etc
次のようなことで確認できます。
mkdir project
cd project
svn co svn+ssh://foo@bar.org/src/project/bin
svn co svn+ssh://foo@bar.org/src/project/etc
これは、ディレクトリが少なく、その編成が浅い場合にのみ許容されます。
それ以外の場合は、古いSubversionにダウングレードするのが最善の策です。