2010-04-30 3 views
2

CVS는 체크 아웃 한 분기와 다른 분기로 파일을 커밋 할 수 있습니까? 남자 페이지와 some sites 우리가 cvs ci -r branch-1 file.c 할 수 있다고 제안하지만 다음과 같은 오류를 제공합니다 :커밋으로 다른 분기 커밋 -r

cvs commit: Up-to-date check failed for `file.c'
cvs [commit aborted]: correct above errors first!

BASEbranch-1에서 file.c는의 내용이 실제로 동일한 지 확인하기 위해 cvs diff -r branch-1 file.c했다.

cvs co -r branch-1을 사용하여 수동으로 체크 아웃하고 주 분기를 병합 한 다음 병합 문제를 수정 한 다음 체크인을 수행 할 수 있다는 것을 알고 있습니다. 문제는 분기가 여러 개 있다는 점입니다. 스크립트를 사용하여 사물을 자동화하십시오. This thread은 (는) -r이 (가) 삭제되었습니다. 누군가 그것을 확인할 수 있습니까? ci -r가 지원되지 않는 경우

, 내가 좋아하는 일을 생각하고 :

  • 이 지점 버전과 기본 버전은 현재 브랜치에 cvs diff
  • 확인과 동일해야합니다
  • 임시 파일에 파일 사본 보관
    • 체크 아웃 : b -r
    • 와 목장은 임시 파일과 파일을 대체
  • 하는

은 교체 임시 파일을 삭제 (-r이 끈적 끈적대로 분기를 갈거야)에서 확인 부분적으로 나에게 소리를 지르는 것처럼 들리지만 발생할 수있는 잠재적 인 문제를 생각할 수 있습니까? 내가 조심해야 할게있어? 이 프로세스를 자동화하는 다른 방법이 있습니까?

답변

2

diff 출력이 0 인 경우에도 파일이 최신이 아닐 수 있습니다. 예를 들어 파일의 텍스트를 한 커밋에서 파일에 추가하고 다음 커밋에서 제거 할 경우 두 개의 수정의 경로를 따라 차이가 없습니다.

커밋 -r -issue와 같습니다. 나에게 그것은 실험적인 기능 같은 것, 그리고 당신은 그냥 사용하여 더 낫다 실제로 하나

cvs update -r <branch> <file> 
cvs update -j <ver> -j <ver> <file> 
cvs commit <file> 

을 게다가, 하나의 프로그래밍 방식이 제안하는 방식과 같은 다른 모든 지점에 커밋 전파 일반적으로부터 약간 의심 사업 갈등을 해결하려면 인간의 두뇌가 필요합니다.

+0

편집 실행 취소가있는 경우 개정 실행 기록은 강제 적용 후에도 반영됩니다. 나는 편집중인 기본 버전의 내용과 내용이 다른 버전을 사용하지 않기를 원한다. 그리고 인간 개입은 병합 충돌을 수정하는 유일한 실용적인 방법 인 것처럼 보입니다. – Amarghosh

관련 문제