2012-11-25 2 views
1

저는 Orchard CMS을 사용하는 프로젝트에서 일하고 있습니다.로컬 변경 사항을 적용하여 OSS를 새 버전으로 업그레이드하는 방법은 무엇입니까?

우리는 CMS를 위해 우리 자신의 일부 모듈과 테마를 만들었고 Orchard 소스에서도 코드를 약간 변경해야했습니다. 물론 이것은 CMS 또는 그와 비슷한 것을 업그레이드 할 때 이러한 변경 사항이 사라지기 때문에 매우 좋은 습관은 아닙니다. 그러나 고객이 원하는대로 기본 기능이 작동하지 않았기 때문에 이러한 변경은 불가피합니다.

이제 모든 변경 사항은 1.5.1 이전 버전에서 변경되었으며, 이제는 새 버전 (현재 1.6)으로 이동해야합니다. 이렇게함으로써 우리는 과수원 출처에 대한 모든 변화를 잃을 것입니다.

저는 이미 기본 소스에 대한 모든 변경 사항을 1 개의 변경 세트에 묶어서 새 CMS 버전으로 병합하는 작업을 조금 더 쉽게 만들었습니다. 그러나 이것은 내 생각에 정말 좋은 워크 플로우는 아니다.

프로젝트를 포크하고 포크에서 변경을 수행 할 수 있지만 포크를 업그레이드 할 때 변경 사항을 모두 병합해야하므로 업그레이드 할 때 동일한 어려움이 있습니다. 변경 사항이 마스터 저장소에서 변경되지 않거나 모든 사용자가 변경 사항을 좋아하지 않을 가능성이 있기 때문에 풀 요청 생성은 실제로 옵션이 아닙니다.

이 프로젝트에서 사용할 수있는 다른 일반적인 방법이 있습니까?

참고 : 지금 제가 작업하고있는 프로젝트에 대해 묻고 있지만 일반적으로 프로젝트 소스를 변경해야하는 OSS 프로젝트 작업 방법을 알고 싶습니다. 그리고 한동안 최신 버전을 받고 싶습니다.

답변

2

오차드 저장소를 복제하는 한 언제든지 변경 사항을 가져올 수 있습니다. 최신 병합 이후 과수원 레포에서 변경된 파일을 변경 한 비교 도구로 일부 충돌을 해결해야 할 수도 있습니다. 그것은 상대적으로 고통이지만.

새 버전을 출시 할 때 bitbucket에 내 레포 사본을 보관하고 과수원 저장소에서 가져옵니다. 일반적으로 솔루션 파일의 충돌을 해결해야하며 여기 저기에 몇 가지 사항을 해결해야합니다. 이러한 충돌이 해결되면 업데이트 할 때마다 다시 처리 할 필요가 없습니다. 그것은 당신과 오차드가 모두 변화하고있는 파일이있는 곳에서만 일어납니다. (솔루션 파일과 유사)

+0

소리가 좋은 워크 플로우와 같습니다. 특정 버전의 repo를 가져오고 새 (주요) 버전이있을 때 새 버전을 가져옵니다. DVCS는 모든 커밋이 개별적으로 수행되는지 확인합니다. 병합은 변경된 파일에만 필요합니다. 감사합니다. –

관련 문제