2012-05-10 3 views
1

약 1K 명의 활성 사용자가있는 중간 규모의 웹 사이트를 작성하고 유지 관리해야합니다.포크를 유지하거나 패치와 Makefile을 유지해야합니까?

저는 Ubuntu, Python, Django, jQuery, Less, twitter-bootstrap 등의 기술과 함께 사용하는 모든 종속성과 같은 기술을 사용합니다. 나는 인터넷에서 다운로드 한 JS 라이브러리와 같은 외부 구성 요소의 절반을 가지고 있으며 GitHub에서 변경해야 할 몇 가지 프로젝트가 있습니다. 내가 설치 한 파이썬 프로젝트 중 일부는 pip입니다.

온라인으로 다운로드 한 JS 라이브러리를 변경했으며 모든 것이 이제 저장소에 있습니다. 분기 된 프로젝트는 저장소 내 git 하위 모듈로 사용할 수 있습니다.

1.5 년의 개발 끝에, 나는 이것이 끔찍한 접근 이었다는 것을 알고 있습니다. 모든 구성 요소를 업그레이드하면 잠재적으로 엉망이 될 수 있습니다. 필자는 버전을 추적하기가 어려우며, 핏이나 자바 스크립트 라이브러리 등으로 설치된 Python 패키지 일 수도 있습니다. 왜냐하면 그것이 신의 지식을 회귀시킬 수 있기 때문입니다.

지난 밤 나는 내일은 없다는 것을 포기하지 않고 Makefile을 통해 적용된 일련의 패치를 유지해야한다고 생각하기 시작했습니다.

나는 더 나아 졌습니까? 너 생각은 뭐니?

미리 감사드립니다.

답변

0

나는 최근에이 경험이있다. 필자는 실험실에서 파일을 사용하는 언어의 최신 버전으로 이식하기 위해 사용하는 파일 집합을 수정했지만 동시에 다른 사람들은 자신의 필요에 맞게 파일 버전을 사용자 지정했습니다. 그래서 내가 필요로하는 것은 커스터마이즈 된 버전들 위에 나의 변화를 패치하는 방법이다.

내가하고있는 방법은 git 또는 Make (둘 다 매일 사용)를 사용하는 것이 아니라 OS X의 시각적 인 FileMerge 유틸리티를 사용하는 것입니다. 커스텀 코드와 코드의 차이점이 처음에는 코드의 기본값이된다고 가정하고, 모든 변경 사항을 검토하고, 커스터마이징 된 코드에 속한다면 코드에 적용합니다.

그것은 수동이지만, OS X의 시각적 인 FileMerge 유틸리티를 사용하면 상대적으로 빠르고 고통스럽지 않습니다. 상대적으로 고통이 없다는 것은 마우스 오른쪽 버튼으로 4 개의 화살표 키를 사용하지 않고 마우스를 사용하지 않고 전체 병합을 수행 할 수 있음을 의미합니다. 솔직히, 이런 종류의 패치가 자동화 될 수 있는지 확실하지 않습니다. 병합 작업을 할 때 어떤 종류의 자동화 된 패치 시스템에 쉽게 맡겨질 수 있을지에 대해서는 결정을 내려야했습니다.

그렇다면 git의 병합 알고리즘이 성공적으로 병합 된 것에 놀랐습니다.

위대한 질문입니다. 게시물 주셔서 감사합니다. 그리고 이것이 이것이 확실한 답이 아니라는 것을 압니다. 그러나 이것들은 제가 현재 가지고있는 사안에 대한 것입니다.

관련 문제