2010-03-15 5 views
4

svn repo에있는 코드베이스의 로컬 작업 복사본을 지금 체크 아웃했습니다. 이클립스를 사용하여 개발 한 커다란 Java 프로젝트입니다. 물론 이클립스는 모든 바이너리 파일이 [프로젝트 루트]/bin으로 끝나는 방식으로 모든 것을 즉시 빌드합니다. 개발을 위해 완벽하게 괜찮습니다.하지만 빌드 서버에서 빌드를 실행하면 상당히 다릅니다 (메이븐 빌드, 바이너리는 다른 디렉토리 구조로 끝납니다).git 작업 영역과 svn 작업 영역 모두의 작업 영역을 가질 수 있습니까?

때로는 빌드를 디버깅하기 위해 로컬 개발 시스템에서 빌드 서버 환경을 재 작성해야합니다. 그래서 새로운 작업 공간에 완전히 새로운 작업 사본을 다운로드하고 거기에서 빌드를 실행하게됩니다. 모든 빌드 아티팩트가있는 개발 작업 영역이 복잡해지고 작업 복사본이 더러워집니다. 물론 때로는 아직 체크하지 않으려는 코드로 전체 빌드를 실행하는 데 관심이 있으므로 "개발"작업 영역을 "빌드"작업 영역으로 수동으로 복사합니다. 실제로 필요하지 않은 많은 파일을 복사하는 것 외에도 (오래된 것을 덮어 씌우는 것만으로)이 또한 내 svn 메타 데이터를 망가 뜨 렸습니다. 즉, "build"의 변경 사항을 확인할 수 없습니다. workspace "작업 복사본을 작성하고, 코드를 다시 다운로드하여 알려진 상태로 되돌려 놓아야하는 경우가 종종 있습니다.

그래서 내 svn 복사본을 로컬 git repo를 만든 다음 svn 작업 복사본/git master에서 개발중인 코드를 로컬 빌드 작업 영역으로 "체크 아웃"한다고 생각합니다. 그런 다음 빌드를 변경하고 변경 사항을 되돌릴 수 있으며 빌드 작업 영역에서 버전 관리 작업 복사본의 모든 이점을 누릴 수 있습니다. 그런 다음 빌드를 변경해야 할 경우 git 마스터 (svn 작업 복사본이기도 함)로 다시 밀어 넣은 다음 주 svn 저장소로 체크인하십시오.

|-------------| 
|main svn repo| <------- |---------------------| 
|-------------|   |svn working copy  | <------- |--------------------| 
         | (svn dev workspace/ |   | non-svn-versioned | 
         | git master)  |   | build workspace | 
         |---------------------|   | (git working copy) | 
                  |--------------------| 

는 너무 많은 사람들이 등, 모든 것을 변경할 너무 비용이 많이 드는, SVN을 사용하여 우리는 지금 주 REPO로 SVN 함께 붙어있어, 큰 회사를 분명히 좋을 것이다 자식에 이르기까지 모든 스위칭,하지만.

BTW, 나는 이클립스와 모든 것에 대한 메이븐 플러그인이 있다는 것을 알고있다. 나는 주로 git 작업 복사본과 svn 작업 복사본 인 작업 영역을 유지하는 방법이 있는지 알고 싶어한다. 실제로 어떤 분산 버전 제어 시스템 (아마도 hg 가능성?) 작동합니다. 조언? "개발"빌드 프로세스와 "프로덕션"빌드 프로세스를 모두 관리해야하는 상황을 어떻게 처리합니까?

답변

1

git repo (svn repo의 사본)를 다른 git repo로 복제하는 아이디어가 효과적 일 수 있습니다.
Git1.7.0부터 체크 아웃을 원하지 않는다면이 접근법을 sparse checkout과 연결할 수 있습니다. 첫 번째 Git repo의 모든 것.

관련 문제