インターネット上の読み取り専用リポジトリをインポート (チェックアウト) しました
$ svn co http://some.repo/at/somesite read-only
今、私はこの読み取り専用で作業したいです(また、svnよりもbzrの方が経験が豊富です)、このリポジトリをローカルで作業するためにsvnからbzrリポジトリに変更したいのですが、どうすればそれを行うことができますか? bzr のようなローカルリポジトリ
インターネット上の読み取り専用リポジトリをインポート (チェックアウト) しました
$ svn co http://some.repo/at/somesite read-only
今、私はこの読み取り専用で作業したいです(また、svnよりもbzrの方が経験が豊富です)、このリポジトリをローカルで作業するためにsvnからbzrリポジトリに変更したいのですが、どうすればそれを行うことができますか? bzr のようなローカルリポジトリ
Subversion を直接使用してコードをチェックアウトしないでください。バザーを使用してください。例えば
bzr svn-import http://feedparser.googlecode.com/svn/ feedparser
cd feedparser
bzr branch trunk mybranch
cd mybranch
bzr checkout
# hack...
詳細については、ドキュメント、bzr wikiのSubversion Migration ページbzr help svn-import
を確認してください。
2 番目の質問に対処するには
svn は bzr のようなローカルリポジトリをサポートしていますか?
Subversion はサーバー クライアント モデルに基づいていますが、git、bzr、Mercurial などの分散型 VCS では、すべてが 1 つにまとめられています。Subversion サーバーをローカルで実行することはできますが、SVN リポジトリは1 つの SVN サーバーによってのみ提供される必要があります。分散型 VCS では、リポジトリ全体(または bzr の場合は少なくともブランチ) を複製します。つまり、クローンを提供し、他の人に複製させるために必要なすべてのデータとメタデータを持っていることを意味します。分散型 VCS とは異なり、リポジトリの完全なコピーをローカルに作成することはありませんsvn checkout
。ローカルの作業コピーのみを作成しますこれは、リビジョン管理下のファイルとメタデータの一部 (すべてではない) です。SVN リポジトリの作業用ローカル コピーは、リポジトリ自体として機能するには不十分です。その作業コピーをサーバーに置いて、他の人がそこからチェックアウトできるようにすることはできません。
実際、Bazaar は Subversion の作業コピーを直接操作できます。Bazaar リポジトリにチェックアウト/クローンする方が望ましい場合がありますが (bzr checkout
またはを使用しbzr clone
ます。使用する必要はありませんsvn-import
)、ほとんどの Bazaar コマンドは、「軽量チェックアウト」を実行したかのように機能するはずです。これを処理するために、Bazaar は ".svn" ディレクトリに "bzr" ディレクトリを作成します。
ただし、これではローカル コミットが許可されないため、この状況では機能しません。幸いなことに、既存のリポジトリを複製することで (またはマスター SVN リポジトリから直接これを行うことで)、Bazaar チェックアウトに移動できます。
# you can clone from the old working copy directory:
bzr clone old-svn-working-copy new-bzr-branch-directory
# or from the original repository:
bzr clone http://some.repo/at/somesite new-bzr-branch-directory
次に、次のように行ったコミットされていない変更を移動できます。
cd new-bzr-branch-directory
bzr merge --uncommitted ../old-svn-working-copy