2009-02-19 8 views
18

Asumiendo que estoy comenzando un nuevo proyecto web en mi casa usando Visual Studio, que sistema de control de versiones, viz. ¿Será mejor usar Git o Subversion? ¿Cuál tendrá la menor complejidad de configuración?Git or Subversion?

+1

Como otros han sugerido, es posible que desee echar un vistazo a Mercurial también. Es tan intuitivo de usar como SVN y te brinda los beneficios de un DVCS. También funciona bastante bien con Windows. –

+0

¿Es la integración de Visual Studion un requisito? –

+0

La integración de Visual Studio no es un requisito, pero es agradable de tener. – sduplooy

Respuesta

4

Git es una configuración de control de fuente distribuida y como usted es el único usuario que no imagino que se beneficiaría mucho de sus características. Subversion es (en mi opinión) más fácil de configurar, por lo que te recomendaría que lo hicieras.

+0

El aspecto desconectado de Git puede ser bastante útil para un solo desarrollador. Trabajo mucho en el tren sin conexión a Internet ... – Guillaume

+0

"Configuración" Git es más fácil: "git init". Bang, tu repositorio y tu árbol de trabajo están listos para usar. :) – Bombe

+1

¿Se beneficiaría de la falta de las características que tiene Git? –

3

El que decida usar depende en gran medida de cuáles son sus necesidades ahora y en el futuro. Git tiene una comunidad muy bonita construida alrededor con GitHub que es ideal para compartir código y proyectos. SVN es bastante simple de configurar y poner en marcha, pero en los equipos grandes, Git lo ha derrotado con sus ramificaciones y fusiones. Esto es ideal en los casos en que tenga varias personas trabajando en el mismo proyecto, ya sea en una oficina o en un sentido de OSS donde el equipo esté disperso.

Si todo lo que necesita es algo rápido y simple de configurar y poner en marcha para que pueda comenzar su proyecto, SVN debería estar bien. SVN también está integrado en muchos editores e IDE, así como en muchos sistemas de seguimiento de errores y de integración continua.

Si planea tener un equipo, o ya lo hace, Git merece la pena para ver su configuración de bifurcación y fusión. Sin embargo, Git, debido en gran parte a que aún es joven, no tiene casi el mismo apoyo disponible

39

Dado que esto es para su propio juego personal, mi pregunta es simple: ¿Ya conoce Subversion o Git?

  • Si conoce SVN - use Git.
  • Si conoce Git - use SVN.

Si no lo sabe, use SVN. Es una mejor introducción.

+0

mejor respuesta de lejos, +1 –

+3

O simplemente use darcs, mercurial o bazar. Subversion y git ya son demasiado populares y por lo tanto un1337, y si los usa también se volverá un1337. – yfeldblum

+1

Me siento mal aturdir el 7.777 rep, pero debo hacerlo. +1 –

10

Subversion es mucho más amigable para Windows en mi experiencia y también más útil para el desarrollador en solitario.

Otra posibilidad es Perforce, que es ligeramente menos amigable para Windows, pero con todas las funciones y bastante fácil de usar, sin mencionar que es gratuita para hasta dos usuarios.

+0

Si quiere un VCS distribuido más amigable para Windows, recomiendo Mercurial. El cliente de caparazón de tortuga es bastante decente, y funciona lo suficientemente bien para la mayoría de los casos. –

+0

bazar es otro DVS que soporta mejor las ventanas. Sin Cygwin, sin Msys, sin git. – paxos1977

12

Iría con Git. No es tan malo ponerse al día sobre lo básico (ahora hay una tonelada de buenos recursos, incluido learn.github.com) y va a pagar en espadas. Y lo he estado usando en Vista sin problemas.

+0

¿Cuál es el beneficio de usar Git para un proyecto en el hogar? – Hortitude

+0

Básicamente se quita de tu camino, haciendo que las versiones sean algo que 'simplemente sucede' en lugar de algo en lo que tienes que trabajar. Incluso en un proyecto doméstico, será más ágil en términos de ramificación y flujo de trabajo general. Además, si el proyecto alguna vez se expande, puede involucrar a otros más fácilmente. – fig

+1

Además, git no coloca carpetas .svn por todos lados. que mantiene la base de código más limpia. Y, en serio, es mucho más fácil ramificar, fusionar, aplastar compromisos. – Abizern

4

Si está trabajando solo y quiere algún tipo de control de versión fácil de usar, entonces use Subversion. Funciona muy bien en Windows, la configuración del repositorio es un clic derecho en un vacío con Tortoise SVN. Ankh SVN proporciona una muy buena integración con Visual Studio, casi a la par con TFS siempre que utilice VS 2005 o más reciente.

Por otro lado, Git es mucho más prometedor que SVN. Lo verificaré durante este año, pero las herramientas de terceros aún no están a la par.

-2

Si planea llevar su proyecto en una memoria USB, use Subversion. Windows XP realmente, realmente, realmente malo en el almacenamiento en caché de muchos archivos pequeños en una memoria USB. Git escribe muchos archivos pequeños para las operaciones de confirmación y eso lleva años en Windows.

[EDITAR] El problema con Windows XP y los archivos en una memoria USB es el almacenamiento en caché (o la falta de ella).Para evitar la pérdida de datos, XP siempre escribirá archivos de forma sincronizada en un dispositivo USB (por lo que cualquier escritura volverá solo a después de el FS ha informado que todos los bloques se han escrito en el dispositivo). Agregue eso al hecho de que las memorias USB son lentas cuando se manejan archivos pequeños (tienen mucha sobrecarga inicializando su gestión del nivel de desgaste) lo que conduce a un rendimiento muy pobre para cualquier tipo de aplicación que escriba muchos archivos pequeños.

[EDIT2] Si coloca una verificación SVN en la memoria USB, también tendrá una gran cantidad de archivos pequeños (especialmente en los directorios .svn). Entonces, la solución en este caso es colocar el repositorio de Subversion (el "servidor") en la unidad USB. El repositorio usa solo un montón de archivos grandes (si usa la opción de base de datos en lugar del archivo basado en uno: svnadmin create --fs-type bdb). Esto evita el problema de "muchos pequeños archivos". No hay forma de lograr lo mismo con las versiones actuales de Git.

+1

¿Desea realizar una copia de seguridad de todo esto? –

+0

¿Qué quieres saber? –

+0

No hay problema aquí: ZIP on the fly funciona en contra de este fenómeno. Además, si hiciera una copia de seguridad de una carpeta de trabajo de Subversion, correría el mismo tipo de problemas, ya que la carpeta .svn conserva una copia de cada archivo. –

1

Vamos mi viaje-in en su pregunta y pregunta:

  1. Cómo funciona el Git en Windows?
  2. ¿Tiene algo equivalente a la Tortuga? (De lo contrario, no veo cómo podría competir con SVN en términos de facilidad de uso)

En una nota al margen: si realmente es un proyecto de un solo hombre, realmente no necesita ninguna fuente herramienta de control. Simplemente ponga su proyecto en una carpeta DropBox y listo (autocompromisos, revisiones infinitas, recuperación). A menos que realmente piense que va a necesitar etiquetas, ramas y demás. Pero para proyectos domésticos personales ... ¿verdad?

+0

1 - sí, 2 - todavía no, y para responder a su pregunta final - sí. –

+0

DropBox es genial, pero la función de revisiones de la OMI no está a la altura de la tarea de administrar un proyecto completo. Si necesita revertir un directorio completo a un estado anterior, no hay una manera fácil de hacerlo. (Solo tengo una copia de trabajo SVN en mi carpeta DropBox, así saco lo mejor de ambos mundos :)) –

+0

TortoiseSVN es considerablemente mejor en XP que en Vista, ya que en XP se integra mejor con Windows Explorer. Por lo que hace en Vista, estaría casi tan bien usando SVN directamente desde la línea de comando. –

4

Yo iría con Mercurial en su lugar. Se supone que es similar a Git (que nunca pude ejecutar debido al problema de Windows) y es muy fácil de instalar en Windows &, muy bueno para sistemas de control de versiones "personales".

+0

+1 para esto. Mercurial permite la flexibilidad de un DVCS con una interfaz de subversión muy simple e intuitiva.Alguien acostumbrado a SVN podría sentirse muy cómodo con HG y viceversa. La única vez que uso git es cuando necesito sus capacidades de bifurcación, que son muy superiores a las de HG –

2

Si desea la integración de Visual Studio no hay duda. Solo Subversion tiene integraciones de Visual Studio (AnkhSVN, VisualSVN y varias secuencias de comandos que permiten el acceso a TortoiseSVN).

Una de las razones más importantes por las que Subversion tiene una cantidad tan grande de herramientas escritas es porque fue diseñada como una biblioteca estable para el uso de múltiples clientes.

Es poco probable que Git obtenga el mismo nivel de integración en Visual Studio antes de que el soporte git esté disponible como algún tipo de biblioteca reutilizable. (Hay planes para un libgit2 que podría hacer esto realidad).

+0

Uso [gitextensions] (http://code.google.com/p/gitextensions/) que tiene un complemento de estudio visual y personalmente he encontrado que es mucho mejor que los complementos de SVN. – Lukazoid

0

con SVN, tendrá que configurar un servidor, crear un repositorio allí, echa un vistazo al repositorio (vacío), añadir los archivos, y luego comprometerse .

Con Git, todo lo que necesita es git init en el directorio raíz de su proyecto. Luego puede agregar y confirmar archivos como mejor le parezca.

No hay realmente ninguna idea al configurar un servidor de Subversion, ya que usted es el único que trabaja en la fuente. Al contrario de lo que mucha gente piensa, los proyectos en solitario son una combinación perfecta para las herramientas de control de versiones distribuidas. También es muy fácil hacer crecer tu proyecto más adelante.

+0

Un solo desarrollador no necesita un servidor con svn: http://tortoisesvn.tigris.org/faq.html#noserver – user282727

0

En mi experiencia, Subversion es más fácil de "grok", pero Git es más rápido y más fácil de participar en las mejores prácticas de desarrollo de software.Como antiguo usuario de CVS, Subversion tuvo sentido inmediato para mí cuando comencé a usarlo. Git tomó un estudio y todavía tengo que consultar el manual de vez en cuando, pero me encanta lo fácil que es ramificar y combinar código cuando tengo que mantener un proceso de lanzamiento.

Si ya está familiarizado con CVS y solo necesita algo para mantener su historial y sus dificultades, será más fácil comenzar con Subversion. Si eres nuevo en el control de versiones, la marea está cambiando hacia DVCS en general y hacia Git en particular, por lo que puedes sacar más provecho de eso en general.

Te recomiendo que consultes un proveedor alojado para que no tengas que preocuparte por configurar un servidor Subversion o para que puedas tener una ubicación de respaldo para tus datos de Git. Puede buscar en Google "subversion hosting" o "git hosting" para ver los principales proveedores del espacio.

1

Git ................................ (estos puntos están ahí porque SO no aceptará una respuesta con tres letras)

1

Una gran respuesta a esta pregunta se ha escrito sobre recenting por Jack Repenning aquí:

  • Si usted tiene requisitos de peso para una sola copia determinada,, dueño de su trabajo, usar Subversion. Puede hacer esto con Git, siempre que no haya contratiempos. Pero no puedes hacer nada más con Subversion (slip-ups o no), y los "requisitos convincentes" como Sarbanes-Oxley son más felices con las garantías que con las posibilidades.

  • Si va a mantener en paralelo, ampliamente compartida, pero definitivamente algo diferentes líneas de un mismo producto, el uso de Git. Un ejemplo común: quizás tenga un producto grande que personalice para cada cliente. Las personalizaciones son permanentes, y generalmente no se comparten entre líneas de código, pero la mayoría del código es común a todos. Git fue diseñado sólo para este caso (en términos de Git, personalizaciones locales para el tronco común, y de la característica ocasional o corrección de errores contribuciones copia de seguridad de árboles)

  • ninguna de las dos? Haga su elección, debería estar bien con cualquiera de las herramientas. *

completa en blog aquí: http://blog.codesion.com/post/15692788883/subversion-or-git-decisions-decisions