문제

최근에 소스 트리에서 소스 파일을 이동하고 있습니다. 예를 들어 많은 파일을 공통 어셈블리에 배치합니다. 이 작업을 수행하여 CVS에서 파일을 삭제 한 다음 새 지점에 다시 추가했습니다. 문제는 파일의 개정 번호가 1.1로 다시 재설정된다는 것입니다. 숫자 재설정없이 물건을 움직일 수있는 간단한 방법이 있습니까?

나는 아마도 저장소에 액세스 할 수 없다고 언급했을 것입니다. 그래서 필요한 것은 나를 도울 수 없지만 다른 사람들에게 도움이 될 수 있습니다.

도움이 되었습니까?

해결책

클라이언트 전용 명령으로 파일을 이동할 수있는 방법이 없습니다. 서버 파일 시스템에 액세스해야하며 저장소의 ", V"파일을 새 위치로 이동할 수 있습니다. CVS는 모든 개정판과 해당 파일에 주석을 기록하기 때문에 모든 역사를 유지합니다.

파일은 삭제 될 때 파일이 "Attic"하위 폴더 (클라이언트에서 볼 수 없음)로 이동됩니다. 파일이 삭제 된 후에 파일을 복원 할 수있는 방법입니다.

일반적 으로이 접근법에는 즉각적인 문제가 없지만 이전 디렉토리 구조에 의존 할 수있는 이전 버전의 제품을 확인하기로 결정한 결과를 고려해야합니다!

이곳은 전복과 같은 다른 개정 제어 시스템이 결정적인 이점을 갖는 곳입니다.

다른 팁

이 효과를 달성하는 일반적으로 인정되는 방법은 다음 단계를 수행하는 것입니다. 이에 대한 기술 용어는 다시 포비입니다.

  1. CVS 저장소를 호스팅하는 서버에 로그인하십시오 복사 (이동하지 마십시오) 원하는 위치에서 새 위치까지 저장소 파일.
  2. 클라이언트 측 CVS에서 이전 위치에서 파일을 삭제합니다.
  3. 클라이언트 측 CVS에서는 새 위치의 디렉토리 내용을 업데이트하여 파일이 나타납니다).
  4. 클라이언트 쪽에서는 복사 된 파일의 강제 CVS 커밋 (-f 플래그 사용)을 수행하여 다시 호환되었다는 사실을 기록합니다 (해당 효과에 로그 주석을 추가).

이 절차는 파일 기록을 새로운 위치에서 유지하며 저장소의 뒤로 연속성을 깨뜨리지 않습니다. 시간이 지남에 따라 이동하면 파일이 이전 위치에 올바르게 나타납니다. 동일한 절차를 사용하여 파일 이름을 바꿀 수도 있습니다.

그만큼 온라인 CVS 매뉴얼 이 작업을 수행하는 방법에 대한 세부 사항이 있습니다.

파일을 이동하는 일반적인 방법은 CVS Rename 명령을 발행하는 것입니다.

$ CVS는 Old New라는 이름을 바꿉니다
$ CVS Commit -M "Old Old to New"

이것이 파일을 이동하는 가장 간단한 방법입니다. 오류가 발생하지 않으며 수행 한 일의 역사를 보존합니다. CVSNT 클라이언트는 이전 버전의 저장소를 확인하여 원래 이름을 검색 할 수 있습니다.

이 기능은 CVSNT 서버 2.0.55 이상에서만 지원됩니다.

가장 간단한 방법은 Repo가있는 CVS 서버를 사용하고 MV로 폴더/파일을 이동하는 것입니다 ( *닉스 머신을 가정). 그렇게하면 파일의 기록이 유지됩니다.

이것은 CVS로 알려진 결함 중 하나가 아닌 것이 아닙니다. 파일 이동을위한 내장 메커니즘이 없습니까? 그러나 내가 그것을 사용한 지 오랜 시간이 지났으므로 이제는 해결책이있을 수 있습니다.

Pubversion을 사용하면 파일을 이동할 수 있지만 새 파일이 최신 개정 번호를 얻을 수 있도록 추적됩니다.

이동할 때 -V 옵션을 사용하는 것이 버전 기록을 유지하는 것 같습니다.

CVS 파일의 이름을 바꾸는 것은 번거 롭습니다. 저장소 관점에서 파일을 삭제하거나 새 파일을 추가 할 수 있습니다. 따라서 일반적인 프로세스는 다음과 같습니다

MV Oldfile.c NewFile.C CVS 삭제 OldFile.C CVS 추가 NewFile.c

이것은 효과가 있지만 수년간의 어려운 개발 중에 커밋 운영에 쓴 모든 변경 정보를 잃어 버릴 수 있습니다. 그러나 방법이 있습니다. 저장소에 직접 액세스해야합니다. 먼저, 프로젝트가있는 디렉토리를 찾아 다음을 수행하십시오.

CP Oldfile.c, v newfile.c, v

이제 작업 디렉토리로 이동하여 CVS 업데이트를 수행하십시오. newfile.c는 새 파일로 나타납니다. 이제 CVS Oldfile.c를 삭제하고 커밋 할 수 있습니다.

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