2010-05-10 3 views
8

우리는 서로 다른 버전의 시스템을 동시에 유지 관리 할 수 ​​있어야합니다. 나는 이것이 분기를 사용하여 가장 잘했다고 가정합니다. 현재 TFS2008은 소스 제어, 작업 항목 및 자동 빌드에 사용됩니다.다른 버전을 유지 관리하기위한 최상의 소스 제어 시스템

이 작업에 가장 적합한 버전 제어 솔루션은 무엇입니까? 우리 조직은 TFS2010과 병합 중입니다. TFS2010은 시스템 버전 별 일련의 지점을 쉽게 관리하는 데 필요한 기능을 제공합니까? 우리는 각 버전을 다른 버전과 분리하여 각 버전에 대한 테스트 및 배포를 수행 할 수 있어야합니다.

개발자 팀은 5 명의 .net 개발자와 2 명의 플래시 개발자로 구성됩니다.

나는 GIT에 대해 많은 이야기를 들었다. 소스 제어를 위해 TFS 대신 GIT를 사용해야할까요? GFS와 함께 TFS2010을 사용할 수 있습니까? 누구나 비슷한 설정이 가능합니까?

모든 의견을 보내 주시면 감사하겠습니다.

감사합니다.

Kjetil.

답변

9

당신이 망할 놈을 고려해야하는 주된 이유 더 나은 관리의 핵심 (또는) 의욕은 대한 :

팀이 한 사이트에 있고 개발 과정이 선형이면 (간단한 병합 워크 플로) 중앙 집중식 VCS이면 충분합니다.

거기에서 TFS2010은 특히 branching model과 그 안에 통합 된 다른 기능 (작업 항목 계층 구조, "Gated Check-in"및 "Workflow Foundation"기반)을 통해 흥미로운 진화를 이루어 냈습니다. 그것은 VCS 측면으로 제한된 도구보다 더 나은 후보입니다.

+0

+1. 분산 버전 제어가 미래입니다. –

+0

잘 모르겠습니다 - 개인적으로 코드 검토가 포함 된보다 공식적인 프로세스를 비롯한 다양한 이유로 중앙 소스 제어를 선호합니다. gated checkin + 중앙 빌드 시스템은 모든 개발자가 허용되는 시간 내에 테스트를 실행할 수있는 시나리오가 아닌 지속적인 통합에 적합합니다. – TomTom

+1

@TomTom :이 두 가지는 상호 배타적 인 것이 아닙니다. 중앙 repo를 원한다면 하나를 만드십시오. 물론 다른 사람들은 클론을 갖고 있지만 공식적인 것은 아닙니다. 중앙 저장소에 커밋을 수락하기 전에 검토해야하는 gerrit 같은 도구가 있습니다. 그리고 지속적인 통합/자동화 빌드 도구는 git 저장소의 빌드를 다른 것으로 쉽게 시작할 수 있습니다. – Cascabel

5

TFS 2010 - 손 내려. 위대한 버전 제어 시스템이 아니라 모든 나머지 때문에. GIT는 작업 항목 추적, 지속적인 통합을 다시 선택하도록 열어 둡니다. 낮은 공급 업체 (기술의 수를 유지하는 것은.

가 여기에 훌륭한 tutorial입니다.

+0

나는 행정적인 문제에 동의하지만, 나는 또한 버전 관리 시스템으로서 TFS에 대해 많은 부정적인 의견을 갖고 있다고 생각한다. 다른 솔루션에 비해 TFS에 커다란 단점이 있습니까? – dalecooper

+1

잘 모르겠다. 2010 년 이전에 TFS에 손을 대지 않았으므로 일부 부품에 대한 명백한 관용구가 없었습니다. 나는 TFS 2010을 사용하고 지금까지 나는 그것을 좋아한다. 분명히 중앙 집중식이지만 개인적으로 나는 이것을 긍정적 인면으로 본다. SQL 서버를 사용합니다. 다시 한 번 긍정적입니다. 나는 buld 환경이 정말 마음에 든다. 비록 나에게 (어셈블리 버전 번호를 중심으로) 나 앞에서 많은 커스터마이즈가있다. – TomTom

+1

IMO - Perforce는 복잡한 분기를 관리하기에 가장 적합합니다. 전체 파일 간 분기와 '게으른'분기를 지원합니다. 즉, 분기 된 파일이 변경 될 때까지 db가 분기 된 파일의 심볼릭 링크를 유지합니다. – zebrabox

9

의욕도 일을 할 것입니다.

+3

나는 수은을 좋아한다 .- –

+3

I second Hg. 이미 주로 Microsoft의 상점 인 경우 Mercurial 지원은 git보다 훨씬 뛰어납니다. TortoiseHg는 우리에게 꽤 견고했습니다. –

+1

최근에 두사람의 프로젝트를 Merc에게 넘겨서 확인해 보도록 내 상사를 설득했습니다. 좋은 움직임이었습니다. –

1

오늘날 분산 VCS와 중앙 저장소 시스템이라는 버전 제어 시스템 (VCS)의 두 가지 유형이 주로 있습니다.

오늘날 가장 인기있는 "분산"VCS는 git와 mercurial입니다. 가장 널리 사용되는 중앙 저장소 시스템은 Microsoft의 Subversion 및 SourceSafe입니다. http://hginit.com 소개에서는 중앙 시스템에 비해 "분산 된"VCS의 우수성에 대해 설명합니다.

분산 된 VCS를 사용하는 모든 개발자는 자체 로컬 저장소를 사용합니다. 일반적으로 공용 릴리스를 보유한 공유 중앙 저장소와 함께 사용됩니다. 그러나 이것은 저장소 조직 일뿐입니다. "분산 된"VCS는 병합을 관리하는 능력면에서 순수하게 중앙 집중식 VCS보다 우수합니다.

+0

중앙 저장소 시스템에 대한 perforce 잊지 마세요 - 그것은 매우 인기 있고 또한 아주 좋은 것입니다 – zebrabox

+1

좋은 양심으로 SourceSafe 언급 할 수 있습니까? –

+0

부정적인 고스트 라이더 – Albert

0

Subversion !!!

나는 서브, + TortiseSVN + VisualSVN

http://subversion.tigris.org/
http://tortoisesvn.tigris.org/
http://www.visualsvn.com/

서브 버전을 좋아하고 Tortise 무료입니다! 그리고 VisualSVN 라이센스 당 $ 50 (하지만 당신은 사용할 필요가 없습니다 비주얼 - SVN, 그냥 VS 통합 .... 난 지금까지 필요하지 않습니다.)

다음은 세 제품 모두에 대한 자습서 및 설치 안내서입니다. 당신이 필요로하는 http://www.west-wind.com/presentations/subversion/

다른
...
http://www.dev102.com/2008/10/07/how-to-use-the-svn-client-and-start-working-with-your-subversion-version-control/

+0

거기에 있었 - majorly 빤다. 내가 함께했던 마지막 컨설팅 고객이 그것을 사용했고 매주 어딘가에 큰 문제가 발생했습니다. 주로 UI 문제 (Tortoise). 그러나 그것이 쳤을 때 고통 스러웠습니다. 그리고 500MB의 작업을 수행하는 데 성능이 어색했습니다.) 얼마나 바보 같은 관리인지는 잘 모르겠습니다. – TomTom

+0

이 이상하지 않은 경우 몇 가지 응용 프로그램에서 사용하고 아름답게 작동합니다. 결코 문제가되지 않는다! 어쩌면 그것은 setup/config에있는 것입니다 : – Albert

+0

+1은 전복을 언급합니다. 나는 Subversion & Tortoise svn에 대한 좋은 경험을 가지고 있습니다. – SoftwareGeek

0

모든 요구 사항은 TFS 2010 년 분기에 포함되어 유지 가지 격리됩니다.

TFS는 더 많은 버전 제어 시스템입니다. 또한 작업/버그 제어 시스템이며 통합 빌드를위한 도구가 있습니다. 이들이 필요하고 TFS 2010에 대한 라이센스가 이미있는 경우 다른 시스템에 시간을 낭비하지 마십시오.

OK, TFS는 배포되지 않지만 실제로는 TFS를 배포하지 않는 것이 좋습니다. 내가 물건을 체크인하자마자 (내 개인 지사에서) 매일 백업이되고 다른 사람들이 볼 수있게됩니다. (내 집/취미/개인적으로 나는 수은을 사용한다.)

다른 모든 시스템에는 건물 및 버그 추적 기능을 제공하는 도구가 있으므로 사용할 수없는 다른 도구에는 문제가되지 않으며 필요에 맞는 도구를 선택하는 데 시간이 걸립니다.

0

나는 단지 git을 좋아하고 Eclipse, Trac과 같은 다른 많은 응용 프로그램에도 통합되어있다. 망할 놈이있을 때 누가 VCS를 지불해야하는지.

리눅스 커널 개발에서 git을 사용한다는 사실은 리누스가 그렇게 말했기 때문에 알 수 있습니다. 작은 프로젝트 자체가 말하는 것이 아닙니다.

0

흩어져있는 방식으로 을 작업 할 때 좋은 개정 관리 시스템이 도움이 될 것입니다. 내가 흩어지기를 좋아하기 때문에가 아니라, 매일의 요구가 어떻게 작동 하는지를 산란시키는 방법이 있기 때문에. 그룹이 알맞은 크기의 프로젝트에서 병렬로 작업 할 때 확산이 악화됩니다.

사람 A가 기능 1을 작업 중입니다. 사람 B가 기능 2를 작업 중입니다. 사람 C가 출시 된 버전에서보고 된 버그를 수정하는 중입니다.

A가 작업하는 동안 그는 코드에서 오류를 관찰하고 그것을 간과하지 않도록 자리에 고쳐서 계속합니다. 사람 C가 3 번 수정합니다.

A, B 및 C는 채팅을하고 B는 버그 수정 A가 완료되었지만 A의 기능이 아니라 즉시 님이 수행 한 버그 수정이 필요하다고 생각합니다. C가 A의 버그 수정을 원합니다. A는 C의 버그를 수정하려고합니다. 등등.

보스는 기능 1, 버전 2, 및 버전이 모두 있고 버전이 이고 유지 관리되지 않는 버전을 원한다고 결정합니다.

도구가 이러한 활동에서 당신을 얼마나 잘 지원합니까? 이 활동에서 도구가 당신을 방해합니까?

저는 'darcs'에 정말 만족합니다.

많은 개정 관리 시스템을 사용해 보았습니다. 나는 더 나은 곳을 찾지 못했습니다.

간단하고 정확합니다.

엄격하기 때문에 신뢰할 수 있고 예측할 수 있습니다. 간단하기 때문에 도움이되며 길을 잃지 않습니다.

제 두 번째 선택 사항은 git입니다.

힘내는 매우 좋지만 엄격한 것은 아니므로 순서를 중요하게 생각하지 않으면 어떤 경우에 을 주문해야합니다. 힘내 더 잘 알려져있다 더 나은 이력서 총알.

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

1

내 경험을 바탕으로, 당신은 DVCS, 힘내이나 의욕 (수은)를 찾고 있다면 것은 길을 가야하는 것입니다. 그러나 Git과 Hg를 결정하는 것은 어려운 작업입니다.

주로 Windows를 사용하고 있습니까? 그렇다면 Hg는 아마도 당신의 친구 일 것입니다. TortoiseHg와 함께 사용하면 Git과 비교하여 사용하기 쉽고 매우 유용한 도구입니다. 조금 복잡하지는 않지만 QUIT처럼 부드럽지 만 힘내 할 수있는 대부분의 것들을 처리합니다.

Linux 또는 Unix 쉘을 사용하는 경우 Git이 최선의 선택입니다. 개인적으로 git 쉘 유틸리티를 사용하여 Windows에서 Git을 사용합니다. (Cygwin에서도 잘 작동합니다.) Git이 Mercurial이하는 것보다 효과적으로 프로젝트를 처리하는 것을 발견했습니다. 그러나 커맨드 라인에 익숙하지 않다면 TortoiseGit은 TortoiseHg보다 좀 더 복잡하고 (clunky) 더 빠르다는 것을 알았습니다. 하지만 bash에 익숙하기 때문에 git는 확실히 나의 취향이다. 내가 Hg보다 더 빠르고, 더 가볍고, 다용도 다. 그것은 조금 더 복잡하기 때문에, 학습 곡선이 더 높고 조만간 당신이 실수를하는 경향이 있습니다. 내 추정 그래서

, 진짜 질문은 다음과 같습니다

윈도우 (수은) 또는 유닉스 (힘내)

그래픽 (TortoiseHg) 또는 명령 줄 (힘내 쉘)

관련 문제