문제

TFS에서 직접적인 상위 또는 하위가 아닌 분기에 병합할 수 있습니까?이것이 제가 그것을 사용하면서 경험한 것이기 때문에 대답은 '아니요'라고 생각합니다.그러나 승인 주기가 다를 수 있는 다양한 기능이 작업 중인 경우(예:기능 하나 ~할 것 같다 두 번째 기능 이전에 승인을 받아야 함).다음 정식 버전 이전에 출시할 수 있도록 일부 기능을 이전 분기에 병합해야 하는 프로덕션 분기가 있는 경우 이는 매우 어려워집니다.

우리의 현재 분기 전략은 트렁크(또는 메인라인이라고 부름)에서 개발하고 분기를 만들어 안정화하고 프로덕션으로 출시하는 것입니다.그런 다음 이 분기를 사용하여 핫픽스 및 기타 항목을 생성할 수 있으며 메인라인은 향후 기능에 대해 분기될 수 있습니다.

위에 설명된 것과 같은 시나리오를 완화하기 위해 달리 어떤 기술을 사용할 수 있습니까?

도움이 되었습니까?

해결책

나는 분기 구조를 설정한 방법을 다시 검토하고 싶을 수도 있다는 Harpreet의 의견에 동의합니다.그러나 실제로 이러한 유형의 병합을 수행하려면 근거 없는 병합이라는 방법을 사용할 수 있습니다.tfs 명령 프롬프트에서 실행됩니다.

Tf merge /baseless <<source path>> <<target path>> /recursive

근거 없는 병합에 대한 추가 정보를 찾을 수 있습니다. 여기

또한 나는 tfs 분기 구조를 구성할 때 이 문서가 매우 중요하다는 것을 알았습니다.Microsoft Team Foundation Server 분기 지침

다른 팁

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch

분기 전략을 다시 검토할 수도 있습니다.생산 지점은 어떻게 얻나요?개발 브랜치의 모든 코드를 병합하고 회귀 테스트를 수행한 다음 수정을 위해 프로덕션 브랜치를 생성하고 있습니까?아니면 트렁크에서 개발한 다음 안정화하고 릴리스할 프로덕션 지점을 만들고 있습니까?두 번째 방법은 설명하는 유형의 문제를 생성합니다.첫 번째 접근 방식을 사용하는 경우 트렁크는 테스트된 브랜치에 구축된 다음 병합된 항목에만 사용되어야 하며 훨씬 덜 자주 발생하게 됩니다.해당 접근 방식에서도 여전히 이 문제가 발생하는 경우 개발 노력이 매우 크고 분기 및 승격 계층이 포함된 상대적으로 복잡한 분기 전략이 필요할 수 있기 때문일 수 있습니다.

AFAIK 동일한 원본 폴더에서 분기가 생성된 경우에는 이 작업을 수행할 수 있습니다.

  • 트렁크/
  • 분기/ -/feaction1 (트렁크에서 분기) -/feaction2 (트렁크에서 분기)

이렇게 하면 feature1과 feature2도 병합할 수 있습니다.

TFS에 대한 분기/병합 경험으로 인해 더 많은 것을 원하게 되었습니다.SVN만 있었으면 좋았을 텐데요.

예, 근거 없는 병합을 수행할 수 있지만 명령줄(tf.exe)에서만 가능합니다.

TFS를 사용하면 상위/하위가 아닌 분기와 병합할 수 있습니다. 이를 근거 없는 병합이라고 합니다.다음 링크를 참조하세요.

MSDN에서

CodePlex를 통해 TFS 팀에서

우리는 일반적으로 개발 브랜치에서 주요하거나 불안정한 변경을 수행합니다.우리 제품 중 하나의 주요 릴리스가 가까워지면 거의 모든 변경 사항이 지점에서 수행됩니다.

저는 TFS 전문가와는 거리가 멀지만 형제를 병합할 수 있다고 생각하며, 근거 없는 병합은 아니라고 생각합니다.

우리는 기능(브랜치 이름 "feature")을 위해 메인 브랜치(브랜치 이름 "main")를 분기한 다음, 메인 브랜치(브랜치 이름 "dev")에서 분기된 브랜치에서 일부 작업이 필요했습니다.나는 기능과 개발 브랜치가 같은 부모로부터 왔기 때문에 형제로 간주할 것입니다.기능을 dev에 병합했고 모든 파일(14000)이 병합으로 표시되었고 일부는 병합, 편집으로 표시되었습니다.취소할 수 없어서(Visual Studio가 중단될 수 있음) 병합을 수락했습니다.그런 다음 dev를 main에 병합한 다음 main을 기능으로 가져왔고 다시 14000개의 파일이 병합 대상으로 표시되었습니다.정말 속상했고, 이런 일이 계속될까 두려웠어요.

이 시점에서 우리는 테스트 프로젝트를 수행했습니다.메인을 설정한 다음 메인에서 개발 및 기능을 분기했습니다.동일한 결과로 위의 단계를 반복했습니다.기본 기능에서 기능으로의 병합이 완료되면 이후의 모든 병합에는 편집된 파일만 표시됩니다.

작은 테스트 후에 메인에서 기능으로의 병합을 완료했습니다.테스트와 마찬가지로 병합에는 이제 편집된 파일만 표시됩니다.우리는 개발을 기능으로, 기능을 메인으로, 메인을 개발로 갈 수 있습니다.

분기할 때 모든 파일 날짜가 수정되었음을 확인했습니다.어쩌면 이것이 문제일까요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top