우리 프로젝트는 svn에서 git까지 converted입니다. 개발자는 현재 git-svn
을 사용하고 있지만 으로 이동하면 더 많은 전력을 활용할 수 있습니다. 위시리스트 : 자료 주류 및 준비 작업 사이svn과 동기화되는 안정적인 분기가 여러 개인 작업 흐름
- 강력한 분기, 예컨대 주제/기능 분기
- 분리, 병렬 때로는 여러.
- 린 & 평균과 안정적인 젠킨스-CI 설치 - 최소한의 유지 보수
- 짧은 반복, QA 매 2 주마다에 개발팀 자료 (각 릴리스 후 작업의 설정을 변경하는 대); 반드시 외부에있을 필요는 없습니다
- 동일한 소스에서 여러 개의 제품 (P1..P3)을 독립적으로 출시했습니다. 변화하는 압력으로
- "더 큰 팀"에 더 많은 캐주얼, 비 git 사용자가 있습니다 ... 그들은 S&U :)입니다.하지만 우리는 그들에게 최소한 1 개의 지점 (트렁크)에 대한 액세스 권한을 부여해야합니다. 그들의 공헌은 몇개의 dirs로 제한되어 있으므로 여기에 위험을 제기 할 필요는 없습니다.
다음 전략을 사용할 수 있습니까?
- 개발 : 개발 일어나는 주류 지점, 일품의 자식 흐름
- 안정적인 제품 지점 : 제품 1 .. 제품 3을. 이들 중 하나 이상이 dev에서 배포 될 때 메인 라인에서 병합됩니다. git flow에서 'release start 1.4.3'과 유사하지만 영구적 인 브랜치가 될 것입니다. 릴리즈는 여기에 태그를 추가 한 다음 다시 병합하여 개발합니다. 이 점은 git-flow에서 master와 같이 안정적 일 것이고, 그 중 몇 개는 안정적 일 것입니다.
- 대신 git-svn을 직접 사용하지 마십시오. 대신 미러를 밀거나 당깁니다. 필요한 경우, 기능 브랜치를 사용할 수도 있습니다.
- merge svn/trunk -> development. Svn은 가끔 고립 된 체크인을 할 것입니다. 그래서 젠킨스 직업에 의해 자동화를 계획하고 수동으로 병합 할 수 있도록 사람들에게 알립니다.
- merge development-> svn/trunk : 정기적으로 (예 : 매일) 일괄 처리 모드에서. 이것은 아마 최소한 (최소한 초보자를위한) shakiest 부분 일 것입니다. 그것을 잘 설명 및 자동화있어 주로로 - rebase or some reset wizardy
- CI 설정 같은 것을 계획하는 것은 간단한 것, 예를 들어, 테스트 및 디바이스가 메인 라인을 구축, 공식 제품에는 자신의 제품 가지
Git-Flow 유혹 오프 구축합니다. 그러나 그것은 내 경우에 완벽한 일치처럼 보이지 않는다. 주로 잠재적으로 병렬 릴리스, 여러 제품 라인 및 CI aspects이 원인입니다.
모든 해당 의견은 대단히 감사하겠습니다.
svn-> git 동기화 (포인트 4)에서 다시 간단하게 들립니다. 간단한 병합입니다. 다른 방법은 (# 5) 덜 역사적 선형을 만들 필요가 있습니다. 그것은 본질적으로 팀 수준에서 git-svn (여기서도 복잡한 병합을 수행하는 데 사용)과 같습니다. IMHO의 핵심은 규칙적이고 일관되게 그것을하는 것입니다. 정치를 제외하고 당신은 어떤 종류의 고통을 기대합니까? (사람들이 배우기에 행복해야한다는 데 동의하더라도, 지금 당장이 시간이 없다고 주장 할 수 있으며, 어쨌든 점진적으로 배포하는 것을 선호하며, 정치에 섞어서는 안된다.) – inger
작업 흐름을 공유해 주셔서 감사합니다. 계단식 릴리즈 분기와 폭포 합병은 내 맥락에 적용 할 수없는 경우에도 흥미 롭습니다. 귀하의 경우에는 릴리스 지점이 유지 보수 목적으로 사용되는 것으로 보이며, 내 제품은 병렬 출시/경화 + 및 제품 중심의 깨끗한 역사를 제공합니다. – inger
브랜치가 실제로 평행하다면 가능한 한 피쳐 브랜치를 사용하고 어떤 피쳐가 어떤 제품 브랜치에 들어가야하는지 등을 고려해야합니다. –