2009-09-30 5 views
29

나는 더 나은 DVCS for .NET 개발자가 무엇인지 궁금 해왔다. Mercurial이 Windows에서 더 잘 작동하는 것처럼 보였던 다양한 정보를 읽음으로써, Git이 Windows 및 Visual Studio의 고품질 도구를 제공 할 때 Mercurial을 따라 잡았습니다. 누구든지 .NET 개발 환경에서 좋은 정보 나 경험을 가지고 있습니까?.NET 개발자 용 Git vs. Mercurial?

답변

24

저는 .NET 개발을 위해 Mercurial을 1 년 넘게 사용 해왔고 뛰어난 성과를 올렸습니다. 멋진 도구 (탐색기 부가 기능 및 비주얼 스튜디오 도구)는 사용하지 않지만 TortoiseHg와 같은 도구는 사용할 수 있음을 인정합니다. 나는 커맨드 라인 툴을 사용하는 것이 쉽다는 것을 발견했다. 단지 .hgignore에 (와) 와일드 카드를 몇 개만 지정하면 (Blaenk's answer처럼) 좋은 결과를 얻을 수있다.

나는 git가 hg와 얼마나 잘 통합되어 있는지 모르지만, 역순으로 사용하기 위해 나는 과거에 hg-git을 사용했고 정상적으로 작동했다. 그러나 hg의 새로운 릴리스가 나올 때까지는 여전히 다소 불안정합니다.

그래서 당신은 수은에서 github을 사용할 수 있어야하고, 네이티브 수은 리포지에는 항상 (imo) 똑같이 멋진 bitbucket.org이 있어야합니다. 편집 : .NET 오픈 소스 프로젝트에 중점을 둔 codeplex이 이제는 Git 및 Mercurial 저장소를 제공한다는 점에 유의하십시오.

그리고 "인기"는 선택의 근거가되는 매우 어려운 기준입니다. DVCS에는 높은 프로필 사용자가 있습니다. Git에는 리눅스 커널이 있지만 물론 hg 사용자에게는 mozilla 및 Python 프로젝트가 포함됩니다.

수정 : 정규 상행위를 얻은 것으로 보입니다. 위에서 쓴 모든 것은 글쓰기 당시에는 사실 이었지만 이전의 자기 비트 버킷에 대해서는 더 이상 GitHub만큼 훌륭하지 않습니다. GitHub는 더 나은 기능을 가지고 있으며 내 관점에서 보면 (대부분 F # 오픈 소스 개발) 다른 모든 사람들이 거기에 있으므로 훨씬 더 나은 네트워크 효과를 얻을 수 있습니다. 얼마 전 codeplex/bitbucket에서 GitHub로 모든 프로젝트를 옮기고 즉시 기여금을 받기 시작했습니다. 반면에 codeplex/bitbucket에서는 아무 일도 없었습니다.

+2

VS 2008에 Mercurial 기능을 추가하는 HgSccPackage 플러그인이 있습니다. http://bitbucket.org/zzsergant/hgsccpackage/overview/ –

+4

우리 팀은 VS 통합을 위해 http://VisualHg.codeplex.com을 사용해 왔으며 훌륭하게 일 해왔다. 우리는 hgscc보다 더 좋아합니다. – jwanagel

8

내가 그 주어진 자식의 기하 급수적 인 인기를 성장, (TortoiseSVN을 같은과 전복의의 유사 ) 창에 대한 자식의 좋은 지원을 생각은, 도착 시간 문제입니다 바인딩됩니다. 가장 인기있는 것으로 보이는 두 프로젝트는 msysgit이고, TortoiseGit (또한 msysgit 사용)은 tortoiseSVN과 유사합니다. git은 점점 더 대중화되고 있습니다. Windows에서 git 도구가 개발되면서 문제가 될 가능성이 희박 해지고있을 가능성이 더 커지면 큰 문제로 인해 수정 사항을 훨씬 쉽게 찾을 수 있습니다. userbase.

그동안 나는 this series 가이드를 매우 유용하게 사용하고 있습니다.

obj 
bin 
_ReSharper.* 
*.csproj.user 
*.resharper.user 
*.resharper 
*.suo 
*.cache 
*~ 
*.swp 
을 : 당신이 정말로 간단하다, .gitignore을 사용하는 방법을 조회하면 쉽게해야합니다 특정 파일을 무시 할 수있다으로 실행할 수

문제, 여기에 일련의 언급 파일과 와일드 카드의 목록입니다

또한 줄 끝과 관련된 몇 가지 문제점을 보았습니다. 이를 위해서는 this question을 확인해보십시오.

1

저는 Mercurial을 진지하게 사용하지 않았지만 Subversion for .NET 개발에서 Git으로 전환을 마쳤습니다. 내가 사용하고있는 배포본은 Git Extensions이며 표준 (msys) Git과 그래픽 프론트 엔드, 일부 Windows 탐색기 통합 및 Visual Studio 플러그인을 설치합니다.또한 좋은 문서와 함께 배송됩니다. 탐색기 통합은 TortoiseSVN이하는 파일 아이콘에 깔끔한 상태 마커를 제공하지 않지만 요점은 마우스 오른쪽 버튼 클릭 메뉴에 추가됩니다. 이 모든 도구가 잘 작동합니다.

내가 발견 한 가장 큰 문제점은 힘내는 당신이 좋은 결과를 얻기위한 개념을 이해할 것을 요구한다는 것이다. Git Extensions의 그래픽 인터페이스는 Git 기능에 비해 얇은 쉘이므로 서브 모듈과 관련하여 어려움을 겪으면 Git Extensions에서 제공하는 도구 중 아무 것도 해당 문제를 해결할 수 없습니다. 이제는 Git 온라인에 대한 많은 튜토리얼과 비디오가 있습니다.

기본적으로 Git의 Windows 빌드는 줄 끝 문자를 CRLF로 변환합니다. 우리가 완전히 MS 상점 인 것처럼 이것은 우리에게 올바른 행동입니다.

8

필자는 글을 쓰는 시점에서 다른 프로젝트, 주로 java 및 .net 프로젝트에서 TortoiseGitTortoiseHg (mercurial 용)을 모두 사용했습니다. TortoiseHg가 훨씬 더 안정적이고 완벽하게 기능하기 때문에 TortoiseHg이 앞설 것이라고 말합니다.

머큐리얼 plugin for Visual Studio 2008가 있지만 플러그인 자체가 안정 될 때까지 TortoiseHg를 사용하는 것이 좋습니다. git과의 통합에 대해서는 잘 모르겠지만 VS here에 대한 플러그인에 대한 이야기가 있습니다.

3

Git과 Mercurial은 모두 .NET 개발자에게 도움이되지만, Mercurial은 Windows 지원 기능이 뛰어나다는 것은 잘 알려져 있습니다. 또한 상용 툴을 고려한다면, Windows에서 분산 형 개발 자에 대한 다음 자습서를 읽는 Plastic SCM을 살펴 보는 것이 어떻습니까? http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html 업데이트 이제 Plastic SCM에는 무료 Community Edition이 있습니다.

0

근검은 VS를 사용하는 동안 이름 바꾸기 감지 기능을 사용하면서 편리하게 사용할 수있는 주요 이점이 있습니다. 명령 줄 인터페이스 만 사용하려면 HG에서 VS에서 이름을 바꿀 때 파일 이름을 바꾸어야합니다. 이름 바꾸기를 원활하게 감지합니다 (파일이 아닌 내용을 추적 함). 파일에서 일부 변경을 수행하더라도 이름 바꾸기를 감지합니다.

+3

Hg는 (addremove 명령을 통해) 이름 바꾸기 감지도 지원합니다. VisualHg를 사용하기 때문에 VS에서 이름 변경이 자동으로 Hg로 이름이 바뀌므로 설명하는 문제가 없습니다. – jwanagel

4

git이 unix/linux 사용자에게는 자연스러운 그림이지만 Windows 및 .net 사용자에게는 더 좋아지고 있습니다. 그러나 수은은 두 사람 사이에서 더 나은 선택 일 수 있습니다. 중앙 집중식 개발과 달리 선택의 여지가 많은 곳에서는 "진정한"dvcs 도구가 거의 없습니다. 내가 아는 한, 상업용 시스템에는 플라스틱 scm과 위에서 언급 한 두 가지 도구 만 있습니다. 나는 clearcase 측에서 왔고 pvcs, p4 및 기타 전통적인 scm 도구에 대한 경험이 있습니다. 나는이 사이트를 통해 그리고 아마 내가 시각 한 관점에서 볼 때 플라스틱으로 넘어 졌을 것입니다. 당신이 말한대로 당신이 창문 상점 더 있다면, 그것은 플라스틱, 수은, 그리고 자식 순서에있을 수 있습니다. 만약 당신이 더 유닉스/리눅스, 자식 자식 아마도 첫 번째 논리적 인 선택입니다. 이 도움이되기를 바랍니다!