2009-09-30 13 views
29

Me he estado preguntando ¿cuál es el mejor DVCS para desarrolladores .NET? A partir de la lectura de información diversa, parece que Mercurial funciona mejor en Windows, pero otra información afirma que Git ha alcanzado y superado a Mercurial al ofrecer herramientas de calidad para Windows y Visual Studio. ¿Alguien tiene buena información reciente o experiencia en probar ambos en un entorno de desarrollo .NET?Git versus Mercurial para desarrolladores .NET?

Respuesta

24

He estado usando Mercurial durante más de un año para hacer desarrollo .NET, y ha estado funcionando muy bien. Admito que no utilizo ninguna de las herramientas sofisticadas (complementos del explorador y herramientas de Visual Studio), pero están disponibles (por ejemplo, TortoiseHg). He descubierto que usar las herramientas de línea de comandos es igual de fácil: solo especifique algunos comodines en .hgignore (como en Blaenk's answer) y listo.

No estoy seguro de cuán bien se integra git con hg, pero en el caso inverso he usado hg-git en el pasado y funcionó bien. Sin embargo, sigue siendo algo inestable a medida que salen nuevas versiones de hg.

Así que debería poder usar github de mercurial, y para repositorios mercuriales nativos siempre existe el (imo) igualmente agradable bitbucket.org. Editar: Tenga en cuenta también que codeplex, que se centra en proyectos de fuente abierta .NET, ahora ofrece repositorios Git y Mercurial.

Y debo mencionar que la "popularidad" es un criterio muy difícil de basar en su elección. O bien DVCS tiene usuarios de alto perfil. Git tiene el kernel de Linux, por supuesto, mientras que los usuarios notables de hg incluyen los proyectos de Mozilla y Python.

EDIT: Dado que esto parece recibir votos frecuentes regulares. Todo lo que escribí arriba era cierto al momento de escribir, pero ya no estoy de acuerdo con mi anterior auto bitbucket es tan bueno como GitHub. GitHub tiene una mejor funcionalidad, y desde mi punto de vista (sobre todo desarrollo de código abierto F #) todos los demás están ahí para que obtengas mejores efectos de red. Moví todo mi proyecto de codeplex/bitbucket a GitHub hace un tiempo e inmediatamente comencé a recibir contribuciones, mientras que en codeplex/bitbucket casi nada sucedió.

+2

También hay un plugin de HgSccPackage que trae algunas funcionalidades de Mercurial a VS 2008 http://bitbucket.org/zzsergant/hgsccpackage/overview/ –

+4

Mi equipo ha estado usando http://VisualHg.codeplex.com para la integración de VS y es estado trabajando muy bien Nos gusta más que el hgscc. – jwanagel

8

creo que el crecimiento exponencial de popularidad que git dado, un buen soporte de Git para Windows (similar a la de la subversión de TortoiseSVN con algo como) está obligado a llegar, que es sólo una cuestión de tiempo. Los dos proyectos que parecen ser los más populares son msysgit y TortoiseGit (también usa msysgit) que es similar a tortugaSVN. git sigue volviéndose más y más popular, que si se topa con algún problema que ahora es poco probable y es aún más improbable a medida que las herramientas git en Windows se desarrollan aún más, podrá encontrar soluciones mucho más fáciles debido a la gran cantidad de usuario base.

Mientras tanto, he encontrado this series de guías para ser muy útil.

Problemas que puede encontrar en puede ignorar ciertos archivos, que debería ser fácil si las operaciones de búsqueda cómo utilizar .gitignore, que es realmente sencillo, aquí está la lista de archivos y comodines que la serie menciona:

obj 
bin 
_ReSharper.* 
*.csproj.user 
*.resharper.user 
*.resharper 
*.suo 
*.cache 
*~ 
*.swp 

También he visto algunos problemas con respecto a los finales de línea. Para eso, querrá consultar this question.

1

No he usado Mercurial en serio, pero acabo de cambiar a Git de Subversion para el desarrollo de .NET. La distribución que estoy usando es Git Extensions, que instala el Git estándar (msys), más una interfaz gráfica, alguna integración con Windows Explorer y un plugin de Visual Studio.También se envía con buenos documentos. La integración de Explorer no proporciona los nítidos marcadores de estado en los íconos de archivos que TortoiseSVN hace, sino que simplemente agrega los elementos esenciales al menú contextual. Todas estas herramientas funcionan bien.

El mayor problema que he encontrado es que Git requiere que entiendas los conceptos para obtener buenos resultados. Las interfaces gráficas de las Extensiones de Git son simplemente conchas finas sobre las instalaciones de Git, por lo que si tiene problemas con, digamos, submódulos, entonces ninguna de las herramientas provistas por Git Extensions resolverá ese problema. Ahora hay montones de tutoriales y videos sobre Git en línea.

De forma predeterminada, las compilaciones de Windows de Git convierten los finales de línea en CRLF; como somos completamente una tienda de MS, este es el comportamiento correcto para nosotros.

8

En el momento de escribir esto, he usado tanto TortoiseGit como TortoiseHg (para mercurial) en diferentes proyectos, predominantemente proyectos de .net y java. Tengo que decir que TortoiseHg está a la cabeza, ya que es mucho más estable y con todas las funciones de los dos.

Hay un Mercurial plugin for Visual Studio 2008, pero le sugiero que se quede con TortoiseHg hasta que el plugin sea estable. No estoy seguro acerca de la integración con git, pero se habla de un complemento para VS here.

3

Tanto Git como Mercurial funcionarán bien para un desarrollador de .NET, pero es bien sabido que Mercurial tiene una mejor compatibilidad con Windows. Además, si considera una herramienta comercial, ¿por qué no echa un vistazo a Plastic SCM leyendo el siguiente tutorial sobre desarrollo distribuido en Windows? http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html Actualización Ahora Plastic SCM tiene una Edición de comunidad GRATUITA.

0

Git tiene una gran ventaja que facilitará la vida al usar VS, la detección de cambio de nombre, si solo quiere usar la interfaz de línea de comandos, en HG debe cambiar el nombre de los archivos cuando lo cambie en VS, en Git detecta tus cambios de nombre sin problemas (realiza un seguimiento de los contenidos y no de los archivos), incluso si realizas algunos cambios en el archivo, también detectará el cambio de nombre.

+3

Hg admite la detección de cambio de nombre también (a través del comando addremove). Aunque usamos VisualHg para que cualquier cambio de nombre en VS se renombre automáticamente en Hg, entonces no tenemos el problema que usted describe. – jwanagel

4

Aunque git es un atractivo natural para usuarios de Unix/Linux, ha ido mejorando para usuarios de Windows y .net. mercurial sin embargo, puede ser una mejor opción entre los dos. a diferencia del desarrollador centralizado, donde hay una gran cantidad de opciones, hay muy pocas herramientas de hardware "verdaderas". por lo que sé, solo hay un sistema comercial, scm de plástico y las dos herramientas OSS antes mencionadas. Vengo del lado del claro y tengo experiencia con pvcs, p4 y otras herramientas scm tradicionales. me tropecé con plástico, tal vez a través de este sitio y por lo que he evaluado, parece funcionar bien desde el punto de vista visual. si usted es más una tienda de Windows como dice, puede ser de plástico, mercurial y git en ese orden. si eres más unix/linux, git es probablemente la primera opción lógica. ¡espero que esto ayude!

Cuestiones relacionadas