com/
com/companyname/
com/companyname/blah/
com/sun/
com/sun/java/
com/sun/java/jax_rpc_ri/
이 디렉토리에 파일이 있지만 그 다음에 개발자는 빌드 프로세스의 부산물이기 때문에 처음부터 체크인하지 말아야한다는 것을 깨달았습니다. 따라서 파일을 제거했지만 빈 디렉터리는 고대 유적으로 저장소에 남아 있습니다.
이것을 CVS에서 어떻게 제거 할 수 있습니까? 내가 찾은 유일한 결과는 CVS가 처음부터 주위를 지키지 않아 cvs update
에 -P
옵션을 제거해야하므로 빈 디렉토리를 제거 할 필요가 없다는 말이다. 그것들은 작업 디렉토리에서 가져온 것입니다. 저장소에 실제로 빈 디렉토리가 있으면 아무 도움이되지 않습니다.
cvs remove
와 cvs commit
은이 상황을 처리하지 않는 것 같습니다 :
$ cvs remove -Rf com
cvs remove: Removing com
cvs remove: Removing com/companyname
cvs remove: Removing com/companyname/blah
cvs remove: Removing com/sun
cvs remove: Removing com/sun/java
cvs remove: Removing com/sun/java/jax_rpc_ri
$ cvs commit com
cvs commit: Examining com
cvs commit: Examining com/companyname
cvs commit: Examining com/companyname/blah
cvs commit: Examining com/sun
cvs commit: Examining com/sun/java
cvs commit: Examining com/sun/java/jax_rpc_ri
$ ls -l com
total 24
drwxrwxr-x 2 matt matt 4096 Oct 15 14:38 CVS
drwxrwxr-x 9 matt matt 4096 Oct 15 14:38 companyname
drwxrwxr-x 4 matt matt 4096 Oct 15 14:38 sun
아직 있습니다!
SVN도이 이상한 행동을합니까?
경고! 일단 CVS가 디렉토리를 잃어 버리면 결코 다시 되돌릴 수 없으므로 실제, 물리적 저장소로 갈 필요가 있습니다. CVS는 지워진 파일을'Attic'이라는 특별한 폴더에 저장합니다. 'Attic'을 지우면 그 파일들은 영원히 사라집니다. –
이런 일을하기 전에 항상 두 번 생각해보십시오. 문제는 없습니다.'ssh cvsserver :/cvsroot 'tar cvf com.tar com''; 'scp cvsserver : /cvsroot/com.tar .'; 'cvs add com.tar'; 'cvs ci com.tar'; 'cvs rm -f com.tar'; 'ssh cvsserver :/cvsroot 'rm -rf com.tar com'' – minopret