.NET 3.5로 작성된 다소 큰 클래스 라이브러리가 있으므로 .NET 4.0에서도 사용할 수 있도록 업그레이드하고 싶습니다.Mercurial : .NET 3.5 및 4.0 모두에 대해 존재할 클래스 라이브러리입니까?
그 과정에서 많은 오래된 잼을 없애고 TPL과 같은 새로운 클래스와 지원을 더 잘 활용할 수 있도록 코드를 다시 작성합니다. 따라서 클래스 라이브러리는 갈라 지지만 여전히 동일한 버그 수정이 동일한 방식으로 수행 될 수있을만큼 충분히 유사해야합니다.
Mercurial에서이 클래스 라이브러리를 어떻게 구성해야합니까? 그게 중요하다면 나는 Kiln (fogbugz)을 사용하고있다. 이식 또한,
이-
하나 개의 저장소에
- 명명 된 지점은, 다음 하나 개의 저장소에서 다른
- 이름 나뭇 가지 하나에서 모든 버그 수정을 이식 할 수 있지만, 나는이 모양을 생각 :
나는 생각하고 지저분한
- 별도의 저장소는 버그 수정을 다시 구현할 (또는 도와 비 수은 - integraded 비교할 도구를 사용하여)
당신이 무엇을 할 것입니까? (내가 가지고 있지 않은 다른 대안도 환영합니다.)
클래스 라이브러리는 꽤 많은 부분으로 나뉘어집니다. Linq와 비슷한 기능을하는 오래된 컬렉션 유형 코드의 일부 잔해가 있습니다. 나는 제거 할 것이고, Linq-methods를 사용하기 위해 다시 쓰는 코드를 사용할 것이다. 따라서 프로젝트 파일을 복사하고 #if NET40..#endif
섹션을 사용하는 것만으로는 효과가 없습니다. 또한 3.5 버전의 클래스 라이브러리는 많은 새로운 기능을 제공하지 않을 것이며, 대부분 중요한 버그 수정이 필요하므로 두 버전을 모두 "동등하게"유지하는 것은 실제로 필요하지 않습니다. 따라서 모든 파일을 별도로 복사하면 충분합니다. ,
- 두 가지를 작성 (또는 "기본"을 유지하고 다른 경로를 다른 분기를 만들 : @Rudi의 대답 here에서
편집, 내가 무엇을 그가 말하는 것은이 생각 "default"=. NET 4.0 및 "net35"=. NET 3.5 경우)
- 중요한 버그 수정이 발견되고 두 버전 이자형. 버전 3.5는 새로운 기능이 많이 생기지 않으므로 버그가 원래 버전에 있음을 의미합니다 (분기하기 전에)
- I 따라서 원래 버전에서 (또는 아주 가까이에) 다른 브랜치를 만들고, 내 버그 픽스를 구현 한 다음, 3.5 및 4.0 브랜치에이 팁을 병합하여 둘 다 업데이트한다.
나는 이것에 대해 생각할 것입니다. 변경 사항이 아니라 파일에서 Mercurial이 합병되는 것 같습니다. 즉, 버그 수정이 필요한 파일에 수행 된 모든 변경 사항이 초기 단계로 다시 병합 될 위험이 있지만이를 테스트해야합니다.
수은과 병합은 파일이 아니라 변경 세트에 대한 것입니다. Mercurial은 이름이 바뀌거나 복사 된 파일에 변경 사항을 적용하기도합니다. (복사본이 수은 ['hg cp'또는'hg mv']에게 전해지면 자동으로 이동 또는 복사본을 추적하지 않습니다). 지점 지점에 가깝다는 나의 요지는 무관 한 변화를 이끌어 내지 않는 것입니다. http://nvie.com/git-model에서 가능한 개발 모델 및 http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/을 확인하십시오. 수은 (그리고 자식) 가지에 대한 더 깊은 설명을 위해. http://stackoverflow.com/questions/2621610에도 많은 리소스가 포함되어 있습니다. – Rudi