푸시간에 DVCS (Git, Mercurial) 저장소의 로컬 체크 아웃을 백업 해 줄 수 있습니까? 어떻게 그렇게합니까? 하드 드라이브가 아직 안정적이지 않은 코드 묶음을 작성한 후에 실패한다면 (즉, 아직 푸시되지 않은), 어떻게 되 찾을 수 있습니까?서버로 푸시하는 동안 DVCS의 로컬 체크 아웃을 어떻게/어디에서 백업해야합니까?
답변
저는 편집증 환자입니다.
은 (git init --shared --bare
로 설정) 우리의 중앙 저장소 외에, 내가 네트워크 드라이브에 설정 다른 거울 저장소 있습니다
cd /network/drive
git init --bare
cd /local/repo
git remote add backup --mirror /network/drive
git push backup
난 그냥 가끔 backup
에 밀어을, 그리고 미러링 된 저장소이기 때문이다 , 그것은 본질적으로 내 로컬 저장소의 전체 복제본입니다.
지난 주에 일부 사람들이 비표준 코드를 비공식 코드를 사용하여 권위있는 저장소에 저장하는 방법을 사용한다고 들었던 지난 주 회의가 있었기 때문에이 질문을하는 것이 재미 있습니다. (참고 : 그것은 마크가 말하는 것과는 다릅니다). 나에게 너무 잘못되어 Continuous Integration 방식으로 rsync 기반 백업 서버를 설치하여 보완 버전 제어 및 백업 도구의 보완 방법을 알게되었습니다.
아직 서버를 설치하지 않았지만 ssh 서버가 실행되는 예비 유닉스 머신이 있으면 간단한 crontab이 작업을 수행 할 수 있습니다. ssh를하고 rsync를 (당신이 NFS 마운트 파티션이있는 경우, 그것도 간단하게 될 것입니다)를 사용하여 :
$ crontab -l
# m h dom mon dow command
0,15,30,45 * * * * if `ping -c 1 machine.domaine.com
> /dev/null 2> /dev/null` ; then export SSH_AGENT_PID=
"`pgrep -l ssh-agent | cut -d' ' -f1`" ; export SSH_AUTH_SOCK=
"`/usr/bin/find /tmp -path '*ssh-*' -type s -user name -group
gname -name '*agent*' 2> /dev/null`" ; /usr/bin/rsync -avz -e ssh
--quiet /home/name/src [email protected]:/home/name/backup/src ; fi
(I, 당신은 SSH를 사용하여 시스템에 로그인 할 수 있다고 가정 당신은 ssh를 에이전트 실행되고 있고 ssh-add를 사용했다).
이렇게하면 15 분마다 진행중인 작업이 저장되며 rsync는 변경된 사항을 매우 빨리 파악하므로 워크 스테이션이 너무 느려서는 안됩니다. 디스크 이 다운되면 로그 machine.domain.com, 에 백업 된 자격 증명 :-)을 사용하고 계속 작업하십시오.
희망이 있습니다.
건배,
Christophe.
= 보안은 대부분 미신입니다. 그것은 자연에 존재하지 않습니다. - Helen Keller =
예. 커밋 사이에는 일반적인 백업 시스템을 사용해야합니다.
실제로 버전 제어에는 백업과 관련이 없습니다.. 이 말은 개발자, 비서, 관리자 또는 기타 다른 직원이든 모든 직원이 백업 시스템을 사용해야한다는 의미입니다. 데스크톱은 버전 제어 시스템을 사용하는지 여부에 관계없이 백업해야합니다.
저는 소프트웨어 개발을 구조화하고 많은 사람들이 함께 작업 할 수 있도록하는 데 사용되는 중요한 제어 도구로 버전 제어 시스템을 사용합니다. 여러 개의 병렬 릴리스를 유지해야하거나 버그를 조사해야 할 때 필수적인 도구입니다. 백업 시스템을 사용하여 버그가 처음 도입 된 시점을 파악할 수는 있지만 백업 시스템을 사용하여 여러 개의 병렬 분기를 유지할 수는 없습니다. 따라서 버전 제어 시스템은 백업 시스템 이상을 제공하며 백업 시스템은 커밋되지 않은 모든 파일을 처리하여 버전 제어 시스템을 보완합니다.
이제 물론 리포지토리의 백업을 직접 만들고 싶습니다. 분산 버전 제어 기능을 사용하면 로컬 저장소에서 원격 백업 서버의 다른 저장소로 쉽게 이동할 수 있습니다. 이렇게하면 VCS가 잠금을 처리하고 백업 서버에서 일관된 상태를 유지하도록 보장합니다.
- 1. 열려있는 동안 DBF 파일을 백업해야합니까?
- 2. HEAD^체크 아웃을 수정하는 방법
- 3. TeamCity에서 수동으로 Subversion 체크 아웃을 삭제해도 되나요?
- 4. SharePoint에서 체크 아웃을 무시할 수 없습니다.
- 5. 전 직원을위한 TFS에서 체크 아웃을 취소하는 방법
- 6. NAV로 svn 체크 아웃을 삭제 하시겠습니까?
- 7. Perl을 사용하여 CVS 체크 아웃을 수행하려면 어떻게해야합니까?
- 8. SVN에서 특정 디렉토리의 체크 아웃을 방지하려면 어떻게해야합니까?
- 9. 로컬 서버에서 원격 서버로 로컬 복제 또는 서버에서 복제
- 10. 로컬 브랜치 만들기, 리포지토리에 푸시하는 방법?
- 11. Mercurial 서버로 로컬 워크 스테이션
- 12. 맨손으로 - 무엇을 백업해야합니까?
- 13. 원격 서버에서 최신 버전의 체크 아웃을 강제 실행하는 방법은 무엇입니까?
- 14. rebaseing 후 푸시하는 방법?
- 15. TFS : 한 서버에서 체크 아웃, 다른 서버로 체크 아웃
- 16. 유닛 테스트 : 로컬 서버로 무거운 서버로드 복제
- 17. TortoiseSvn을 사용하여 체크 아웃을 수행 할 때 오류 200이 발생했습니다.
- 18. Magento - 손님 체크 아웃을 지원하는 다운로드 가능한 제품?
- 19. Hudson에서 릴리스 태그 이름으로 CVS 체크 아웃을 수행하는 방법은 무엇입니까?
- 20. 체크 아웃을 수행하지 않고 SVN 파일을 업데이트하는 방법은 무엇입니까?
- 21. VS2008 및 ClearCase : 개방 솔루션이 이유없이 체크 아웃을 요청합니다.
- 22. VS2005 - "View Designer"를 사용하여 양식의 체크 아웃을 자동으로 요청합니다.
- 23. 배송을 필요로하지 않는 웹 사이트에 PayPal 체크 아웃을 추가하려면 어떻게해야합니까?
- 24. exec() 함수는 svn 체크 아웃을 규칙 화하지 않습니다.
- 25. scons는 Subversion 체크 아웃을 지원합니까? 보인다 일부 사이트에서
- 26. 로컬 컴퓨터에서 호스팅 서버로 데이터베이스를 전송
- 27. XML 필드가 로컬 서버로 전송되지 않음
- 28. Facebook iframe 응용 프로그램이 로컬 서버로 리디렉션됩니다.
- 29. Git a/o DVCS의 엘리베이터 피치
- 30. 효율적으로 리베이스하고 로컬 git 브랜치를 푸시하는 방법은 무엇입니까?
+1. 작업 카피는 매우 임시적인 커밋에만 사용해야합니다. DVCS를 사용하면 다른 사람의 일을 깨뜨리지 않기 때문에 일찍 그리고 자주 저지르는 습관에 빠져야합니다. 또한 백업을 위해 커밋하고 푸시 할 때 알 수없는 중간 상태의 임의 스냅 샷이있는 것과 달리 이름이 지정된 알려진 상태가 있습니다. crontab 등을 사용하면 백업을 수행하면 정상적인 백업 리포지토리보다 훨씬 많은 시간을 사용하여 조각을 가져올 수 있습니다. –