2012-10-12 15 views
7

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

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

リポジトリ

Z:\レポ\ repoA

Z:\レポ\ repoB

作業ディレクトリ

Z:\プロジェクト\ workA \ trunk \ core.php

Z:プロジェクト\ \ workA \トランク\ libに\ lib01.php

Z:\プロジェクト\ workB \トランク\のcore_mod.php

Z:プロジェクト\ \ workB \トランク\ libに\

この場合で workA\trunk\lib\

(そこtagsbranchesフォルダがあるが、それらは、簡単な質問を保つために省略されている。)私が達成したい何

は、ファイル(複数可)でありますはworkB\trunk\lib\ディレクトリに自動的にコピーされます。

  1. workAをチェックアウトしrepoAにそれを割り当てられ、workBをチェックアウトし、repoB
  2. Comitted workA\trunkフォルダに割り当てられ、次のように私がやった

    これを設定するためには、ありますrepoAは最新です。

  3. workB\trunk\libのインポート先を割り当てるには、workBフォルダを右クリックし、TortoiseSVN -> Propertiesを選択します。
  4. New -> ExternalsをクリックしてNew...
  5. Local pathフォームフィールドで./trunk/libを入力したクリック。 URLフィールドには、file:///Z:/repos/repoA/trunk/libと入力します。 ...ボタンを押すと、repo-browserが開き、ターゲットフォルダを選択するのに役立ちました。

    enter image description here

    enter image description here

  6. 設定ウィンドウを閉じるためにOk数回クリックしました。私は外部設定が行われたと仮定した。ファイル、Z:\Projects\workB\trunk\core_mod.php

  7. 右を作成し

  8. Z:\Projects\workB\trunk\をクリックしてworkBrepoBにしCOMITするSVN Comitを選択しました。

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

相対パス./trunk/libが間違っていると思われます。知りません。私が間違っていることを指摘できれば、それは感謝します。

更新

6A -

これは私にとって死角だったがレポするように変更作業コピーWorkBをコミットします。 Z:\Projects\workBを右クリックしてSVN Commit...を選択すると、次のエラーが発生しました。

enter image description here

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

enter image description here

(あなたのケースでは、 "トランク/ libには" より防弾なり、私は考えます)。私はworkBフォルダのPropertyを再選択し、svn:externalsためEditボタンをクリック

おかげで、TortoiseSVNは自動的にtrunk/lib./trunk/libを調整しました。今それはそうに設定されています。

図6b - RepoB上repobrowserとテスト(単に最速の方法)、その定義が正しい

である私は、右Z:\repos\repoBをクリックしてTortoiseSVN -> repo-browserを選んだとトランクフォルダまで閲覧。それは次のように見えます。それは正しいか?私はこの仕事をしたことがないので、実際には分かりません。トランクフォルダの下にあるlibフォルダは、リポジトリブラウザでは空です。

enter image description here

Z:\Projects\workB\trunk\libフォルダが空のままです。エラーメッセージは、 'Z:\ Projects \ workB'の位置を変更することを示唆していますが、その意味がわかりません。

+0

レポBroswerが示す**トランク内の2つの**のlibフォルダ - 1の外部と1つの本当の(必要ではない) - それは問題です。レポの現在の状態を見るために、トランクの新鮮なチェックアウト(外部と完全に再帰的)を試してください –

+0

'Repo-Broswerはトランクの内側に2つのlibフォルダを表示します - 1つは外部であり、もう1つはリアルではありません - それは問題です。 。ありがとう。リポジトリブラウザの 'Z:\ Projects \ workB \ trunk \ lib'に実際の' lib'フォルダを削除し、 'Z:\ Projects \ workB'で' SVN Update'を実行しました。これで 'Z:\ Projects \ workB \ trunk \ lib \ lib01.php'が自動的に作成されました。これは解決すべき長い旅でした。 – Teno

答えて

3

あなたは、少なくとも1つの必須アクション

6aを忘れてしまった - 、RepoB上repobrowser(単に最速の方法)でテストこと -

と1つのオプションのチェックポイント

図6bをレポするように変更作業コピーWorkBをコミットします定義は正しい

私はTSVNのURL(なぜなら、あなたのケースでは「trunk/lib」はより完全な防弾になるでしょう)のためにpath-specで./を使用することはありません。そして、純粋な個人的な習慣 - 私は木と定義外部とのレポブラウザ

ルート

に集約1 代わりに、結果として私はレポ内の複数の定義を取得した場合でも、マウントの時点で外部定義

Repo-Browser

を示します
+0

ありがとうございます。私は質問を更新しました。 – Teno

0

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

Z:\プロジェクト\ workA \トランク\のcore.phpの

Z:プロジェクト\ workA \トランク\ \ libに\ lib01.php

Z:プロジェクト\ \ workB \トランク\のcore_mod

Z .PHP:プロジェクト\ workB \トランク\ libに\

\

でなければなりませんでした

Z:プロジェクト\ workA \トランク\のcore.phpの\

Z:プロジェクト\ workA \ \トランク\ libに\ lib01.php

Z:\プロジェクト\ workB \トランク\のcore_mod.php

Z:プロジェクト\ \ workB \トランク

\(なしZ:プロジェクト\ \ workB \トランク\ libに)

+0

本当にあなたは*理論的には(理論的には、私はテストのために怠けています)**実際のlib **フォルダと**外部の**ルートを持っています:1. LIBフォルダ2の外部定義を作成します。マウントパスは "。"になります。 –

+0

興味深い。私の現在の理解レベルのために少し複雑に聞こえる。おそらくこの情報は、他の上級ユーザーにとって役立つだろう。あなたのご意見ありがとうございます。 – Teno

関連する問題