2016-07-27 2 views
0

로컬 sbin 저장소를 로컬 개발자 컴퓨터의 git 저장소로 마이그레이션했습니다. 그래서 주인은 현재 svn 트렁크를 추적 중입니다. 나는 svn trunkdevelop branch로하고 싶었고, git에서 브랜치의 이름을 변경함으로써 달성했다.git을 svn과 동기화하고 동시에 git repo를 변경할 수있는 방법

git svn fetchgit svn rebase을 발행하여 svn 트렁크에서 변경 한 내용을 git에 동기화합니다. 이것은 정말로 잘 작동하고 있습니다. 나는 아래와 같이 내 자식의 repo 폴더 구조를 수정할

s-online/ 
    ├── .git 
    └── Online    
     ├── config 
     │   ├── build 
     │   ├── dataload 
     │   ├── export 
     │   ├── http 
     │   ├── search 
     │   ├── web 
     │   └── webservice 
     └── workspace 
      ├── data 
      ├── logic 
      ├── site 
      ├── stores 
      └── tools 

아래로

폴더 svn의 환매 특약의 구조 때문에 자식의 repo에서입니다. 따라서 기본적으로 온라인 폴더 아래의 작업 공간 폴더 안의 모든 항목을 이동하십시오.

s-online/ 
    ├── .git    
    └── data 
    ├── logic 
    ├── site 
    ├── stores 
    └── tools 
    ├── config 
     ├── build 
     ├── dataload 
     ├── export 
     ├── http 
     ├── search 
     ├── web 
     └── webservice 

일부 개발자들은 여전히 ​​SVN에 커밋 다른 개발자가 걸릴 것입니다 반면 완전히 이눔로 전환 새로운 개발을위한 오늘의로 자식을 사용하기 시작합니다.

그때까지, 도전은 얼마 동안 svn 트렁크에서 내 자식 repo (수정 된 폴더 구조)로 위임을 동기화 할 수 있어야합니다.

다음에 git svn rebase을 수행하면 폴더 구조에 대한 내 변경 사항을 svn 커밋 상단에 적용해야하므로 rebase가 잠시 걸립니다. 그러나, svn에 위임 한 모든 파일들 (git에서 폴더를 재구성 한 이후로)은 리베이스하는 동안 모든 파일에 충돌이 발생합니다.

내가했던 모든 일은 git에서 폴더 구조를 재구성하는 것만 큼 왜 svn에 커밋 된 모든 파일에 충돌이 있는지 확실하지 않습니다.

누락 된 것이 있습니까?

답변

0

누락 된 내용이있을 수 있지만 일반적으로 svn에 대한 활성 커밋이있는 한 일반적으로 구조와 파일을 동기화 상태로 유지해야합니다. 미리 합병하지 않는 한 git svn rebase을 복잡하게 만들 수 있으므로 git 쪽에서 병합 커밋을 자제하는 것이 좋습니다.

+0

감사합니다. 가장 간단한 방법이라고 생각합니다. – Joker