우리는 많은 소스 코드를 git으로 마이그레이션했으며 현재 솔루션에 매우 만족합니다. 서버 구성 파일의 버전을 동일한 시스템에 유지하려고하지만 원하는 방식으로 작동하지 않는 몇 가지 사항이 있으며 여기에서 누군가 경험을 공유 할 수 있기를 바랍니다.
이 질문은 서버 구성 파일에 개정 제어 사용 과 유사 합니까? 하지만 해당 질문에 대한 제안으로는 작동하지 않는 몇 가지 특별한 요구 사항이 있습니다.
현재 설정은 구성 파일에 하위 버전을 사용합니다. 해당 저장소는 다음과 같습니다
/ # 저장소의 루트 +-www.domain.com/ # www 구성 | \--기타/ | \-아파치 2 / +-dev.domain.com/ # dev 구성 | +-등 / | \--고르다/ | \-app1 / | dev의 app1에 대한 \-conf / # 구성 준비를위한 \-staging.domain.com/ # 구성
subversion을 사용하면 저장소의 하위 디렉토리를 체크 아웃 할 수 있기 때문에 제대로 작동합니다. 또한 svn : externals를 사용하여 여러 구성 설정에 대한 하나의 공통 구조를 가리킬 수 있습니다. 모든 버전의 디렉토리에 있는 .svn 파일 만 다루어야했습니다 . 반면에 힘내 SVN을 가지고 있지 않습니다 외관 및 스파 스 체크 아웃은 항상 동일하게 실제 디렉토리 루트에서 경로를 필요로한다.
git으로의 마이그레이션을 논의 할 때 서버 구성 버전 관리에 대한 주요 요구 사항 을 적어 보았습니다 .
- 우리는 단일 저장소만을 원한다
- 중앙 리모컨으로 변경 사항을 쉽게 푸시 할 수 있어야합니다
- 변경 세트에는 실제 작성자가 포함되어야합니다.
하나의 저장소에 모든 구성을 가지고 작업 사본으로 하위 경로 만 갖는 좋은 방법이 있습니까? 현재 두 가지 접근법을 고려하고 있지만 먼저이 질문을하고 싶었습니다.
- 는 IF .git 저장소가 고정 된 위치에있는, 예를 들면 곳은에 / var에 , 우리는 작업 디렉토리 "대상"에서 하위 경로에 링크 할 수 있습니다. 주요 문제 : 단일 파일을 심볼릭 링크하는 것 외에는 내용 만 가져 오기 위해 / etc 에서 다른 디렉토리 로 "링크"하는 방법을 알지 못합니다.
- 이 SO 질문에 대한 다른 대안을 찾았습니다 . 하나의 저장소에 여러 가지가 있음을 제안합니다. 이것은 확실히 복잡성을 증가시킬 것이지만, 우리가 이런 식으로 노력하는 것을 볼 수 있습니다.
구성 파일 관리를 위해 단일 컴퓨터에서 git을 사용하면 정상적으로 작동하지만 사용하려는 사람이 있어야합니다.
감사합니다
Kariem
/
쓰기 권한으로 인해 있어야하는 경우 두 번째 요구 사항 (변경 사항을 다시 푸시)을 구현하기가 어렵습니다 .