2009-02-11 11 views
5

¿Qué sistema de control de versiones debo usar para una aplicación de Rails: Git o SVN?¿Git o SVN para la aplicación Rails?

Éstos son algunos de los factores a tener en cuenta:

  • Soy el único desarrollador
  • Estoy familiarizado con SVN
  • sólo he utilizado Git durante una semana, parece bastante similar a SVN realmente.
  • Quiero poner mi repositorio en una ubicación remota y conectarme a través de SSH u otro protocolo (que ya hago con SVN).

Editar: Gracias por las respuestas hasta el momento. Parece que Git es un poco más favorecido. ¿Tiene alguna funcionalidad SSH?

+0

¿Qué tiene que ver Rails con la decisión de usar SVN o Git? – Robert

+2

La comunidad Rails se ha subido al carro de Git, y la mayoría de los desarrolladores de Rails ahora están usando Git. –

+0

Tiene soporte SSH, así como muchos otros: http://www.kernel.org/pub/software/scm/git/docs/git-pull.html#URLS – sebnow

Respuesta

12

Yo diría que vaya por Git. Principalmente porque soy parcial, pero también porque no necesitas configurar ningún tipo de servidor con Git, solo tienes git init y listo. Git is generally just better, proporciona más flexibilidad y potencia que SVN.

Editar: Esto es un poco engañado de Why is Git better than Subversion, o al menos relevante.

Edit2: Git tiene 3 métodos principales de comunicación, el protocolo Git, SSH y HTTP. Github usa SSH para "acceso de inserción", por ejemplo, [email protected]/user/repo.git.

+1

No necesita configurar un servidor para usar svn si usted es el único desarrollador, y también puede usar svn sobre ssh. Y siempre puede obtener lo mejor de ambos sistemas usando git svn :) – bluebrother

+0

A menos que haya algo de lo que no tenga conocimiento, debe configurar el servidor para iniciar un repositorio con Subversion. Tienes que crear una "base de datos" con 'svnadmin create', afaik. Yo diría que usar git-svn limitaría tu capacidad para usar git correctamente. Si usa SVN, solo use SVN, y viceversa. – sebnow

5

Como desarrollador único que ya está familiarizado con SVN; si desea ser lo más productivo posible, use SVN.

Si, por el contrario, realmente desea aprender GIT y puede permitirse un poco más de tiempo para aprenderlo, use GIT.

+1

Argumentaría que uno puede ser mucho más productivo con git. Tendría cuidado de no confundir la productividad en el día 1 con la productividad en el día n. – Dustin

+0

Si por productivo, quiere decir "esperando transferencias de red lentas de svn requerido por cada operación", entonces sí ... svn es productivo. – jrockway

+0

¿Con qué frecuencia espera seriamente en svn? Si las velocidades de transferencia de svn realmente están haciendo un daño considerable a su productividad, debe aprender a hacer varias cosas a la vez. –

1

Dado que estás solo y quieres ponerlo en una ubicación remota: SVN, pero también debes aprender/usar Git. También podría combinar los dos, usar Git localmente y SVN para el control remoto ..

+0

¿Por qué molestarse? Git también puede tener repositorios remotos/centrales. ¿Por qué usar Git si finalmente terminas limitándote a Subversion al final? – sebnow

+0

Bueno, en mi caso, usamos un servidor Subversion de Windows y no hay un git deamon/server estable para Windows. Estoy de acuerdo en que Git es una mejor opción, pero no es tan convencional como lo es Subversion ... todo depende de su situación;) – Tuxified

+0

Eso es verdad. Siendo un usuario de Mac/Linux, olvido que Git no es tan compatible con Windows. Razón de más para cambiar el sistema operativo, ¿estoy en lo cierto? :PAG – sebnow

1

Probablemente sea una buena idea usar algún tipo de control de versión. También es probable que sea una buena idea tener copias de seguridad remotas de su código.

Tanto Git como svn son buenas soluciones de control de versiones y son ambas populares dentro de la comunidad de Ruby/Rails.

Si estuvieras en un grupo de desarrollo distribuido, te sugiero que git sea más apropiado ya que uno de sus objetivos de diseño específicos era para esa situación.

Si estuviera en Windows, diría que TortoiseSVN probablemente proporciona una experiencia menos desafiante que, digamos, msysGit.

Principalmente, aunque ambos parecen hacer un trabajo similar y hacerlo bien.

Si desea aprender específicamente un nuevo sistema de control de fuente mientras construye su proyecto, vaya a git. O si tiene la intención de pasar mucho tiempo en, por ejemplo, Edge Rails, que vive en Github, otra vez podría ir por git.

De lo contrario, yo diría que debe seguir con svn.

4

Use Git, aunque solo sea exactamente como SVN (incluida la administración remota de varias ramas a través de SSH) y es mucho, mucho más rápido y más confiable.Registros y sucursales locales, control de versiones distribuidas, gestión del historial de revisiones, etc. son solo beneficios secundarios.

En mi experiencia, las únicas razones para preferir SVN sobre Git son: un repositorio SVN heredado o el requisito de usar Windows en el cliente.

0

Yo diría que no hay una diferencia particular.

Ambos sistemas son solo herramientas, y ambos le proporcionarán la funcionalidad que está buscando. Si no hay otros parámetros que considerar, diría que vaya con SVN como ya lo conoce y no necesita tiempo para aprenderlo.

1

Si tienes un día para aprender Git, entonces aprende Git. Tiene toda la funcionalidad que tiene svn, más ramificación/fusión barata, confirmaciones locales y la opción de desarrollo distribuido.

Es fácil trabajar con repositorios remotos. Si solo está buscando algún tipo de alojamiento público, entonces puede consultar Github, que tiene alojamiento público gratuito, buena integración con Ruby y muchos gráficos bonitos.

0

Agregaría una pregunta de seguimiento: ¿estás trabajando en esto solo? El soporte de la herramienta GUI para Git es generalmente inferior al de Subversion, por lo que si eso es o podría ser una consideración, entonces optaría por Subversion.

Por ejemplo, si sus diseñadores usan Adobe CS4, pueden usar su soporte incorporado de Subversion (y no tiene que enseñarles Git). Por lo tanto, considere la composición actual y futura de su equipo como un factor en su toma de decisiones.

0

Solía ​​amar a git, pero recientemente cambié a mercurial. Tiene exactamente la misma sintaxis que git, pero está escrito en python y tiene muchas campanas y silbatos listos para usar, como un servidor web para el seguimiento visual de confirmaciones.

Sé que esto se puede configurar para git usando gitweb por ejemplo, pero requiere un poco de trabajo.

3

Hubiera respondido en comentarios pero aún no puedo.

Para quienes no lo sepan, Git trabaja con Windows. Si no te gusta la versión de msys, TortoiseGit ya se puede usar.