2014-04-17 2 views
3

이 질문은 아이폰 OS 특정되지 않습니다,하지만 난 Foobar라는 아이폰 OS 프로젝트, 분명히 버전 제어 아래에 보관을 실행 선명도Git을 사용하는 파일에 대한 기본 병합 전략을 어떻게 설정합니까?

여기를 실제 사용 사례를 포함하고 있습니다. iOS 프로젝트 환경의 프로젝트 파일에는 Foobar-Info.plist이라는 항목이 있습니다.이 파일은 프로젝트의 버전 및 빌드 수와 같은 흥미로운 정보를 저장하는 XML 파일입니다.

... 
<key>BuildCount</key> 
<string>2203</string> 
<key>CFBundleShortVersionString</key> 
<string>0.0.4</string> 
<key>CFBundleVersion</key> 
<string>0.0.4-release/0.0.4.2203</string> 
... 
'0.0.4 릴리스는'자식 흐름 지점 이름

, 그리고 2203은 다음과 같습니다

내가 프로젝트를 빌드 할 때마다, 나는과 같이이 파일에 저장되어있는 빌드 수를 증가 빌드 번호. 이 필드는 CFBundleVersion 필드에서 사용되므로 빌드가 어디에서 왔는지는 내게 정말 분명합니다.

다른 지점에 상상, 나는 출시 이후 많은 진전을 만들었와 같은 분야는 다음과 같다 :이 전 릴리스 끝났어요 가정 해 봅시다

... 
<key>BuildCount</key> 
<string>2754</string> 
<key>CFBundleShortVersionString</key> 
<string>0.0.4</string> 
<key>CFBundleVersion</key> 
<string>0.0.4-feature/add-quux-and-baz.2754</string> 
... 

하고,이 메인 라인 develop에 병합 것 분기. 릴리스 지점에서 만든 최신 변경 사항을 얻기 위하여

문제

, 나는 develop에 기능 지점을 리베이스하고 싶다.

이 발생하면 Foobar-Info.plist은 rebase 프로세스에서 모든 커밋이 충돌합니다. 이는 빌드 번호가 모든 커밋마다 증가하기 때문입니다. 수동으로 행을 선택하여 을 수동으로 병합해야합니다. 수동으로을 최신 버전으로 지정하십시오. 3 방향 diff의 기본 버전도 달라집니다.

<string>2000</string> // Base 
<string>2754</string> // Local ** always pick this one; it's the latest 
<string>2203</string> // Remote 

어떻게 하나 개의 특정 파일, Foobar-Info.plist, 나는 그것이 최신의 변화를 고려하여 나를 위해 내 갈등을 해결하려는 자식을 알 수 있습니까?

EDIT : 파일은 소스 제어하에 있어야합니다. BuildCount을 유지하고 싶습니다. 프로젝트에 대한 노력의 시원한 표시이며 계속 유지하려고합니다. 숫자는 완료된 빌드의 최소 수만 표시한다는 것을 알고 있지만, 충분히 좋을 것입니다.

+0

http://stackoverflow.com/questions/928646/how-do -i-tell-git-to-always-select-my-local-version-for-conflicted-merges-on-as는 내 질문에 대한 답이 될 수 있습니다. – fatuhoku

+0

'병합 복사'는 내가 원하는 것이 아닙니다. 나는 일종의 충돌 합병을 원한다. 다른 변경 사항은 여전히 ​​적용되고 병합되어야합니다. – fatuhoku

+0

또 다른 점은 최신 변경 사항이 * 반드시 로컬 브랜치가 아니기 때문에 복사 병합이 아니기 때문입니다. '개발'이 브랜치의 빌드 번호가 더 큰 다른 기능을 사용하고 있다는 것을 알 수 있습니다. – fatuhoku

답변

1

나는 이것이 늦은 대답이라는 것을 알고 있지만, 귀하의 질문을 이해한다면, 당신이 찾고있는 것은 .gitattributes 파일입니다.

당신이처럼 보이는, 특정 파일 또는 .gitattributes 파일의 상대 경로와 폴더에 대한 전략을 병합 지정할 수 있습니다

내가 찾은
* text=auto 
path/to/your/file.plist merge=union 
관련 문제