v2をv3にアップグレードする方法FSFS Subversionファイルシステム


9

まず、(TortoiseSVNを使用して)ブランチをトランクに再統合しようとしていますが、「マージ情報のクエリにはバージョン3のFSFSファイルシステムスキーマが必要です。ファイルシステムE:/ MyRepository /はバージョン2のみを使用しています」というエラーメッセージが表示されます。

以前のバージョンのsubversionでブランチを再統合することは本当に不可能でしたか?またはこれを行う別の方法はありますか?

とにかく、どうすればファイルシステムをバージョン2からバージョン3にアップグレードできますか?


回答:


6

サーバーが実行しているSubversionのバージョンを指定していません。しかし、あなたが質問で提供したメッセージに基づいて、それはおそらく1.4.xバージョンまたはそれより古いです。1.4.xから1.5.xへの変換用に提供されたアップグレードコマンドがあったかどうか覚えていませんが、リポジトリをバージョン2からバージョン2に取得する確実なファイル方法は、ダンプしてロードすることです。しかし、それは大した問題ではありません。とにかく最新のものを使うには1.6.xをインストールする必要があります。だから、ここにあなたがする必要があるステップがあります:

  • Subversion 1.6.xにまだアップグレードしていない場合はアップグレードしてください
  • svnadmin dumpを使用して既存のリポジトリをダンプします
  • 新しいレポを作成し、_newと呼びます
  • svnadmin loadを使用して、古いリポジトリを新しいリポジトリにロードします
  • 古いリポジトリから新しいリポジトリにuuidファイルをコピーします
  • 古いリポジトリの名前を_oldに変更します
  • 新しいリポジトリの名前を

具体的な例については、Subversion FAQ http://subversion.apache.org/faq.html#dumploadも参照してください。

これで問題が解決するはずです。uuidファイルを使用すると、クライアントが混乱するのを防ぐことができます。ただし、svn updateを実行して確認してください。


2
svnadmin help loadメッセージから:--force-uuid : set repos UUID to that found in stream, if any。つまり、ファイルを操作する必要はありません
ヒューバートカリオ

@Hubert Kario:ええ、コマンドラインにはそのオプションがあります。ただし、すべてのGUIクライアントがそうするわけではありません。そして、もしあなたがサーバー側でそれを行うことができれば、それはユーザーにとってそれをより簡単にするだけです。ただし、次回その問題に遭遇したときは、その切り替えを覚えておきます。先端をありがとう!
jgifford25

新しいリポジトリを作成するときは、権限の設定に注意してください。リポジトリ経由でapacheのmod_svn、ユーザーの下のapacheの実行は、「WWW」、グループ「WWW」にアクセスしていると、あなたが「フレッド」としてログインしている場合たとえば、あなたはおそらくのようなものが必要になります。sudo chown -R fred:www myrepository続いsudo chmod g+wmyrepository/db/repcache.dbmyrepository/db/uuid
xgretsch

8

Subversionリポジトリのアップグレードには、ダンプ/ロードは必要ありません。svnadmin upgradeコマンドを使用します。

svnadmin upgrade <path-to-repos>

注:svnadmin upgradeは、「リポジトリの整合性を維持しながら、これを達成するために必要な最小限の作業のみを実行します。ダンプとそれに続く負荷は、最適化されたリポジトリの状態を保証しますが、svnadmin upgradeは行いません。」-svnadmin upgradeドキュメントも参照してください


1
ただし、これは「リポジトリーの整合性を維持しながら、これを達成するために必要な最小限の作業のみを実行します。ダンプとその後のロードが最も最適化されたリポジトリー状態を保証しますが、svnadminのアップグレードは保証しません。」-また見svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
イェルク・

1
また、svnadmin upgradeを使用して「常に前にリポジトリをバックアップする必要がある」ことにも注意してください。一方、dump / loadを使用すると、バックアップが暗黙的に行われます。
イェルク

5

イワンはうまくいく良いヒントを持っています、私はそれを試しました、そしてそれは非常に簡単です。

svnadmin upgrade <path-to-repos>

他の人に役立つ可能性がある、Ivansの例で見逃したことの1つは次のとおりです。

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

svnadminをdbディレクトリではなく、dbディレクトリを含むディレクトリに向けてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.