2012-02-14 3 views
2

전체 프로젝트에서 중요한 구성을 포함하는 구성 파일이 있습니다 (예 : 저장소를 복제하는 모든 사람이 동일한 conf를 가짐) 및 일부 로컬 구성 (저장소를 복제하는 모든 사람이 이 파일의 내용을 사용자 정의하려면 로컬 사용자 정의를 추적하고 싶지 않습니다.추적 할 수없는 부분이있는 구성 파일

이 파일은 고유합니다. 소프트웨어가 여러 파일을 사용하도록 구성 할 수없고 어떤 종류의 include 지시문도 지원하지 않습니다.

힘내와 함께이 시나리오를 처리 할 수있는 방법이 있습니까?


나는이 파일의 무대 부분에 git-add -p 또는 -i를 사용할 수 있지만 그것은 좋은 해결책이 아니다 : 그것은 너무 오류가 발생하기 쉬운의 꽤 많은 작업이 필요하고 git-status는 항상 로컬에서 수정이 구성 파일을 표시합니다.

어쩌면 나는 몇 가지 git 후크를 사용할 수 있습니까?

+0

"configname.template"구성 템플릿을 올바른 글로벌 옵션 세트 만 체크인하고 사용자에게 실제 구성 이름으로 복사하도록 요청할 수 있습니까? 어쨌든 지역 옵션을 설정해야하므로이 옵션을 묻는 것은 많은 번거 로움이 있어서는 안됩니다. – Janne

+0

@ Janne : 그 순간에 내가하고있는 것이 바로 'config.global' (추적 됨) 파일과'config.local' (untracked) 파일입니다. 사용자는 둘 중 하나가 수정 될 때마다'config.local' 만 수정하고'cat config.global config.local> config'를 실행해야합니다. 문제는이 방법으로 구성 파일이 실제로 git에 의해 추적되지 않으며 사용자가'config.global'이 업데이트 될 때 명시 적으로주의를 기울여야하고'config' 파일을 수동으로 업데이트해야한다는 것입니다. 이 시나리오도 오류가 발생하기 쉽습니다. – peoro

+0

그래서 글로벌 설정이 변경되기 쉽니 까? 나는 git에서 이것을 처리하는 좋은 방법을 보지 못한다. 실제 응용 프로그램에서 래퍼 스크립트를 사용하는 것과 같은 방법을 사용하면 전역 구성 파일의 변경 사항을 먼저 확인한 다음 응용 프로그램의 적절한 권한으로 전달하기 전에 로컬 구성 파일과 병합 할 수 있습니다. 정확하지는 않지만 적어도 오류가 발생하기 쉬운 수동 개입을 제거하십시오. – Janne

답변

0

실제로 내가 아는 git에서 파일의 일부를 추적 할 수있는 방법이 없습니다.

기본 파일을로드하도록 코드를 수정 한 다음 기본값을 재정의하는 환경에 맞게 사용자 정의 된 코드를 수정할 수 있습니다. 개발자는 자신 만의 사용자 정의 버전을 유지할 수 있으며 테스트/dev/prod 등의 차이점에 대해 사용자 정의 버전을 사용할 수도 있습니다 ...

+0

나는 그것을 할 수있어서 좋겠다. 불행히도 내가 의존하고있는 소프트웨어는 폐쇄 된 소스이며 다중 구성 파일을 지원하지 않습니다 ... – peoro

+0

나는 그것이 나쁘다는 것을 알았습니다. 행운을 빕니다! – Bill

1

"config.global"및 "config.local"파일을 확인하십시오. 글로벌 구성 및 로컬 사용자 고유 부분. 응용 프로그램에 대한 래퍼 스크립트를 만드십시오 (정확히 어떻게 OS에 의존 할 것인가). 스크립트가 전역, 로컬 및 "실제"구성 파일의 수정 시간을 먼저 확인하도록하십시오. 부분 파일이 새로운 파일이라면 실제 파일로 연결하십시오. 그런 다음 적절한 응용 프로그램을 시작하십시오.

관련 문제