#TIL #svn 저장소(repository) 파일을 삭제하는 스크립트
배포에 SVN을 사용한다. 단순히 복사해서 커밋한다면 삭제한 파일 반영이 안 된다. 삭제된 파일을 반영해야 한다.
$ rm -rf $dest
$ cp -r $source $dest
$ cd $source
$ for i in $(svn st | grep \! | awk '{print $2}'); do svn delete $i; done
$ svn add * --force
$ svn commit -m “deploy"
배포에 많이 쓰는 패턴이다. 삭제 후 복사한다. 이렇게 하면 삭제된 파일이 티가 난다.
’!’ Item is missing (e.g., you moved or deleted it without using svn). This also indicates that a directory is incomplete (a checkout or update was interrupted).
svn st
명령을 입력했을 때, 파일이 저장소에는 있지만 작업 디렉터리(working directory)에 없으면 파일 이름 앞에 !
문자를 출력한다. 이런 파일을 찾아서 svn delete
인자로 넘긴다. 바로 저장소에서 삭제는 안 된다. svn commit
명령을 실행할 때, 반영된다.