문제

내가 사용하는 svn 프로젝트에 대한 작업 임의 부부와 함께 다른 개발자입니다.Svn 잘 작동 소스에 대한 통제 그러나 우리는 모든 방법으로 얻기에 충돌 할 때 우리는 우리 commit dll.

할 때 나는 내가 충돌을 해결하(는 삭제 내 dll diff 프로그램 설 바이너리 파일)를 다음 다시 작성하다.들의 충돌을 해결하이 같은가?

편집:

Dll 는 별도의 svn 폴더의 프로젝트 게임 모 및 비 프로그래머로세스 최신 구축합니다.

도움이 되었습니까?

해결책

에서 언급했듯이 다른 답변 여기:안전 버전의 생성한 dll 을에서 첫 번째 장소입니다.그러나 만약 당신이 정말로 버전으로,그 다음 당신은 충돌을 해결할 수 있는 사용하지 않고 차 도구를 제거하는 dll files:

에 대한 모든 conflicted 파일,전복의 장소 세 개의 버전 없는 파일에서 당신의 작업 사본:

filename.나

이것은 당신의 파일로 존재에서 당신의 작동을 복사하기 전에 업데이트 작업 복사본을 즉,충돌없이 마커입니다.이 파일은 최신 변경 사항습니다.면(전복을 고려할 파일의 유니티 병합 될,니다.내 파일로 만들어지지 않기 때문에,것과 동일한 작동 파일입니다.)

filename.rOLDREV

이 파일의 수정 전에 업데이트합니다.즉,파일을 검사하기 전에 당신은 당신의 최근 수정합니다.

filename.rNEWREV

이 파일의 파괴 클라이언트는 단지 서버로부터 받은 경우 업데이트합니다.이 파일에 해당하는 머리를 수정합니다.

여기에 OLDREV 은 개정의 수에 있는 파일.svn 디렉토리 NEWREV 개정 번호 저장소의 머리입니다.

이제를 해결하려면 이러한 충돌 제거,추가적인 파일을 원하지 않:

  • 을 유지하려는 경우 당신의 자신의 dll 파일들을 삭제 파일명을 사용할 수 있다.rOLDREV,파일명을 사용할 수 있다.rNEWREV
  • 을 유지하려는 경우 dll 저장소에서 삭제한 파일을 파일명을 사용할 수 있다.rOLDREV 및 파일 이름입니다.광,다음 사본을 파일명을 사용할 수 있다.rNEWREV 름

그 후,실행

svn resolved filename

을 말한 파괴는 충돌을 해결했다.

다른 팁

의 경우에는 DLL 을 구축(보다는 외부 중 하나 당신에 대한 소스를 가지고)다음 소스에서 소스 제어,지 않습니다.

당신이 원하지 않는 경우에 포함하는 특정장소한 다음을 포함할 수 있습으로 svn:외부.

일반적으로,당신은 없을 저장하는 자신의 Dll 을 컴파일에 제어 소스에서 모두.당신은 특별한 이유가해야 할까요?

나는 설정을 내는 개발 환경에서는 사람을 구축 할 수 있습의 모든 프로젝트 구성 요소를 독립적으로 다른 사람.이 방법으로는 유일한 것은 나의 원본을 제어 시스템은 나 코드입니다.이는 많은 이점이 있습니다:

  • 그것은 피할 바이너리 파일을 충돌하려고 할 때에 확인 Dll 또는 비
  • 의 볼륨 데이터를 추적하여 귀하의 소스로 제어 시스템은 많은 작은 만들고,빨리
  • 개발자가 항상 자신을 구축 Dll,그들은 어느 정도 신뢰할 수 있습의 소스 코드들이 일치 컴파일된 파일입니다.만약 당신이 사용하는 무언가 다른 사람이 내장된 다음,확신할 수는 없습니다.

로에서 언급한 의견 될 수있다,완전하게 합당하게 저장하는 타사 Dll 원본 제어 시스템에서,특히지 않는 경우 실제로 원본다.나는 또한 프로젝트에 참여 우리가 저장된 파일을 배포(.tar.gz 등등)에 대한 다양한 오픈 소스 라이브러리에서 원본의 제어,다음의 전체 시스템 Makefiles 는 내장 도서관의 한 부분으로 구축-모든 대상입니다.

바이너리 파일에,대부분의 시간이,당신을 받아들이 하나 있습니다.예를 들면,파일에 실행 도구,다음 일반적으로 버전이 될 수 있습 새로운 다른 것보다,그리고 하나 있을 수 있습니다 당신이 사용하고 싶습니다.

을 받아들이는 버전입 지점에서 병합에서,사용:

svn resolve --accept=theirs-full path/to/filename

을 받아들이는 버전 이전에서 현재 지점,사용:

svn resolve --accept=mine-full path/to/filename

때때로,SVN 사용하는 것을 거부하 theirs-full 경고:

svn: warning: W195024: Inapplicable conflict resolution option given for conflicted path

기 때문에 SVN 은 똥이 올 때 병합.는 경우에,당신은 당신 수동으로 파일을 복사에서 같은 허용된 응답 https://stackoverflow.com/a/410767/2279059, 보를 사용하여 명령행 옵션은 당신이 무엇을하려고 노력하고 있습니다.당신이 알고 있는 경우 두 파일을 모두 동일(하지만 SVN 은 여전히 그들을 표시하으로 갈등을 이유로 이미 말했),사용할 수도 있습니다

svn resolve --accept=working path/to/filename

이 경우에는 동일한 파일을 효과적으로 동일한으로 다른 모든 명령,SVN 지 않을 것이 겁이 거부를 실행합니다.이 의미가 있습니까?아니오,그렇지 않습니다.니다.

그것은 합리적인 또는 바이너리에서는 버전 제어:

  • 그것은 번거로움을 피할 수 있는 재건의 사람들을 위해서만 사용합니다.

  • 바이너리는 것은 못을 박았을 때를 놓습니다.

이 일을 만드는 이진구상에 해당하는 소스입니다.그래서 만약 당신이 병합된 원본을 재 구축 할 필요가 바이너리에서 그들을 중 하나를 선택하는 바이너리에서 병합된 버전지 않습니다.

는지 확인하 dll 가 svn:mime-type 속성 application/octet-stream 또는 다른 비 텍스트 형식입니다.

svn propget *.dll
svn propset svn:mime-type application/octet-stream *.dll

당신은 아직도 실제로 해결 충돌이 발생하는 경우.

확인 파일의 콘텐츠 유형 장의 설명서를 참조하십시오.

그래서 있는 경우에는*.dlls 별도의 폴더에 훨씬 더 쉽게 하는 다음과 같다:

  1. 바로 전에 너를 구축의 변경 업데이트*.dll 폴더 더 나은 또한 업데이트 소스를 신뢰하는 경우,당신의 동료들이 만 commit 컴파일할 수 있는 소스 코드입니다.(에 충돌이 발생하는 경우(어떤 것의 결함 그 시점에서,당신이 변경되기 전에 뭔가를 업데이트를 최신 개정판))
  2. 행됩니다.
  3. 직접 투입니다.

또:

지 않을 구축 경로에서 디렉토리 구축을 바깥 어딘가에 때까지,당신은 행복으로 무엇이든 결과입니다.

다음과 같이 진행합니다:

  1. 업데이트 작업의 복사본을 dll 폴더(이에 충돌이 있을 경우 그것의 당신의 잘못을 해결하여 분쟁이"그들의 것을 지키")
  2. 에 복사합니다.dlls 작업 사본에
  3. 알려 동료들을 투입할 것이 새로운 개정(할 수 있어 이 단계)
  4. 커밋의 일이에 충돌이 있을 경우 그것이 있어야 그들의 잘못이 아니다.

당신은 두 가지 가능성을 지금:

5a.당신은 매우 싫어하시는 사람 문제를 해결을 유지하여 내.

5b.당신이 작동해야 한다.로그 파일을 읽는 사람을 찾아 또는 동안 최선을 다하고 짧은 시간에 당신를 복사하는 데 필요한 작동 폴더를 눌렀다.말하는 겁니다.에 동의하는 작업입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top