커밋 후 후크를 사용하여 커밋 된 파일을 SVN의 웹 디렉토리에 복사하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/140614

  •  02-07-2019
  •  | 
  •  

문제

Ubuntu 서버에는 Apache 및 Subversion이 설치되어 있습니다. 이 서버를 순전히 테스트 목적으로 준비 서버로 사용합니다. Apache를 사용하여 웹 응용 프로그램을 호스팅하고 소스 코드의 버전 사본을 유지하기 위해 전복합니다.

내 현재 워크 플로 :

  • 파일을 변경하십시오
  • 파일을 Subversion Repository에 커밋하십시오
  • SFTP를 통해 새 파일을 Apache Public Directory에 업로드하십시오.
  • 내 웹 브라우저의 변경 사항을 봅니다

내 워크 플로우가 다음과 같다면 훨씬 더 행복 할 것입니다.

  • 파일을 변경하십시오
  • 파일을 Subversion Repository에 커밋하십시오
  • 백그라운드에서 Subversion은 커밋 된 파일의 사본을 Apache Public Directory에 넣습니다.
  • 내 웹 브라우저의 변경 사항을 봅니다

서버 관리자 경험이 거의 없으며 도움이나 포인터에게 감사합니다. 커미트 후 후크가 필요한 것이었고 Bash 스크립트를 작성 하여이 작업을 수행 할 수 있다고 들었지만 어디서부터 시작 해야할지 확실하지 않으며 많은 인터넷 검색 후에는 실제로 아무것도 찾지 못했습니다.

고맙습니다!

다른 팁

이를 수행 할 수는 있지만 모든 커밋을 제작 웹 사이트에 자동으로 추진하는 것이 항상 좋은 생각은 아닙니다. 때로는 새 코드가 있기 때문에 다른 변경 사항이 있어야하고 사이트를 중단해야하지만 데이터베이스 스키마는 아직 업데이트되지 않았습니다.

내가 대신하는 경향이있는 것은 서버 체크 아웃을 SVN 사본으로 만드는 것입니다. 그런 다음 발생해야 할 다른 모든 것을 준비하면 SVN 업데이트를합니다.

그러나 당신이 정말로 원한다면, 당신은 사후 커밋 트리거에 명령을 넣을 수 있습니다. 그것은 당신을 위해 모든 것을 자동으로 수행 할 것입니다. 여기에는 서버에서 마이그레이션 스크립트를 실행하는 것이 포함될 수 있으며 (이 변경에 대해 존재하는 경우) 발생하는 비 코드 변경 사항을 처리합니다.

제 생각에는 진짜, 당신이 스스로에게 물론 스스로에게 물었을 수도있는 가장 중요한 질문 --- "코드를 배포하기 전에 내 코드를 가장 쉽게 테스트 할 수 있습니까?"

좋은 대답은 개발 상자에 Apache를 설치하고 Webroot 및/또는 CGI Path를 사용하여 자신의 사용자로 실행하는 것입니다. /home/richardhenry/src/mywebsite (또는 코드를 확인하는 곳).

그렇게하면 커밋없이 코드를 테스트 할 수 있습니다. 결과적으로, 당신은 부서 지거나 쓸모없는 커밋으로 트렁크를 쓰지 않을 것입니다. 일반적으로 독립적 인 것을 독립적으로 유지하는 것은 좋은 생각 (TM)입니다.

또는 웹 서버를 작업 디렉토리와 rsync와 동기화하거나 Dev Box에서 스테이징 서버로 파일을 푸시하는 스크립트를 작성하고 스크립트를 실행하는 MakeFile 규칙 (또는 RSYNC 호출)을 추가하십시오. 당신이되고 싶다면 진짜 Fancy, Inotify 또는 일부 파일 알림 모니터를 사용하여 스크립트를 자동으로 실행하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top