2010-06-16 4 views
0

프로젝트를 자체 버전 관리하에 있다고 가정합니다. 그런 다음 제 3 자 lib에 약간의 변경을 가하고 싶습니다. 그래서 프로젝트의 나머지 부분과 함께 내 버전 관리하에있는 lib 프로젝트의 소스에 어딘가에 넣고 싶습니다. 그러나 타사 라이브러리는 다른 버전 제어 소프트웨어 시스템의 다른 곳에서 유지 관리됩니다. 내가이 라이브러리를 포크로 만들기 때문에 나중에 바깥 세상에서 커밋 된 업데이트를 가져 오려고합니다.타사 라이브러리 유지 보수

그런 상황을 구조화하는 올바른 방법을 모르겠다 ... 나는 버전 관리 기능을 가진 제 3 자 lib를 가지고 있고 내 버전 제어 설정 내에서 모두 중첩되어 있나? 또는 다른 곳에서 유지 관리하고 파일을 심볼릭 링크하거나 심지어 외부에서 업데이트를 가져올 때 파일을 복사하여 내 프로젝트에 붙여 넣을 수 있습니까?

+0

라이브러리의 원래 관리자에게 패치를 제출하고 상황을 완전히 피하는 것이 더 좋을 수도 있습니다. –

답변

0

대개 내가 수행하는 타사 라이브러리 저장소의 로컬 복사본이 있습니다. 그러나 로컬 복사본은 프로젝트를 빌드하는 트리의 일부가 아닙니다. 내 프로젝트 repo에서, 나는 최종 lib 바이너리 내 코드에 따라 달라집니다 (및 해당 헤더, C++의 경우).

이 구조를 사용하면 정기적으로 lib 업데이트를 가져 와서 평가할 수 있으며, 안정적인 lib 비트로 프로젝트를 빌드 할 수 있습니다. 라이브러리에 대한 새로운 변경 사항이 내 프로젝트를 불안정하게 만들지 않을 것이라는 확신을 갖게되면 프로젝트 레포를 새 바이너리로 업데이트합니다.

물론 프로젝트 빌드의 일부로 직접 라이브러리 소스를 포함 할 수도 있습니다. 끌어 오기 업데이트를 자동화 할 수도 있습니다. 그러나 이렇게하면 프로젝트의 안정성이 도서관 관리자에게 자비를받습니다. 소스 또는 동작의 급격한 변화가 프로젝트 진행에 악영향을 미칠 수 있습니다.