웹 인터페이스 등을 통해 관리되는 SVN 저장소가 있고 svn checkout https://server/repos/proj1
모든 것이 잘 작동합니다.
이제 예를 들어 서버에서 쉘 명령을 사용하여 commit
최신 버전을 디렉토리에 복사하고 싶습니다 ./home/user/somewhere/proj1/rev102/
내가 올바르게 기억한다면, 명령당 하나의 명령을 호출할 수 있습니다 commit
. 수행 방법에 대해서는 크게 걱정하지 않습니다(실패하면 cron
작업을 생성할 수 있음).
svn update
svn 로그인 메커니즘 등을 사용하지 않고 로컬로 실행되는 쉘 스크립트를 사용하여 svn repo 디렉토리/파일에서 최신 파일을 추출하려면 어떻게 해야 합니까 ? 모든 파일이 거기에 있고 셸에서 액세스할 수 있으므로 쉬울 것입니다.
답변1
svn login
svn 데이터베이스 파일에 직접 액세스할 수 있는 경우에는 필요하지 않습니다. 서버 어딘가에 디렉토리와 같은 svn 데이터베이스의 루트가 있습니다 /some/dir
. 여기 에는 db
, conf
및 하위 디렉토리가 있습니다 . 다음 명령을 사용하여 동일한 머신에서 이 저장소를 체크아웃할 수 있습니다.hooks
locks
cd /home/user/somewhere/
svn list file:///some/dir/
svn checkout file:///some/dir/repos/proj1/rev102 proj1/rev102
svn update
새로 생성된 하위 디렉터리에서도 이 작업을 수행 할 수 있습니다 .
말했듯이 모든 커밋에서 명령을 호출할 수 있습니다. 파일을 편집하고 이름을 in hooks/post-commit.tmpl
으로 바꿉니다 .hooks/post-commit
/some/dir