2009-05-13 3 views
1

시작하기 전에 : 저는 스택 오버플로를 포함하여 많은 포럼에서 많은 시간을 보냈습니다. 그렇지만 svn 구성에 관한 많은 질문이 있습니다. Google 검색 및 문서 읽기 나는 몇몇 Subversion 책을 소유하고있다.) Subversion에서 코드 기반을 구성하는 좋은 방법을 아직 찾지 못했습니다. 우리는 현재 개정 관리 시스템으로 RCS를 사용하고 있습니다. 모든 것은 1 RCS 디렉토리에 저장되어 있습니다 - 미안하지만, 저도 압니다. 그래서 나는 더 나은 것을 향해 노력하고 있습니다. Subversion을 많이 사용했기 때문에 기능과 작동 방식을 알고 있습니다. 나는 완전히 프로그래밍 관련이 아니기 때문에 몇 달 동안이 질문을 주저했다. 그러나 해결책을 찾지 못했기 때문에 내 질문에 더 좋은 곳을 물었다.수천 개의 요소로 구성된 Subversion 저장소 구성하기

내 머리 속에는 "프로젝트"라는 파괴 용어가 복잡합니다. Subversion에서 Java 프로젝트를 관리하고 싶다면 Jar 파일로 결합 된 모든 Java 파일을 "Project"로 간주 할 수 있습니다. 모두 함께 있습니다. 그러나 우리 환경에서는 "프로젝트"가 무엇인지 정의 할 수있는 쉬운 방법이 없습니다. 우리는 4,000 개가 넘는 프로그램을 보유하고 있으며 이들 모두는 서로 독립적입니다. 대부분은 쉘 스크립트 또는 펄 스크립트입니다. 몇몇 스크립트는 일반적인 "유틸리티"또는 "라이브러리"스크립트를 사용하지만, 대부분의 코드 객체는 독립적입니다.

우리 환경에서 하나의 "프로젝트"는 프로그램 A, B 및 C와 구성 파일 AA를 포함 할 수 있습니다. 다른 프로젝트는 C, D, E 프로그램과 BB 파일을 사용할 수 있습니다. 그러나 또 다른 프로젝트는 설정 파일 AA 또는 프로그램 B를 변경할 수 있습니다. 그룹에 속한 프로그램이나 파일을 분류 할 방법이 없습니다. 이 때문에 - 나는 코드를 파괴로 구성하는 방법을 모릅니다. 모든 것을 마스터 프로젝트 트렁크에 넣을 수 있지만 작업 복사본을 체크 아웃하면 4,000 개가 넘는 요소를 모두 체크 아웃해야합니다.

일부 컨텍스트를 제공하기 위해 데이터웨어 하우스 용입니다. 웨어 하우스 기능을 만들기 위해서는 4,000 개 이상의 코드 요소가 모두 필요합니다. 어쩌면 특정 비즈니스 요구 사항에 따라 몇 가지 요소에서 액세스되는 열의 변경이 필요하고 다른 비즈니스 요구 사항은 다른 일부 요소 (다른 프로젝트의 일부 요소와 동일 할 수도 있음)를 변경해야 할 수도 있습니다.

어쩌면 Subversion이 우리에게 적합하지 않을 수도 있습니다.하지만 작동 할 수 있다고 믿어야합니다. 우리는 이미 우리의 웹 코드와 자바 프로그램을위한 Subversion 서버를 가지고 있으며 쉽게 정의 된 프로젝트가 있기 때문에 훌륭하게 작동합니다. 나는 주 코드 라이브러리를 구성하는 방법을 알 수 없다.

바라건대 그 중 일부는 의미가 있습니다 ... 미리 감사드립니다!

답변

1

externals 속성을 확인할 수 있습니다. 이 속성이 연결된 디렉토리의 체크 아웃을 정의 할 수 있으며 저장소의 다른 위치에서 해당 디렉토리의 하위 디렉토리를 체크 아웃합니다.

각 구성 요소에 대해 "실제"디렉토리를 만든 다음 필요한 구성 요소를 체크 아웃하기 위해 외부를 사용할 각 프로젝트마다 별도의 디렉토리를 만들 수 있습니다.

+0

다소 유망 해 보입니다. 유일한 문제는 요소의 동일한 그룹 ("외부"속성으로 그룹화 됨)이 그룹으로 다시 작업 할 필요가 없다는 것입니다. 해당 그룹의 요소는 다른 그룹의 요소와 함께 작업 할 수 있습니다. 어쩌면 "일회성 외부"가 우리가 필요로하는 것일 수 있으므로 "프로젝트"로 몇 가지 요소를 체크 아웃 할 수는 있지만 그 다음 "프로젝트"를 결코 다시 사용하지 마십시오 ... – BrianH

+0

얼마나 많은 일 - 그때가 시간이야. 매번 개발자가 매번 고유 한 조합을 필요로하는 경우 외부와 잘 맞지 않습니다. 더 많은 개발자가 동일한 구성을 사용할 경우 프로젝트 시작시 디렉토리를 만들 수 있으며 더 이상 필요하지 않은 경우 삭제할 수 있습니다. – Komat

+0

대부분의 경우 각 개발자는 매번 고유 한 조합을 필요로합니다 ... 동일한 요소 그룹이 반복해서 필요할 것입니다. – BrianH

0

단순히 파일을 폴더 구조로 정리하기 전에 단순히 Subversion 저장소에 덤프하려고합니다.

귀하의 문제는 주로 기존 파일의 해체에 있다고 생각합니다. 논리적으로 시스템을 세그먼트로 나눌 수있는 방법을 찾으면 사람들이 파일 덩어리 만 체크 아웃하도록 허용하는 것이 더 쉬울 것입니다 (논리적 그룹화가 될 것입니다).

Subversion은 실제로 파일 시스템을 미러링합니다. 따라서 파일 시스템에서 꽤 보이지 않는 경우 Subversion은 파괴되지 않을 것입니다.

파일을 재구성하지 않으려면 파일 시스템의 위치가 아닌 태그를 기준으로 체크 인/체크 아웃 할 수있는 버전 제어 시스템을 찾을 수 있습니다.

+0

본인의 현재 라이브러리가 엉망입니다. 유일한 문제는 파일을 쉽게 나눌 수있는 방법이 없다는 것입니다. 몇 개의 부서가있을 수 있지만, 우리 프로젝트의 일부는 각 그룹의 단일 구성 요소로 작업하게 될 것입니다. 그리고 나서 우리는 같은 보트에서 다시 돌아온 것 같아요. – BrianH

+0

공통 폐쇄로 그룹화합니다. 이것은 객체 지향 설계의 객체 멘토 (Object Mentor)의 원칙에 잘 설명되어 있습니다. 함께 변화하는 것들을 그룹화해야합니다. –

관련 문제