나는 더 나은 DVCS for .NET 개발자가 무엇인지 궁금 해왔다. Mercurial이 Windows에서 더 잘 작동하는 것처럼 보였던 다양한 정보를 읽음으로써, Git이 Windows 및 Visual Studio의 고품질 도구를 제공 할 때 Mercurial을 따라 잡았습니다. 누구든지 .NET 개발 환경에서 좋은 정보 나 경험을 가지고 있습니까?.NET 개발자 용 Git vs. Mercurial?
답변
저는 .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에서는 아무 일도 없었습니다.
내가 그 주어진 자식의 기하 급수적 인 인기를 성장, (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을 확인해보십시오.
저는 Mercurial을 진지하게 사용하지 않았지만 Subversion for .NET 개발에서 Git으로 전환을 마쳤습니다. 내가 사용하고있는 배포본은 Git Extensions이며 표준 (msys) Git과 그래픽 프론트 엔드, 일부 Windows 탐색기 통합 및 Visual Studio 플러그인을 설치합니다.또한 좋은 문서와 함께 배송됩니다. 탐색기 통합은 TortoiseSVN이하는 파일 아이콘에 깔끔한 상태 마커를 제공하지 않지만 요점은 마우스 오른쪽 버튼 클릭 메뉴에 추가됩니다. 이 모든 도구가 잘 작동합니다.
내가 발견 한 가장 큰 문제점은 힘내는 당신이 좋은 결과를 얻기위한 개념을 이해할 것을 요구한다는 것이다. Git Extensions의 그래픽 인터페이스는 Git 기능에 비해 얇은 쉘이므로 서브 모듈과 관련하여 어려움을 겪으면 Git Extensions에서 제공하는 도구 중 아무 것도 해당 문제를 해결할 수 없습니다. 이제는 Git 온라인에 대한 많은 튜토리얼과 비디오가 있습니다.
기본적으로 Git의 Windows 빌드는 줄 끝 문자를 CRLF로 변환합니다. 우리가 완전히 MS 상점 인 것처럼 이것은 우리에게 올바른 행동입니다.
필자는 글을 쓰는 시점에서 다른 프로젝트, 주로 java 및 .net 프로젝트에서 TortoiseGit과 TortoiseHg (mercurial 용)을 모두 사용했습니다. TortoiseHg가 훨씬 더 안정적이고 완벽하게 기능하기 때문에 TortoiseHg이 앞설 것이라고 말합니다.
머큐리얼 plugin for Visual Studio 2008가 있지만 플러그인 자체가 안정 될 때까지 TortoiseHg를 사용하는 것이 좋습니다. git과의 통합에 대해서는 잘 모르겠지만 VS here에 대한 플러그인에 대한 이야기가 있습니다.
Git과 Mercurial은 모두 .NET 개발자에게 도움이되지만, Mercurial은 Windows 지원 기능이 뛰어나다는 것은 잘 알려져 있습니다. 또한 상용 툴을 고려한다면, Windows에서 분산 형 개발 자에 대한 다음 자습서를 읽는 Plastic SCM을 살펴 보는 것이 어떻습니까? http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html 업데이트 이제 Plastic SCM에는 무료 Community Edition이 있습니다.
근검은 VS를 사용하는 동안 이름 바꾸기 감지 기능을 사용하면서 편리하게 사용할 수있는 주요 이점이 있습니다. 명령 줄 인터페이스 만 사용하려면 HG에서 VS에서 이름을 바꿀 때 파일 이름을 바꾸어야합니다. 이름 바꾸기를 원활하게 감지합니다 (파일이 아닌 내용을 추적 함). 파일에서 일부 변경을 수행하더라도 이름 바꾸기를 감지합니다.
Hg는 (addremove 명령을 통해) 이름 바꾸기 감지도 지원합니다. VisualHg를 사용하기 때문에 VS에서 이름 변경이 자동으로 Hg로 이름이 바뀌므로 설명하는 문제가 없습니다. – jwanagel
git이 unix/linux 사용자에게는 자연스러운 그림이지만 Windows 및 .net 사용자에게는 더 좋아지고 있습니다. 그러나 수은은 두 사람 사이에서 더 나은 선택 일 수 있습니다. 중앙 집중식 개발과 달리 선택의 여지가 많은 곳에서는 "진정한"dvcs 도구가 거의 없습니다. 내가 아는 한, 상업용 시스템에는 플라스틱 scm과 위에서 언급 한 두 가지 도구 만 있습니다. 나는 clearcase 측에서 왔고 pvcs, p4 및 기타 전통적인 scm 도구에 대한 경험이 있습니다. 나는이 사이트를 통해 그리고 아마 내가 시각 한 관점에서 볼 때 플라스틱으로 넘어 졌을 것입니다. 당신이 말한대로 당신이 창문 상점 더 있다면, 그것은 플라스틱, 수은, 그리고 자식 순서에있을 수 있습니다. 만약 당신이 더 유닉스/리눅스, 자식 자식 아마도 첫 번째 논리적 인 선택입니다. 이 도움이되기를 바랍니다!
VS 2008에 Mercurial 기능을 추가하는 HgSccPackage 플러그인이 있습니다. http://bitbucket.org/zzsergant/hgsccpackage/overview/ –
우리 팀은 VS 통합을 위해 http://VisualHg.codeplex.com을 사용해 왔으며 훌륭하게 일 해왔다. 우리는 hgscc보다 더 좋아합니다. – jwanagel