참고로 CentOS 5.5를 서버에서 실행하고 있습니다.Git-Svn 복제본을 cron을 통해 어떻게 동기화합니까?
저는 여러 다른 개발자들과 함께 분산 프로젝트 작업을하고 있으며 Git을 사용하여 저장소를 관리하고 있습니다. 모든 것이 Gitorious에서 라이브로 진행되며 아름답게 작동합니다. 그러나 Git 내에서 "공급 업체 지점"과 같은 종류의 외부 Subversion 저장소와 동기화 된 상태를 유지하려면 저장소에 지점이 있어야합니다. 이유는 : 우리는이 기존의 오픈 소스 프로젝트 (WordPress)를 기반으로 여러 가지를 구축하고 작업 카피가 자신의 repo에 게시 한 버그 수정을 상속 받기를 원합니다.
라이브 Subversion repo와 동기화하여 보관할 수있는 "wordpress"라는 별도의 지점을 갖도록 설정했습니다.
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
이 명령은 것입니다 : 그것은처럼 간단 이렇게하려면 우리는 워드 프레스 분기에
- 을
- 가비지 수집 실행 (그렇지 않으면 저장소가 점진적으로 커질 수 있습니다.)
- 업데이트 된 분기를 Gitorious의 호스트 저장소에 푸시
WordPress 트렁크 업데이트 때마다이 네 가지 명령을 실행하기는 쉽지만 짜증나는 번거 로움이 있습니다. 이걸 크론 작업으로 설정하고 싶지만 어떻게 될지 모르겠습니다!
나는 wordpress.sh
라는 스크립트를 작성하고 해당 서버에있는 /etc/
폴더에 배치했습니다
#!/bin/bash
cd /var/www/git/wordpress
git checkout wordpress
git svn rebase
git gc
git push origin wordpress
스크립트는 잘 실행됩니다. 내 서버에 SSH를 넣고 루트로 로그인 한 다음 . /etc/wordpress.sh
을 입력하면 모든 것이 올바르게 작동합니다. 그러나 cron이 나에게 도움이되도록 어떻게 설정할 수 있습니까?
CentOS의 Webadmin 인터페이스를 사용하여 수동으로 crontab에 추가 (실패)하여 매시간 스크립트 (실패한 경우)로 추가하려고 시도했지만 지금은 손실이 있습니다! 내 시스템 로그는 (아래 로그) 발사 것 것을 주장 :
Feb 4 07:00:01 ---- crond[27745]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 07:01:01 ---- crond[27773]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 08:00:01 ---- crond[29095]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 08:01:01 ---- crond[29142]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 09:00:01 ---- crond[29708]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 09:01:01 ---- crond[29718]: (root) CMD (run-parts /etc/cron.hourly)
Feb 4 10:00:01 ---- crond[30328]: (root) CMD (/etc/wordpress.sh #WordPress mirror)
Feb 4 10:01:01 ---- crond[30337]: (root) CMD (run-parts /etc/cron.hourly)
하지만 로그인하고 수동으로 스크립트를 실행하지 않으면 아무것도 실제로 발생하지 않습니다. 아이디어?
또한 명령'./etc/wordpress.sh'에서 cron 작업을 수행했지만 다르게 처리하지는 않았습니다. – EAMann
@ ygram의 조언을 바탕으로 한 해결책에 대한 마지막 토론에 관심이있는 분들을 위해 http://eam.me/e1 – EAMann