2012-10-12 2 views
7

Windows 컴퓨터에서 TortoiseSVN을 사용하여 svn:externals을 설정하려고합니다. 두 개의 프로젝트가 있으며 두 저장소가 이미 동일한 로컬 시스템에 작성되었습니다.SVN 설정 : Windows에서 TortoiseSVN을 사용하는 외관

현재 구조는 다음과 같습니다. 리포지토리의 경우 repoA, repoB, 작업 디렉토리 (체크 아웃)의 경우 workAworkB을 만들었습니다.

저장소

Z : \의 repos \ repoA

Z : \의 repos \ repoB

작업 디렉토리

Z : \ 프로젝트 \ workA \ trunk \ core.php

Z : 프로젝트 \ \ workA \ 트렁크 \ lib 디렉토리 \ lib01.php

Z : \ 프로젝트 \ workB \ 트렁크 \의 core_mod.php

Z : 프로젝트 \ \ workB \ 트렁크 \ LIB \

(이 tagsbranches 폴더는하지만이 간단한 질문을 유지하기 위해 생략됩니다.)

는 내가 달성하고자하는 것은이 경우에 workA\trunk\lib\ 아래에있는 파일 (들)입니다은 workB\trunk\lib\ 디렉토리에 자동으로 복사됩니다.

  1. workA을 검사하고 repoA에 할당 workB을 체크 아웃하고 repoB
  2. Comitted workA\trunk 폴더에 할당 다음과 같이 내가 무슨 짓을했는지

    이를 설정하기 위해서이며, 그래서 repoA은 최신입니다.

  3. workB\trunk\lib의 가져 오기 위치를 지정하려면 workB 폴더를 마우스 오른쪽 버튼으로 클릭하고 TortoiseSVN -> Properties을 선택하십시오.
  4. New -> Externals 클릭 함과
  5. New...Local path 양식 필드에 ./trunk/lib를 입력 클릭했습니다. URL 필드의 경우 file:///Z:/repos/repoA/trunk/lib을 입력하십시오. ... 버튼을 누르면 repo-browser가 열리고 대상 폴더를 선택하는 데 도움이됩니다.

    enter image description here

    enter image description here

  6. 는 설정 창을 닫습니다 Ok를 몇 번 클릭했습니다. 나는 외부 설정이 완료되었다고 생각했다.파일 생성
  7. Z:\Projects\workB\trunk\core_mod.php 오른쪽 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 -

이 나를 위해 사각 지대였다 REPO하는 작업 복사본 WorkB을 변경 커밋. 오른쪽에 Z:\Projects\workB을 클릭하고 SVN Commit...을 선택하면 다음과 같은 오류가 발생합니다. 확인 버튼을 클릭 한 후

enter image description here

즉시 나는 폴더를 업데이트하고 내가 확인을 클릭할지 여부를 묻는 대화 상자 창을 얻었다. 그런 다음 TortoiseSVN이 Z:\Projects\workB을 업데이트하기 시작했으며이 오류가 발생했습니다. 그러나이 후에, 내가 Z:\Projects\workB을 다시 할 때, 그것은 오류없이 끝났습니다.

enter image description here

는 (귀하의 경우 "트렁크/lib 디렉토리는"더 방탄 될 것입니다, 나는 가정한다). 나는 workB 폴더의 Property을 다시 선택하고 svn:externalsEdit 버튼을 클릭

덕분에, TortoiseSVN을 자동으로 trunk/lib./trunk/lib을 수정합니다. 이제는 그렇게 될 것입니다.

6B

- RepoB (단지 빠른 방법)에 repobrowser와 테스트, 그 정의는 내가 바로 Z:\repos\repoB를 클릭하고 TortoiseSVN -> repo-browser을 선택하고 트렁크 폴더에 아래로 탐색

올바른 것입니다. 그것은 다음과 같습니다. 그것은 옳은가? 나는 결코이 일을 해 본 적이 없기 때문에 나는 정말로 모른다. 트렁크 폴더 아래의 lib 폴더는 repo-browser에서 비어 있습니다.

enter image description here

Z:\Projects\workB\trunk\lib 폴더는 여전히 비어 있습니다. 오류 메시지는 'Z : \ Projects \ workB'를 재배치하라는 메시지를 나타내지 만 그 의미가 확실하지 않습니다.RepoB (단지 빠른 방법)에 repobrowser와 테스트, 그 -

6B

및 하나의 선택 체크 포인트를 REPO하는 작업 복사본 WorkB을 변경 커밋 -

+0

리포-의해 Broswer 보여 ** 트렁크 내부에 두 개의 ** LIB 폴더 - 하나의 외부 및 하나의 실제 (불필요) - 문제 다. repo의 현재 상태를보기 위해 트렁크 (완전히 재귀 적으로 외부로) 체크 아웃 –

+0

'Repo-Broswer는 트렁크 안에 두 개의 lib 폴더를 보여줍니다. 하나는 외부 파일이고 다른 하나는 진짜 (필요 없음) - 문제입니다. . 감사. repo-browser에서 실제'lib' 폴더 인'Z : \ Projects \ workB \ trunk \ lib'을 지우고'Z : \ Projects \ workB'에서'SVN Update'를 수행했습니다. 이제'Z : \ Projects \ workB \ trunk \ lib \ lib01.php'이 자동으로 생성되었습니다. 이것은 해결할 정말로 긴 여정이었습니다. – Teno

답변

3

당신은 적어도 하나의 필수 행동

6A 잊었다 정의가 정확합니다

왜,하지만 결코 사용하지 않습니다 ./ TSVN의 URL (예 : "trunk/lib"가 더 방탄 될 것입니다)의 경로 사양에 ./ 사용하지 마십시오. 그리고 순수 개인 습관 - 나는 결과로 내가 대신 하나의 트리 및 정의 외부와 루트에

리포 브라우저를 집계 REPO 내부의 여러 정의를 얻을 표시된 경우에도 마운트 지점에서 외부 정의

Repo-Browser

+0

감사합니다. 나는 그 질문을 갱신했다. – Teno

0

이 문제를 해결 한 사람은 workB의 작업 디렉토리에 가져 오기 폴더가 필요하지 않습니다.

Z : \ 프로젝트 \ workA \ 트렁크 \의 core.php

Z : 프로젝트 \ workA \ 트렁크 \ \ lib 디렉토리 \ lib01.php

Z : 프로젝트 \ \ workB \ 트렁크 \의 core_mod .PHP

Z :

이 있어야했다 \ lib 디렉토리 \ 프로젝트 \ \ workB \ 트렁크

,

Z : 프로젝트 \ workA \ 트렁크 \의 core.php \

Z : 프로젝트 \ \ workA \ 트렁크 \ lib 디렉토리 \ lib01.php

Z : 프로젝트 \ \ workB \ 트렁크 \의 core_mod.php

Z : 프로젝트 \ \ workB \ 트렁크

\ (NO Z : 프로젝트 \ \ workB \ 트렁크 \ lib 디렉토리)

+0

정말로 ** 이론적으로, 나는 테스트하기에는 게으르다. ** 진짜 lib ** 폴더와 ** 외부의 ** 내부에 ** 루트가있다. 1. LIB 폴더 2에 대한 외부 정의를 생성 할 것이다. 마운트 경로는 "."입니다. –

+0

흥미 롭습니다. 비록 나의 현재 이해 수준을 위해 약간 복잡하게 들린다. 아마도이 정보는 다른 고급 사용자에게 도움이 될 것입니다. 귀하의 의견을 보내 주셔서 감사합니다. – Teno

관련 문제