2012-04-19 2 views
2

내가 일하는 회사에서 우리는 프로젝트를 시작하고 저와 2 명의 다른 개발자가 회사의 첫 번째 개발자이기 때문에 처음부터 시작합니다. 우리는 일의 기반을 마련하려고 노력하고 있습니다.어떤 VCS를 사용해야합니까?

우리는 앞으로 Windows Phone과 Android 및 아마도 iPhone으로 발전 할 것이기 때문에. WP 및 Android 용 Visual Studio 2010 및 IntelliJ를 각각 사용할 예정입니다. 여기에서 선택할 항목이 많지 않으므로 조언을 환영합니다.

우리 모두가 SVN을 많이 사용했지만 우리 중 2 명은 TFS 버전 컨트롤을 사용했지만 우리는별로 마음에 들지 않았습니다. 특별히 체크 아웃해야했습니다. 우리 중 하나가 파일을 변경하지 않더라도 충돌을 받고 편집 할 수 있습니다. 힘내고 우리가 방금 그걸 가지고 놀았던 수은.

누구나 이들 간의 주요 장점은 무엇인지에 대한 통찰력을 제공 할 수 있습니까?

  • 우리는 간단한 병합 프로세스 (tfs는 여기에서 손실되는 것처럼 보입니다)로 무언가를 원합니다.
  • 우리가 사용하는 IDE에서 (가능하다면) 사용할 수 있습니다 (우리가 알고있는 한 tfs와 svn은 둘 다 지원되지만 다른 것에 대해서는 확실하지 않습니다).
  • 쉬운 태깅 및 분기.
  • 유지 관리가 용이 ​​한 중앙 저장소 (자식과 수은 배포 이후)
  • 비용은 문제가되지 않습니다.

감사

+0

나는 당신이 그것을 알고 있기 때문에 나는 단지 Svn을 고수하고 싶다. 그것은 훌륭한 제품이다! –

+3

여러분이 개발을 위해 Windows를 사용하고 학습을 쉽게하기 위해 Mercurial을 사용하는 방법을 배웁니다. Mercurial (Mercurial/Git을 사용하여 호스팅을 제공하는 http://www.bitbucket.org와 같은 공지 사항)에는 여전히 중앙 저장소가있을 수 있습니다. Mercurial은 '싼'브랜치를 가지고 있으며, 마스터 레포 (master repo)까지 밀어 넣기 전에 로컬 커밋을 수행 할 수있는 기능을 제공합니다. svn도 많이 사용하지만 로컬 커밋, 빠른 분기 (아마도 SVN 1.7에서는 차이가 있습니까?), 병없는 병합과 같은 hg/git 기능을 놓치고 svn에서 많은 것을 발견하게됩니다. – birryree

+0

@birryree : Gitsters가 그걸로 맞서 싸울 것을 요구하고 있습니다.) ... 그들은 준비가되어 있고 더 많은 것들을 너무 많이 soooo했습니다. 모든 실제적인 목적을 위해서 나는 Git과 Mercurial을 동등한 것으로 간주하고 대부분 도구 지원을 고려한다. – 0xC0000022L

답변

4

취향의 문제. 그것만큼이나 간단합니다.

Git, Hg 및 Bzr은 기능의 95 %와 거의 동일하며 대부분의 사용자가 원하는 대부분의 기능을 제공합니다. 여전히 분기를 위해 다른 의미를 사용합니다.

모든 DVCS는 병합이 우수합니다.

내 취향에 따라 Windows에서 매우 열등하지만 다른 모든 시스템에서는 다른 두 시스템과 동등합니다.

중앙 저장소는 필수 항목이 아니고 모두에서 규칙입니다.

+0

호기심, 당신은 왜 "모든 DVCS가 합병에있어서 우월"이라고 말하는지 설명 할 수 있습니까? 몇 가지 예가 훌륭합니다. –

+0

기본적으로 Subversion은 v 1.5에서 도입 된 "병합 추적"에 관한 것입니다. 그들의 디자인 때문에 모든 DVCS는 그 상자를 그대로 사용하는 것 같습니다. – 0xC0000022L

0

"Go Live"(이미 프로덕션 환경에서 사용할 수 있음)로 베타 버전으로 출시 된 TFS 11을 사용하면 "로컬 작업 영역"이라는 새로운 종류의 작업 영역을 갖게 될 것입니다.

파일을 편집하기 위해 체크 아웃 할 필요가 없으며 변경 사항이 백그라운드에서 (VS 또는 다른 소프트 또는 쉘에서 오는지 여부에 상관없이) 모니터링되므로 체크인시에 "조정"할 수 있습니다. 또 다른 이점은 TFS 서버에 연결하여 연결할 필요가 없다는 것인데, 이런 경우에는 끔찍한 온라인/오프라인 모드가 더 이상 존재하지 않습니다.

Visual Studio에서 사용하는 병합 도구를 버리고 세 가지 방식으로 병합을 설정하면 KDiff3 또는 Beyond Compare를 사용하여 최상의 결과를 얻을 수 있습니다. 기본 트릭을 알게되면 TFS와의 병합 프로세스가 가장 좋습니다. Visual Studio 11에는 새로운 comp/diff 도구가 있으며 체크 아웃 할 가치가 있습니다.

DVCS는 대부분 오픈 소스 프로젝트에 적합합니다. 원하는대로 브랜치를 만들 수 있기 때문입니다. 병합에 관한 이전 의견에 더 동의하는 것에 대해서는별로 동의하지 않습니다.병합은 항상 고통 스럽지만 3 방향 병합 (충돌을 줄이는 가장 효율적인 방법)의 이점을 누릴 수있는 시나리오에 있어야합니다.

아마도 TFSPreview.com 플랫폼에 시도해 볼 수 있습니다. 정말 좋습니다.

+0

그래서 Git/Hg/Bzr에서의 병합은 CVS 나 초기 SVN보다 덜 고통스럽지 않습니까? ... 재미있는 :) ... 오 잘. – 0xC0000022L

+0

아니, TFS와 DVCS 도구의 병합을 비교했다. – Nock

+0

아, 글쎄, 나는 논평 할 수 없다. 나는 TFS를 충분히 잘 모른다. – 0xC0000022L

관련 문제