내 SVN 폴더에 누군가가 프로젝트 소스 코드를 삭제했습니다. SVN 기록을 사용하여 해당 파일을 삭제 한 사람을 식별 할 수 없습니다. 프로젝트는 역사 아래 표시된 활동과 관련이 없습니다.SVN에서 지운 폴더를 복원
- 로그인 기록없이 SVN에서 폴더를 삭제할 수있는 옵션이 있습니까?
- SVN 서버에서 이러한 파일을 복구 할 수있는 옵션이 있습니까?
감사
내 SVN 폴더에 누군가가 프로젝트 소스 코드를 삭제했습니다. SVN 기록을 사용하여 해당 파일을 삭제 한 사람을 식별 할 수 없습니다. 프로젝트는 역사 아래 표시된 활동과 관련이 없습니다.SVN에서 지운 폴더를 복원
감사
리포가 심각하게 엉망이 아닌 한 모든 삭제 내용이 로그에 표시됩니다. 내 생각 엔 작업 경로에서 svn log
을 발급하여 잘못된 경로를 쿼리하고있는 것일 수 있습니다. 이 하위 명령은 URL을 허용 당신은 단순히 수 :
svn log https://example.com/svn/project/
대신
svn log
의 ...나 : 당신이 디렉토리 경로를 알고 여전히 존재 어디 개정 번호를 알고있는 경우
물론
svn log https://example.com/svn/project/trunk/
는, 당신은 간단하게 할 수 있습니다
svn log https://example.com/svn/project/trunk/foo/[email protected] --revision 314:HEAD
업데이트 :에도 불구하고 게으른 오소리의 놀라운 소유권 주장, 개정 내역은 Subversion의 핵심 기능이며 저장소 액세스 방법에 종속되지 않습니다.
E:\test>svnadmin create myrepo
E:\test>svn checkout file:///E:/test/myrepo mywc
Checked out revision 0.
E:\test>svn mkdir mywc\mydirectory
A mywc\mydirectory
E:\test>svn commit -m "Add a directory" mywc
Adding mywc\mydirectory
Committed revision 1.
E:\test>svn delete mywc\mydirectory
D mywc\mydirectory
E:\test>svn commit -m "Remove the directory" mywc
Deleting mywc\mydirectory
Committed revision 2.
E:\test>svn log -r2 -v file:///E:/test/myrepo/
------------------------------------------------------------------------
r2 | ALVARO.GONZALEZ | 2012-04-03 17:00:34 +0200 (mar, 03 abr 2012) | 1 line
Changed paths:
D /mydirectory
Remove the directory
------------------------------------------------------------------------
E:\test>
변경 내용을 추적 할 수 없으면 Subversion이 버전 제어 도구로 전혀 쓸모 없게됩니다. 주석 기자는 아마도 svn log
에있는 로그를 아파치가 유지 관리하는 액세스 로그와 혼동 할 것입니다. 이는 완전히 다른 것으로서 Subversion 명령을 통해서도 읽을 수 없습니다.
리포지토리에 커밋 된 삭제는 리포지토리 자체가 손상되지 않은 한 커밋 된 방법과 상관없이 개정 로그에 표시됩니다 (이미 지적했듯이).
예를 들어, 누군가가 서버에 로그인하고 삭제 나는 (삭제가 SVN 서비스의 뒤에서 일어난 경우 로그에 표시하지 않고 SVN에서 삭제 생각할 수있는 유일한 방법 명령 셸의 파일/디렉토리).
이 경우 서버를 백업했다고 가정 할 때 서버에 만들어진 백업에서 파일/디렉토리를 복원 할 수 있습니다. 이 경우 가장 최근에 해당 디렉토리에 커밋 된 사람에 따라 원본 소스의 이전 버전에 액세스 할 가능성이 높습니다. 삭제 앞으로 일어날이 전술 한 바와 같이 경우 문제가 투입해야 할 수도 있으므로,이 mostr 가능성의 SVN 부기를 엉망 물론
는 ...
아니, 폴더를 삭제하는 방법은 없습니다 SVN 로그에 반영되지 않습니다. SVN 서버에 대한 액세스 권한이있는 관리자가 SVNADMIN DUMP
/SVNADMIN LOAD
을 수행하고 SVNDUMPFILTER
을 사용하여 변경 집합을 제거 할 수는 있지만 사용자가 요청한 것이 아닌 것으로 생각됩니다. 또는 그 일이 일어 났을 수 있습니까?
SVN 저장소를 이전 버전으로 롤백 할 수 있으므로 취소 할 수없는 변경 사항이 없습니다. 특정 폴더가 SVN 로그에 반영되지 않고 삭제 된 것이 확실한 경우 누군가가 여전히 폴더가 포함 된 작업 복사본을 가지고있을 수 있습니다.
내 2 센트 :
/trunk/src/my/proj/client
복원해야합니다 svn copy http://my.company.com/svn/repo/trunk/src/my/proj/[email protected] http://my.company.com/svn/repo/trunk/src/my/proj/
예 저장소 파일 구조 :
Repo: http://my.company.com/svn/repo/
/trunk
/src
/my
/proj
/server
/client (is deleted on revision 4711)
로그없이 SVN에서 폴더를 삭제할 수있는 옵션이 있습니다 에 역사?
슬프게도, 예 - 파일 사용 : 모든 인증
없이 REPO에 액세스 /// 프로토콜은 해당 파일을 복구 할 수 SVN 서버에서 어떤 옵션이?
예. 액세스 할 수있는 svn-tools를 사용하여 최신 개정판을 찾으십시오.이 폴더는 여전히 존재합니다 및 이 수정본의 로컬 작업 사본에만으로 복사하십시오 ("스파 스 작업 결과로 복사). (다음 사건이 다시 발생하지 않지만)
주 새로운 버전으로 화장실의 상태를 커밋하고 모두가 후에 고정해야합니다 svn copy
솔루션은 또한 가능한 것은
당신은 SVN 로그로 확인할 수의 다른 활동을 볼 수 svn repo에.
서버에서 제거한 서버가 있으면 서버를 백업해야합니다. 물론 문제는 아니지만 팀원 중 일부는 서버에서 업데이트하지 않으므로 삭제 된 파일이있을 수 있습니다.
당신은
svn up -r <with-older-version>.
는 개인적으로 내가 CVCS 시스템을 증오로, 내가 DVCS를 사용하는 것을 선호 복구 할 수 있습니다.
하지만 내 조직에서는 CVCS를 사용해야합니다. :(
"repo가 심각하게 엉망이되지 않는 한 모든 삭제 내용이 로그에 표시됩니다."- 잘못된 것 ... http : // **는 repo에 액세스하기위한 단일 프로토콜이 아닙니다. –
예, 몇 가지 액세스 권한이 있습니다. 프로토콜과 관련이 있습니까? –
@LazyBadger - 대부분 스택 오버플로에 대한 답변은 버전 제어 관련 도구이므로 심각하게 말해야합니다 ... 그러나 이해하지 못합니다. 늦은 April Fool의 농담이나 뭐야? –