2

最近、実験を行っていてsvn:externals、実行するとエラーメッセージが表示されるようになりましたSVN Update

Z:\ Projects \ workB \ trunk

'Z:\ Projects \ workB \ trunk'は作業のルートではないため、再配置できません

コピー; 代わりに「Z:\ Projects\workB」を再配置してみてください

ここに画像の説明を入力してください

このページが示すように、私はコンテキストメニューを介して実行TortoiseSVN → Relocateしました。Z:\Projects\workB次に、このメッセージボックスが表示されます。

作業コピーを同じリポジトリ内の別のパスに再配置しようとしているようです。

差出人:file:/// Z:/ repos / repoB

宛先:file:/// Z:/ repos / repoB

ここに画像の説明を入力してください

これは正常ですか?警告メッセージに別のパスが示されていますが、パスFrom:To:パスは同じです。ここでYESを押しても大丈夫かしら。

これは関連している可能性があります:WCを新しいリポジトリに再配置しようとする際の問題


[アップデート]

最初のエラー(再配置できないなど)を引き起こすために私が行ったことを説明するために、現在のディレクトリ構造は次のようになります。

Z:\ repos \ repoA

Z:\ repos \ repoB

Z:\ Projects \ workB

Z:\Projects\workBリポジトリのチェックアウトですrepoB。そして、私は次の手順svn:externalsでonを作成しました。Z:\Projects\workB(トランクフォルダ全体とその内容をからにインポートしようとしましrepoAZ:\Projects\workB\trunk。これを実行したかった理由がありますが、長い話になるでしょう。)

  1. 右クリックしZ:\Projects\workBて選択TortoiseSVN -> Properties

  2. New -> Externals

  3. 押されたNew...

  4. ローカルパスに「trunk」、URLに「file:/// Z:/ repos / repoA / trunk」と入力し、設定ウィンドウを閉じました。

    ここに画像の説明を入力してください

  5. 右クリックしZ:\Projects\workBて選択SVN Commit...し、[OK]を押して外部定義を適用します。コミットは完了しました。

  6. 外部ファイルがインポートされるかどうかを確認するには、右クリックしZ:\Projects\workBて選択しましたSVN Update

そして、私は再配置を試みるという最初のエラーを受け取りました。

4

1 に答える 1

4

ダメダメダメ!

file:///特に共有プロジェクトでは、絶対に URLを使用しないでください。それは悪いことです、それはひどいことです、それはあまり良い考えではありません.

他に何もない場合は、svnserveプロセスを使用して Subversion サーバーを起動します。これは非常に簡単で、誰もあなたの Subversion リポジトリ ディレクトリに直接アクセスすることはできません。

このfile://URL は、Subversion をいじる場合には適していますが、実際のプロジェクトでは決して使用しないでください。オープン ソースの Subversion サーバーが必要な場合は、CollabNetのSubversion Edgeをご覧ください。http://これにより、Windows サーバー上でリポジトリを提供できるようになります。もう 1 つの一般的なものはVisualSVN Serverです。これはオープン ソースではありませんが、多くの人が Subversion リポジトリをセットアップするための無料バージョンを気に入っています。


あなたはあまりにも多くの情報を与えていませんでした。Subversion では、作業したいファイルを作業ディレクトリにチェックアウトしていることに気付きましたか? 例えば:

 C:> cd C:\workdir
 C:> svn co file:///Z:/Projects/workB/trunk workB-trunk

これにより、C:\workdir\workB-trunk にローカル コピーが作成されます。ここで、ファイルをいじることができます。リポジトリが、チェックアウトしたファイルとは異なる場所にあることに注意してください。私はあなたが移転のものを見ている理由を感じています。

を使用するsvn:externalsには、svn:externalsプロパティをプロジェクトのディレクトリに配置します。

 C> cd \workdir\workB-trunk
 C> svn propset svn:externals "^/Z:/Projects/WorkC/trunk workC" .
 C> svn update

file:///Z:/Projects/WorkC/trunkこれにより、workB-trunk の作業コピー内に の最新バージョンが配置されます。変更をコミットすると、チェックアウト時に全員がこれを取得しfile://Z:/Projects/WorkC/trunkます。


解決

ひょっとして... file:///Z:/repos/repoB/trunk はありませんか? その場合、トランクが既に repoB のディレクトリになっているトランクに repoA をチェックアウトしようとしています。

その場合は、単に削除してくださいfile:///Z:/repos/repoB/trunk

于 2012-10-15T19:40:29.060 に答える