2008-11-04 1 views
4

현재 Subversion을 설정하여 Eclipse PDT에서 변경 사항을 적용 할 때 변경 사항을 커밋 할 수 있으며/home/administrator/프로젝트 파일에 저장됩니다. 이 파일에는 Subversion에서 권장하는/branches/tags 및/trunk 디렉토리가 있습니다. 내가 제대로 저장소에 파일을 업로드하는 데 문제가 없지만 서버에서 라이브로 만들려면/var/www에 Linux의 파일을 "mv"해야합니까? 이 작업을 수행하는 자동 프로세스가 누락 되었습니까? 나는 우리가 저장소에/var/www 디렉토리를 만들고 싶지 않다고 생각하지만, 모르겠다.프로덕션 서버에서 Subversion을 사용하여 파일을 라이브로 만드는 가장 좋은 방법은 무엇입니까?

답변

7

www 디렉토리에 svn export을 넣을 수 있습니다. 그러면 .svn 디렉토리가없는 "깨끗한"버전의 repo를 얻을 수 있습니다.

cd /var/www 
svn export /home/administrator/MyProject/trunk MyProject 

편집 :

  • 실행 svn export --force /home/...../ MyProject이 중지됩니다 ... 코멘트에서 좋은 아이디어

    당신이 내 보낸 사본을 업데이트 할 경우에 대한 몇 가지 옵션을 추가 그것은 기존 파일을 덮어 쓰는 것에 대해 불평합니다. 이 방법은 저장소에서 파일을 삭제해도 www 폴더에 계속 남아 있음을 의미합니다.
    svn export /home/..../ MyProject_20081105
    을 다음 해당 폴더에 심볼릭 링크를 만들 :

  • 는 새로운 디렉토리에 각각의 시간을 수출하여 SVN 명령을 변경

  • ln -s MyProject_20081105 MyProject
    그냥 삭제하고 심볼릭 링크를 때마다 "해제"를 다시 작성하십시오. 이 경우 내보내기 디렉토리는 www 폴더에있을 필요가 없습니다.
+0

와우, 간단합니다!그리고 아마 리눅스에서 수동으로 전체 디렉토리를 수동으로 옮겨서 .svn 디렉토리를 복사했을 것입니다. 도와 주셔서 감사합니다! – Matt

+0

이것이 반복되는 경우 파일에 이미 존재한다고 불평하지 않도록 내보내기에 '--force'를 추가해야합니다. –

+0

새 디렉토리로 내보내고 www-root를 심볼릭 링크로 만드는 것이 좋습니다. 내보내기가 완료되면 심볼 링크를 업데이트하여 새 디렉토리를 가리키고 이전 심볼을 삭제하십시오. – troelskn

2

당신은 단순히는/var/www가 폴더에 저장소의 사본을 확인하고 (등 또는 새로운 지점/태그로 전환) 당신이 필요로 할 때마다 그것에 SVN 업데이트를 실행할 수 있습니다. 따라서 로컬 컴퓨터에서 변경 및 업데이트 한 리포지토리 하나와 웹 서버에서 다른 복사본을 하나씩 보유하게됩니다.

SVN 저장소를 사용하면 이전 버전으로 되돌릴 수도 있습니다.

1

커밋에 의해 변경된 모든 파일을/var/www 디렉토리로 이동시키는 커밋 후크를 만들 수도 있습니다.

여기

FTP를 통해 원격 호스트에 변경된 파일을 업로드 파이썬으로 작성 예는 다음과 같습니다

당신은 아마 당신이 어떤 주어진 시간에 생산에있는 파일을 기억하고 싶을 것이다 http://svn.haxx.se/dev/archive-2007-08/0287.shtml

0

- 따라서 "release"태그를 유지하십시오 (예 :/project/tags/release). 석방을 원하면 트렁크를 거기에 복사하십시오. 그런 다음 svn은 해당 릴리스 태그를 내 보냅니다.

또는 무엇인가.

0

많은 사람들이 on here 및 다른 포럼에서 배포 용으로 Capistrano을 사용하는 것에 대해 이야기했지만, 개인적인 경험이 없습니다.

관련 문제