2010-03-24 7 views
10

나는 물건을 백업하는 큰 팬이다. 내 중요한 학교 에세이 등을 보관 용 보관함 폴더에 보관합니다. 내 사진이 모두 외장 드라이브에 복제되었는지 확인합니다. 나는 중요한 파일을 서버 내부의 두 드라이브 (예 : 소프트웨어 RAID 1)에 미러링하는 홈 서버가 있습니다.Mercurial 로컬 저장소 백업

내 코드의 경우 Subversion을 사용하여 항상 백업했습니다. 트렁크 폴더를 내 응용 프로그램의 안정된 복사본으로 유지하지만 내 사용자 이름으로 명명 된 분기를 만들고 내부에 작업 복사본이 있습니다. 그 지점에있는 코드가 내 백업이라는 것을 알고 그 지점에 대한 커밋 간에는 거의 변경을하지 않습니다.

이제 저는 Mercurial에 대해 살펴 보았습니다. 나는 이것을 사용하지 않았기 때문에 아직 완전히 사용하지 않았 음을 인정해야합니다. 하지만 서버 측 저장소가 있고 로컬 저장소의 형태로 작업 디렉토리에 복제 한 것 같습니다. 그런 다음 작업 할 때 해당 로컬 리포지토리에 커밋을하고 다른 사안과 공유 할 상태가되면 서버의 부모 리포지토리에 hg push을 할당합니다.

안정되고 테스트가 완료된 버그없는 코드를 푸시 할 때 백업은 어디에 있습니까?

몇 가지 생각을 한 후에 백업 목적으로 사용하지 않는다고 결론을 내 렸으며 사용자가 직접 처리했다고 가정합니다. 진행중인 코드가 서버에 푸시되지 않았기 때문에 내 Mercurial 로컬 저장소를 보관 용 계정이나 다른 백업 위치에 보관해야합니다.

꽤 많습니까, 아니면 놓친 것이 있습니까? Mercurial을 사용한다면 로컬 저장소를 어떻게 백업합니까? 오늘 아침에 컴퓨터를 켜고 하드 드라이브가 화염에 휩싸 였다면 (또는 더 읽기가 좋지 않거나 OS가 손상된 경우 ...) 무엇을 잃을까요? 모듈을 개발하고, 테스트 사례를 작성하고, 문서화하고 주석을 달고, 바이러스가 귀하의 로컬 저장소를 지우는 지난 한 주 동안을 보냈다면 그 유일한 복사본이 아닌가?

그러면 모든 로컬 저장소에 대한 원격 저장소를 만들고 항상 밀어 넣으시겠습니까?

어떻게 균형을 찾으십니까? 코드가 백업되었는지 어떻게 확인합니까? Mercurial을 백업으로 사용하는 것과 로컬 파일 시스템 백업 유틸리티를 사용하여 로컬 저장소를 안전하게 유지하는 것 사이의 경계는 어디입니까?

답변

11

Subversion을 '백업'으로 생각해도 괜찮습니다.하지만 정말 Subversion에 본질적이지 않은 별도의 컴퓨터에있는 덕분에 그렇게되고 있습니다.Subversion 서버가 개발 머신과 동일한 머신이라면 (리눅스 세계에서는 드문 일이 아니지만), 하드웨어 장애, 도난, 화재 등으로부터 보호받을 수 있다는 의미에서 백업되지 않습니다. 실제로, 이 경우 백업 된 데이터는 전혀 없습니다 - 현재 코드는 두 곳에서 존재할 수 있지만 리포지토리의 다른 모든 항목 (예 : 개정 내역)은 원격 서버의 한 위치에만 있습니다.

그것은 Mercurial과 완전히 동일합니다. 단, 별도의 서버에 대한 필요성을 없애기 때문에 백업 할 필요가 있다는 부작용이 아니라 백업에 대해 명시 적으로 생각해야합니다. 서버 어딘가에. 분명히 다른 Mercurial 저장소를 어딘가에 설정하고 변경 사항을 주기적으로 푸시하고 백업을 고려할 수 있습니다. 또는 다른 중요한 디렉토리를 백업하는 것과 같은 방법으로 로컬 저장소를 백업하십시오. 모든 개정 내역 및 기타 메타 데이터를 포함하여 저장소의 전체 사본을 로컬에 가지고 있다면 Subversion에서 현재 수행하고있는 방식보다 훨씬 편리하고 안전합니다.

+0

mercurial도 모든 저장소에서 업데이트 된 기록 (추적 된 분기)을 보존합니다. – kriss

2

변경 사항은 사용자가 누를 때만 원격 디렉토리로 이동합니다. 커밋은 로컬에 머물러 있지만 리포지토리를 복제하면 얻을 수 있습니다. 그렇다면 네, 당신이 당신의 물건을 서버 저장소에 갖기를 원하면 "항상"밀어 넣어야합니다.

다른 한편으로는 여러 대의 기계를 가지고 하나에서 다른쪽으로 컨텐츠를 밀어 넣는 것을 멈추게하는 것은 없습니다. 모든 수은 저장소 (mercurial repository)는 "hg serve"라고 입력하면 수초 내에 서버로 바뀔 수 있습니다.

나는 정말로 당신에게 답을 줄지 모르겠다.하지만 나는 또한 나의 저장소의 많은 클론들과 함께 백업의 큰 팬이고 이런 방식으로 관리한다. (나는 또한 패치 모드로 작업하기 위해 대규모의 mq를 사용하지만 그것은 또 다른 것이다. 이야기).

추신 : 나는 파일 시스템 백업을위한 도구로 수은을 고려하고 있습니다. 나를 괴롭히는 유일한 이유는이 목적을 위해 diff 기능을 사용하지 않고 모든 파일을 바이너리로 취급하는 것을 선호하지만 쉽게 처리 할 수 ​​있어야합니다.

9

"숨겨진".hg 디렉토리는 모든 로컬 커밋을 저장합니다. 표준 백업 프로그램을 사용하여이 디렉토리를 백업 할 수 있습니다.

+2

변경 사항이 적용되었다고 가정하면 백업해야 할 유일한 것은 .hg 폴더입니다. 누군가 이것을 확인할 수 있습니까? –

관련 문제