2011-03-02 5 views
3

내 프로젝트를 "수정 - 제어"하기 위해 SVN 저장소를 설정하려고합니다. 현재 내 작업 공간은 다음과 같다, 나는 그런 식으로 그것을 유지하려는 : 수정 관리에서 내 자신의 외부 라이브러리 구성

\workspace 
    \myPrj1 
    \myPrj2 
    \myLibBase 
    \myLibA 
    \myLibB 

myPrj1

myLibBasemyLibA을 사용하고 있습니다. myPrj2myLibBasemyLibB을 사용하고 있습니다. 더 많은 프로젝트가 생겨나 고, 라이브러리를 사용할 것입니다. 나는 도서관을 직접 쓴 적이 있고 쓰고있다. 프로젝트 중 하나에서 작업하는 동안 나는 프로젝트뿐만 아니라 라이브러리를 향상시키기 위해 끊임없이 노력했다. 즉, 버그를 발견하고 기능을 추가하는 등의 작업을 수행했다.

어떻게 이것을 리포지토리에 구성 할 수 있습니까?

이것은 제 생각이지만 최선의 해결책입니까?

  1. 저는 항상 작업 영역을 프로젝트 루트로 사용합니다.

    :
  2. 난 항상 프로젝트가 SNV 프로젝트 폴더에 사용하는 라이브러리
  3. 난 항상 라이브러리

그런 다음 저장소에 위의 예는 다음과 같이 보일 것이다에 대한 추가 SNV 프로젝트를해야합니다 포함됩니다

\repository  
    \myPrj1 
     \myPrj1 
     \myLibBase 
     \myLibA 
    \myProj2 
     \myProj2 
     \myLibBase 
     \myLibB 
    \myLibBase 
     \myLibBase 
    \myLibA 
     \myLibA 
    \myLibB 
     \myLibB 

프로젝트와 관련된 ...이

처럼 갖는

프로젝트의 작업 복사본을 체크인 할 때마다 항상 라이브러리 체크인을 포함한 모든 소스가 있습니다. 따라서 내가 리비전을 체크 아웃 할 때, 나는 체크인 할 때와 같이 항상 모든 소스 (라이브러리 포함)를 얻습니다. 라이브러리와 관련된

... :

는 또한 내가 체크인 할 수 있습니다 프로젝트 SVN 라이브러리에서 라이브러리의 작업 복사, 나는 그것이 좋은 안정 버전이라고 생각합니다. 그런 다음 새 프로젝트를 만들 때 해당 버전을 체크 아웃 할 수 있습니다.

누군가가 이것이 좋은 생각인지 확인할 수 있습니까? 모범 사례? 더 나은 접근 방법이 있습니까? 이 항목에 대한 설명서/자습서/..를 찾을 수 있습니까? 웹에서? 책에?

답변

2

이 당신이 찾고있는 무엇인가 보인다 하위 디렉토리가 저장소의 여러 위치 또는 아마도 다른 저장소에서 온 것일 수 있습니다. svn checkout을 사용하여 달성하려는 중첩 된 작업 복사본 구조를 손수 작성하여 이러한 시나리오를 설정할 수 있습니다. 그러나이 레이아웃이 저장소를 사용하는 모든 사용자에게 중요하며 모든 다른 사용자는 사용자가 수행 한 것과 동일한 체크 아웃 작업을 수행해야합니다. "

기본적으로 원하는대로 작동합니다. 어떤 이유로 든 다른 개정판에 있어야 할 때 종속성의 사본을 여러 개 보유하는 것이 좋습니다.

1

그것은 당신의 라이브러리 두 개 이상의 사본을 가지고 이해하지 않는 것 저장소에 (의이 myLibBase을 가정 해 봅시다) - 버전 컨트롤의 트랙을 유지하면서, 당신은 당신의 코드 단일 사본을 편집 도움이 모든 변화. 당신이 (정확하게 이해할 수 있다면) 제안하는 방식으로 각 프로젝트마다 버전 번호가 myLibBase이 될 것입니다. 즉, 프로젝트에서 라이브러리를 변경하면 2 :

중 하나가됩니다.
  1. 다른 버전의 라이브러리가 있습니다. 동일한 이름을 사용하십시오.
  2. 버전이 다른 모든 복사본을 동일하게 편집해야합니다.

어느 것이 나에게 이해가되지 않습니다.

왜 각 라이브러리의 버전이 지정된 복사본이 하나도 없으며 프로젝트를 체크 아웃 할 때이 프로젝트에서 필요로하는 라이브러리도 체크 아웃해야합니까? 즉, 다른 프로젝트를 체크 아웃하지 않으려면 전체 작업 영역을 체크 아웃 할 수 있습니다. Externals

발췌 :. "때로는 서로 다른 체크 아웃의 수 중에서 만들어 작업 복사본을 만드는 데 유용 예를 들어, 다른 할 수 있습니다

+0

나는 다른 프로젝트를 체크 아웃하는 것을 피하고 싶다. 그래서 나는 repo에서 전체 작업 공간을 원하지 않는다. 귀하의 다른 제안을 통해, 프로젝트가 의존하는 도서관을 체크인하는 것을 결코 잊지 못할 것입니다. – AudioDroid

+0

모든 라이브러리를'Libs' 폴더에 넣고 항상 체크 아웃 할 수 있습니다. 게다가, 당신의 프로젝트가 컴파일되지 않을 때, 당신은 기억할 것입니다 :). 그렇게하기위한 '기본 제공'방식에 대해 생각해 보면, 필자는 대답을 편집 할 것입니다. –

+0

:-) 감사합니다. 지금은 더 많은 아이디어를 기다리고 있습니다 ... – AudioDroid

관련 문제