2011-12-27 3 views
1

저는 활성 서버와 로컬 테스트 환경의 두 곳에서 실행되는 프로젝트를 작업 중입니다. 2 부는 몇 군데의 일부 ​​구성 파일 (이름, URL, 데이터베이스 정보 등을 저장함)에서만 다릅니다.동일한 프로젝트의 2 부를 svn하는 가장 좋은 방법은 무엇입니까?

지금 나는이 같은 일 :

  1. 는, 로컬 복사본에 약간의 편집을하는 모든 일이 잘 경우, 로컬 테스트 환경에서 새 버전을 테스트 SVN 커밋

  2. 서버로 간다. svn update는 수동으로 충돌을 해결한다.하지만 많은 설정 항목이 2 개의 복사본 사이에서 다르므로 많은 수정이있다. 그리고 나는 그 이후로 mc를 받아들이지 않고 싶다. ... 설정 파일에 일부 변경 될 수

지금은의 REPO의 설정 파일의 두 복사본을 유지 앞뒤로 내 로컬 복사본의 파일 이름을 전환, 그래서 '돈을 생각하고 서버 복사본을 업데이트 할 때 충돌을 처리해야합니다. 이 작업을 수행하는 더 똑똑한 방법이 있습니까?

+1

설정 파일을 두 개로 나눌 수 있습니까? 하나의 파일에는 순전히 서버 별 내용이 들어 있으며, 다른 파일은 두 서버에 공통적 인 내용입니다. –

+0

예! 나는 이것을 할 수있다! 이것은 많은 일을 필요로하지만 한 번 그리고 모두를 위해 ... 다음 번에 나는 단순하게 특정 configs, 좋은 아이디어를 위해 mc를 받아 들일 수 있습니다! 감사합니다 Oli Charlesworth. – user1117589

답변

1

세 개의 설정 파일을 만듭니다

  • 일반적인
  • 테스트
  • 생산

변경은 하나 개 이상의 파일을 읽을 수 있도록 구성 판독기 (나중에 파일의 옵션을 덮어 이전 것들).

이렇게하면 구성을 분리 할 수 ​​있습니다 (그리고 개발 컴퓨터에서 프로덕션 구성을 준비하거나 테스트 할 수 있습니다).

이제 옵션 인 명령 줄 옵션을 추가하기 만하면됩니다. 이 옵션이 있으면 common + production 구성을 읽습니다. 누락 된 경우 (개발 중에) 공통 + 테스트 구성이 사용됩니다.

+0

Aaron에게 감사드립니다. 너무 좋은 생각입니다. 이제 3 가지 옵션이 모두 좋아 보이지만 ... 어느 것이 가장 좋습니까? – user1117589

+0

광산, 물론 ;-) 기호 링크는 체크인하지 않는 한 작동합니다 (무시하려면 SVN을 설정하십시오). 하지만 아마도 많은 공통 설정 옵션을 가지고있을 것입니다. 그래서 아마 3 가지 옵션을 혼합 할 수 있을까요? –

2

두 개의 다른 파일을 유지하고 그 중 하나에 심볼릭 링크를 사용할 수 있습니다.

project 
    |-configuration 
    | |-development.cfg 
    | \-production.cfg 
    \-config.cfg < symbolic link to configuration/development.cfg 

처음 체크 아웃하면 이러한 파일 중 하나에 대한 심볼릭 링크를 만들어야합니다.

+0

심볼릭 링크를 무시 목록에 두십시오! – codeling

+0

이것도 좋은 생각입니다 :) 그 configs의 두 복사본을 유지하는 것과 비슷하지만, 이번에는 파일 이름을 전환 할 필요가 없습니다. 고마워요. 하지만 어느 쪽이 더 낫습니까, 올리의 접근 방식인가요? – user1117589

+0

서버를 실행할 때 스위치를 사용하는 것을 잊어 버렸기 때문에 프로덕션 서버가 개발 환경을 사용하여 우연히 실행될 수 있다는 생각이 맘에 들지 않습니다. 그 외에도 두 가지 제안을 모두 사용할 수 있습니다. – Yossi

0

JNDI 명명 된 리소스만큼 많은 리소스를 유지해야합니다. 다른 값 앞에 동일한 JNDI 이름을 사용하여 테스트 및 prod 서버를 구성 할 수 있습니다. 앱이 그런 식으로 변경하지 않아도됩니다.

환경 변수 또는 플래그를 사용하여 응용 프로그램에 사용할 구성 버전을 알려줄 수 있습니다. 당신이 두 서버 모두에 대해 하나의 저장소-위치를 사용하는 경우

0
  1. , 당신은 하나의 repo 안에 두 개 (지점)로 분할에 대해 생각하고 나뭇 가지 당신이 생각할 수있는 지점에서 설정 - 파일의 경우
  2. (사이에 나중에 변경 내용을 병합 할 수 있습니까?SVN의) 경로)를 별도의 디렉토리 CONFIGS 이동에 대해, 상위 REPO 대한 외부 참조로 본 DIR을 정의하고 절대적이지 (대해 사용 외관 또는는 외관의 일반적인 URL에 대한 다른 PEG-개정 (제조)를 지정
관련 문제