7

svn:externalsWindowsマシンでTortoiseSVNをセットアップしようとしています。2つのプロジェクトがあり、両方のリポジトリが同じローカルマシンですでに作成されています。

現在の構造は次のようになります。repoArepoBリポジトリ用、workAおよびworkB作業ディレクトリ(チェックアウト)用に作成しました。

リポジトリ

Z:\ repos \ repoA

Z:\ repos \ repoB

作業ディレクトリ

Z:\ Projects \ workA \ trunk \ core.php

Z:\ Projects \ workA \ trunk \ lib \ lib01.php

Z:\ Projects \ workB \ trunk \ core_mod.php

Z:\ Projects \ workB \ trunk \ lib \

(フォルダがtagsありbranchesますが、質問を簡単にするために省略されています。)

私が達成したいのはworkA\trunk\lib\、この場合、ディレクトリlib01.phpに自動的にコピーされるファイルです。workB\trunk\lib\

これを設定するために、私が行ったことは次のとおりです。

  1. チェックアウトしworkAて割り当てrepoA、チェックアウトしworkBて割り当てましたrepoB
  2. workA\trunkが最新になるようにフォルダをコミットしましたrepoA
  3. orederでインポート場所を割り当てるには、フォルダをworkB\trunk\lib右クリックしてを選択します。workBTortoiseSVN -> Properties
  4. クリックしNew -> ExternalsてクリックNew...
  5. フォームフィールドに入力./trunk/libします。フィールドに「。」と入力Local pathします。ボタンを押すと、リポジトリブラウザが開き、ターゲットフォルダの選択に役立ちました。URLfile:///Z:/repos/repoA/trunk/lib...

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

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

  6. 数回クリックOkして設定ウィンドウを閉じます。外部設定が行われたと仮定しました。

  7. ファイルを作成し、Z:\Projects\workB\trunk\core_mod.php
  8. 右クリックしZ:\Projects\workB\trunk\て選択SVN Comitし、に参加workBrepoBます。

この時点で、lib01.phpはZ:\Projects\workB\trunk\libフォルダーに自動的にインポートされますが、何もコピーされないことを期待していました。フォルダSVN Updateを右クリックしてみました。workB\trunkしかし、workB\trunk\libフォルダは空のままでした。

相対パス./trunk/libが間違っているに違いないと思います。知らない。私が間違っていることを指摘していただければ幸いです。

アップデート

6a-コミットはWorkingCopyWorkBをリポジトリに変更しました

これは私にとって盲点でした。右クリックしZ:\Projects\workBて選択SVN Commit...すると、次のエラーが発生しました。

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

[OK]ボタンをクリックすると、すぐにフォルダを更新するかどうかを尋ねるダイアログウィンドウが表示され、[OK]をクリックしました。その後、TortoiseSVNが更新Z:\Projects\workBを開始し、このエラーが発生しました。しかし、この後、私が再コミットしたときZ:\Projects\workB、それはエラーなしで通過しました。

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

(あなたの場合の「trunk / lib」はより防弾になると思います)。

おかげでPropertyworkBフォルダを再選択してのEditボタンをクリックするとsvn:externals、TortoiseSVNは自動的にに調整さ./trunk/libれましたtrunk/lib。今ではそうなるように設定されています。

6b-RepoBでrepobrowserを使用してテストします(最速の方法)、その定義は正しいです

右クリックしZ:\repos\repoBて選択TortoiseSVN -> repo-browserし、トランクフォルダを参照しました。次のようになります。正しく見えますか?私はこの仕事に取り組んだことがなかったので、本当にわかりません。トランクフォルダの下のlibフォルダはリポジトリブラウザで空です。

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

フォルダはZ:\Projects\workB\trunk\libまだ空です。エラーメッセージは「Z:\ Projects \ workB」を再配置することを提案していますが、それが何を意味するのかわかりません。

4

2 に答える 2

3

少なくとも1つの必須アクションを忘れました

6a-コミットはWorkingCopyWorkBをリポジトリに変更しました

および1つのオプションのチェックポイント

6b-RepoBでrepobrowserを使用してテストします(最速の方法)、その定義は正しいです

理由は思い出せませんが、TSVNのURLのpath-specで./を使用することはありません(あなたの場合の「trunk / lib」の方が防弾になると思います)。そして純粋な個人的な習慣-結果として、ルートに集約されたものではなく、リポジトリ内に複数の定義を取得したとしても、マウントの時点で外部を定義します

ツリー内の外部と定義が表示されたリポジトリブラウザ

レポブラウザ

于 2012-10-12T14:53:10.113 に答える
0

この問題に遭遇した人にとって、workBの作業ディレクトリにはインポートフォルダは必要ありませんでした。

Z:\ Projects \ workA \ trunk \ core.php

Z:\ Projects \ workA \ trunk \ lib \ lib01.php

Z:\ Projects \ workB \ trunk \ core_mod.php

Z:\ Projects \ workB \ trunk \ lib \

する必要がありました

Z:\ Projects \ workA \ trunk \ core.php

Z:\ Projects \ workA \ trunk \ lib \ lib01.php

Z:\ Projects \ workB \ trunk \ core_mod.php

Z:\ Projects \ workB \ trunk \

(Z:\ Projects \ workB \ trunk \ libなし)

于 2012-10-13T01:12:33.993 に答える