2011-10-22 5 views
3

저는 현재 소스 및 리소스에 대한 "백업"솔루션으로 Dropbox를 사용합니다. 그리고 멋지고 멋지고 여러 차례 베이컨을 저장했습니다.버전 관리를위한 Mercurial이있는 보관 용 상자 보관 - 미친 아이디어?

저는 스스로 적절한 버전 제어 시스템이 필요하다는 것을 알았습니다. 이제 저장소 상자에 리포지토리를 넣고 싶지 않습니다.

한 가지 들어, 꽤 빨리 내 Dropbox 허용량을 채울 것입니다 - 다른, 나는 정말 Dropbox 및 버전 제어 소프트웨어 '파일 싸우고 싶지 않아.

그래서 나는 이런 식으로 뭔가를 (내가 의욕을 사용하고 있지만이 같은 이론이 다른 VC 물건에 적용 확신) 그 방법을

MYDOCS Folder <-- this is where the repo will go 
    .hg (for Mercurial in this case) 
    DROPBOX Folder 
     WORK FOLDER 
      PROJECT1 
      PROJECT2 
      PROJECT3 
      ... 

일을 생각하고, 내가 작업 할 모든 덮여있다 Dropbox에 의해 -하지만 내 버전 제어 Dropbox 밖에 있습니다.

분명히 DROPBOX 폴더의 모든 파일이 버전 제어를받는 것은 아닙니다. 모든 작업 (이상적이지는 않습니다)에 대해 저장소가 1 개 밖에 없지만 다른 사람이이 접근법을 사용하는 것을 볼 수 있습니까?

참고 : MYDOCS는 별도로 백업되므로 백업 빈도가 낮아 파일 손실 위험이 없습니다.

p.s.

주말에 (Mercurial/TortoiseHG를 사용하여)이 작업을 구현하는 데 약간의 시간이 걸렸으며 제대로 작동하는 것 같습니다.

공격적인 무시 필터를 설정해야합니다. (결국 "*"를 사용하고 코드를 수동으로 추가했습니다.) 그렇지 않으면 TortoiseHG는 1000s 파일을 검색 할 때마다 심장 마비를 겪습니다 변경/새 파일을 추가하십시오.

이는 기존의 프로젝트에 새 파일을 발견하지 의미 사소한 통증에 - 더 - 목 인도 - 의욕이 실제로이 같은 시간에 포함 필터를가 있다면 그것은 좋은 것입니다 ...

pps 나는 BIT를 더 쉽게 만들 수있는 밝은 생각이 있었다.

Dropbox 외부에 "Repo"라는 새 폴더를 만들었습니다. 그 안에는 모든 소스 (내 Eclipse Workspace 디렉토리 - 기본적으로 내 Dropbox 포함)가있는 Dropbox 내의 디렉토리에 Directory Junction (사용자 * nix 유형 링크)).

내가 다음 '의 repo'폴더에 내 REPO를 넣어 - 내 전체 보관을 감독 아니에요 그런 식으로, 그것의 단지 부분은 내가하기 원하는 - 그리고 그것은 여전히 ​​'내부'내 보관이 아니다)

+0

절대 Mercurial repo를 보관 용 상자에 넣지 마십시오. 크기 때문에뿐만 아니라 Mercurial은 저장소 디렉토리가 그 아래에서 변경되지 않거나 파일이 파란색으로 잠기지 않는 등 특정 기본 제약 조건에 따라 작동하며 Dropbox에서는 유효하지 않습니다. –

답변

4

지적했듯이이 접근법의 가장 큰 단점은 단일 저장소에 묶여 있다는 것입니다. Mercurial과 같은 분산 버전 제어 시스템의 가장 큰 장점 중 하나는 격리 된 작은 프로젝트에 저장소를 만들고 사용하는 것이 저렴하다는 것입니다.

버전 제어 요구 사항에 bitbucket.org을 사용하지 않는 이유는 무엇입니까? 원하는만큼 개인 저장소를 만들고 원하는만큼의 디스크를 사용할 수 있습니다. 여기서 유일한 단점은 공유 할 수있는 사용자의 수에 제한이 있지만 위에서 설명한 방법을 고려할 때 문제가되지 않는다는 것입니다.

+0

이미 BitBucket을 사용하고 있습니다. 내가하고 싶은 일은 모든 프로젝트 (이클립스로 작업 할 때, 제 유일한 대안입니다)에 대한 새로운 repo를 만드는 것입니다. 별도의 repos 또는 subrepos를 만드는 다른 솔루션은 .hg를 DROPBOX 폴더에 넣을 것입니다. 나는 확실히 원하지 않습니다. – shrewdlogarithm

+0

모든 프로젝트에 대한 레포 - 정상적인 것 같습니다. 그게 무슨 문제입니까? 왜 버전 관리가없는 프로젝트를 원하십니까? –

+0

Eclipse 프로젝트는 단일 Application/Deliverable/Piece-of-Work를 나타내는 것은 아닙니다. 나는 수십개의 도서관 프로젝트를 가지고 있습니다 - 무료 버전의 경우 무료 버전과 유료 버전을위한 별도의 프로젝트가 필요합니다 (무료 버전의 경우 비트가 비활성화 된 상태) 코드 등 – shrewdlogarithm

0

Dropbox에 .hg 디렉토리를 보관할 때 저장소 손상을 겪지 않아도되지만 결국에는 결국 더 허술하게됩니다.

+0

이 경우 나는 변경 사항을 쉽게 볼 수있는 방법으로 버전 제어를 사용하고있다. 포인트 인 타임 (기본적으로 릴리스). 나는 다른 사람들이 사용하기 위해 일할 것을 요구할 필요가 없도록 솔로 앳엠 (solo atm)을 사용합니다 ... – shrewdlogarithm

+0

저는 저에게 일하는 것을 저 지르겠습니다. 영구적이고 지울 수없는 역사는 독창적 인 작업에서도 자산입니다. 과학자들이 일지를 보관해야하는 이유가 있습니다. –

0

Mercurial은 작업 디렉토리와 동일한 레벨에 루트를 하드 코딩하므로 사용자가이를 변경할 수 있다고 생각하지 않습니다.

은 당신이 그러나 할 수있는 또 다른 디렉토리에 .hg 디렉토리를 심볼릭 링크하는 것입니다

cd WORK_FOLDER 
ln -s ../MYDOCS_Folder/.hg .hg 
hg up null # to reset the dirstate 
hg up 

의욕은 심볼릭 링크를 따라 정상으로 작동하지만, 아마 드롭 박스를 (이 올바로 수행 행동 않은 경우)하지 않습니다 것입니다. 이 작업을 수행 할 때 WORK FOLDER에서 작업을 수행하지 않도록하십시오.

나는 이런 종류의 워크 플로우를 추천하지 않는다고 솔직하게 말해서, 그것은 부서지기 쉬운 것처럼 보입니다.

+0

.hg 폴더를 이동하기 위해 심볼릭 링크를 사용한다는 생각은 무서운 것 같습니다 !! – shrewdlogarithm

+0

Dropbox에서 Mercurial을 운영하고 그런 방식으로 분리하려는 전체 개념은 여러분이 저에게 묻는다면 다소 무서운 것입니다. :) 그러나 당신이하려고하는 것을 감안할 때, 나는이 대답이 작동 할 유일한 접근법을 설명한다고 생각합니다. '.hg'에 대한 심볼릭 링크는 Mercurial의 문제가 아닙니다. –