Pregunta

¿Cuál sería el mejor sistema de control de versiones para aprender como principiante al control de fuentes?

¿Fue útil?

Solución

Todo menos Visual Source Safe;preferiblemente uno que apoye los conceptos de ramificación y fusión.Como han dicho otros, Subversion es una gran opción, especialmente con el cliente TortoiseSVN.

Asegúrate de revisar (perdón por el juego de palabras) Serie clásica de artículos CÓMO sobre control de fuente de Eric Sink.

Otros consejos

Te sugiero que pruebes Subversion, por ejemplo con el Instalador SVN con 1 clic.Intente buscar en SO "Subversion" y encontrará muchas preguntas con respuestas que apuntan a buenos tutoriales.

¡Buena suerte!

iría directamente por git.He usado Subversion antes, pero siempre sentí que lo estaba haciendo mal.Git tuvo sentido desde el primer día.

Recursos útiles:

Hay algunos conceptos básicos que creo que es importante aprender:

  1. Entradas/salidas (obviamente)
  2. Versiones locales vs.versiones del servidor
  3. Mapear/vincular un espacio de trabajo local a un almacén o repositorio remoto.
  4. Fusionar sus cambios nuevamente en un archivo que contiene cambios de otros.
  5. Ramificación (qué es, cuándo/por qué usarla)
  6. Fusionar cambios de una rama a una rama o tronco principal.

La mayoría de los sistemas de control de fuente modernos requieren cierto conocimiento de los temas anteriores y deberían ayudarle a aprenderlos.Luego tienes el control de fuente distribuido, con el que no tengo experiencia pero que se supone que es bastante complicado y puede que no sea adecuado para un principiante.

Subversión es fantástico porque tiene todas las funciones modernas que deseas y es gratuito.

git También se está convirtiendo en una opción cada vez más popular y es otra alternativa gratuita o de muy bajo coste a Subversion.Sin embargo, el conocimiento sobre los conceptos de bifurcación y fusión se vuelve crítico para usar Git.

Puedes usar desenredar como una forma fácil y gratuita de experimentar tanto con Git como con Subversion.Lo uso para alojar un par de repositorios de Subversion para algunos proyectos paralelos en los que he trabajado en el pasado.

No soy un usuario de control de fuente avanzado, pero estoy aprendiendo.Aquí está mi experiencia con productos de control de fuente:

  1. Hace mucho tiempo, la empresa para la que trabajaba en ese momento decidió utilizar el control de fuente.Presentaron el concepto a los desarrolladores y lograron que todos estuvieran dispuestos a probarlo.Eligieron utilizar PVCS y lo implementaron.En poco tiempo, los desarrolladores tendrían que coordinarse para bloquear/desbloquear módulos y objetos y realmente no vimos muchos beneficios.

  2. Unos años más tarde, estaba jugando con la creación de un proyecto de código abierto y en ese momento Rubyforge ofrecía repositorios CVS.Lo probé y fue ligeramente mejor que PVCS.De acuerdo, yo era el único que usaba el repositorio.Sin embargo, me sentí frustrado cuando intenté reorganizar la estructura de mis archivos porque no me gustaba la forma en que los había importado inicialmente.Realmente no funcionó en CVS.

  3. Unos años después, estaba trabajando en otro proyecto personal y mi proveedor de alojamiento web ofrecía repositorios Subversion (SVN) fáciles de configurar.Me tomó un poco de investigación ponerlo en funcionamiento correctamente, pero una vez que pasé la curva de aprendizaje inicial, me gustó.

  4. No mucho después me di cuenta de que me gustaba tener control de fuente y que mi trabajo actual no lo tenía.Entonces evangelicé y, después de un largo período de tiempo, mi equipo implementó Source Safe porque trabajamos en Visual Studio y generalmente somos una tienda de Microsoft.Estaba ansioso por usarlo, pero al poco tiempo descubrí que estaba perdiendo archivos y que Visual Studio estaba colocando las cosas en el lugar equivocado y que trabajaba en un proyecto por un tiempo y luego exportaba mi trabajo a otra ubicación. y descubre que no exportaría o solo exportaría algunos de los proyectos en una solución.Esto me hizo darme cuenta de que aunque pensaba que estaba usando un "sistema de control de versiones", la copia del código más segura, robusta y completa era mi copia de trabajo.Exactamente lo contrario de lo que se supone que debe hacer el control de fuente.

  5. Así que la semana pasada estaba tan harto de Source Safe que comencé a buscar.Después de buscar algunas soluciones, decidí probar git.No diré que todo ha sido color de rosa, ya que nuevamente he tenido una curva de aprendizaje para lograr que haga lo que quiero que haga. Sin embargo, me ha gustado lo suficiente como para convertir todo mi trabajo y proyectos personales en él.Una de las cosas realmente buenas es que no necesito un repositorio centralizado, por lo que puedo usarlo sin pasar por un montón de trámites burocráticos en el trabajo para instalarlo.

En resumen, recomendaría git, uso Mysysgit en Windows y tiene la ventaja adicional de brindarme un shell bash.En Linux puedes instalarlo desde tu administrador de paquetes.Si no te gusta git, prueba subversion.Si no le gusta ninguno de ellos, probablemente tampoco le gustará CVS o PVCS.Bajo ninguna circunstancia pruebes Source Safe, es horrible.

encontré http://unfuddle.com Me ahorró perder el tiempo instalando SVN o git.Puede obtener una cuenta gratuita allí y usar cualquiera de ellas; además, puede usar su OpenID allí.

¡Así evitarás tener que preocuparte por configurarlo correctamente y concentrarte en cómo lo vas a utilizar!

Vault de SourceGear.com es excelente.Es gratuito para usuarios individuales y proporciona una excelente interfaz VS 2005/2008.¡Me encanta!

rp

@Ian Nelson:

Estoy de acuerdo con usted en que Source Safe es malo como sistema de control de fuente, pero tenga en cuenta que usar Source Safe es mucho mejor que "llevar disquetes", como dijo Joel Spolsky.

Para un principiante puede que no sea una mala idea, ya que el coste de no tener ningún control de fuente es mucho mayor.

Cada herramienta tiene sus fortalezas y debilidades.Es en gran medida una cuestión de cuáles son sus requisitos.Desafortunadamente, en este problema, como en muchos otros, a menudo no se selecciona la mejor herramienta, sino aquella con la que alguien está familiarizado.Por ejemplo, si no necesita muchas sucursales y su equipo es pequeño y local, casi cualquier vcs hará el trabajo (excepto SourceSafe).Las cosas cambian si necesita sucursales (lo que casi por necesidad significa que también necesita realizar fusiones), su equipo está distribuido, necesita seguridad avanzada (los subcontratistas no pueden acceder a todo el árbol de fuentes), seguimiento de tareas, etc.También está la cuestión del coste de tres maneras diferentes:costo de licencias, costo de mantenimiento (algunas herramientas son tan complicadas que en la práctica necesitas a alguien solo para controlar los repositorios) y costo de capacitación.

Por tanto, sugerir una herramienta sobre otra es como sugerir cuál sería el mejor lenguaje de programación.

Sólo algunos consejos:

  • Searteam es la más fácil de las herramientas que he usado.Requirió muy poca capacitación.Recibí un entrenamiento de un día desde que iba a ser el mantenedor.Este mantenimiento me llevó menos de 30 minutos por semana.Los usuarios "entrené" escribiendo un manual de dos páginas y después de eso tenía muy pocas preguntas que responder.
  • Continuus fue el otro extremo de la escala en lo que respecta a la facilidad de uso.Por otro lado, el manejo de tareas fue excelente y ofreció un buen soporte para la gestión de versiones.El problema es que, incluso como administrador de lanzamientos, nunca pensé que la facilidad para realizar lanzamientos (fue una vez que aprendiste cómo, pero eso tomó una cantidad considerable de tiempo) debería ser más importante que el trabajo diario que realizan los desarrolladores.
  • La fusión y la creación de ramas difieren enormemente entre las herramientas.Algunas herramientas hacen esto simple, como Git y Clearcase (aunque este último es muy lento), algunas básicamente te obligan a fusionar a mano.Si necesita fusionar mucho, el costo puede aumentar.ClearCase también fue costoso en las tres categorías mencionadas anteriormente (aunque hay que decir que usamos todas las cosas avanzadas que no son necesarias).Git, por otro lado, carece de una buena interfaz de usuario y algunos conceptos difieren de lo que podría estar acostumbrado.También faltan las características de seguridad de Git (Gitosis aborda algunos problemas pero no todos).
  • La mayoría de las herramientas que he usado también son bastante lentas.Herramientas como PVC/dimensiones fueron lentas, sin importar qué (cosas básicas como abrir un directorio en el repositorio), algunas muy lentas en formas más específicas (como ClearCase).

De las herramientas que he usado, seleccionaría StarTeam si sus desarrolladores no tienen mucha experiencia (y si no le importa pagar la licencia, que es bastante cara) y git si tiene algunos chicos experimentados en vcs a bordo que puedan configurar el entorno. a otros chicos.Mercurial también parece un competidor interesante y parece tener una interfaz de usuario ligeramente mejor.

Continuus, PVCS/Dimensions y ClearCase son demasiado lentos, demasiado complejos y demasiado caros para casi cualquier proyecto.Si alguien insiste en seleccionar uno de estos, elegiría ClearCase.

No he usado Subversion, lo cual a muchos parece gustarles (aún así, tengo la sensación de que esto está a punto de cambiar en un futuro cercano), así que no puedo comentar cómo se compara con las otras herramientas que he usado (generalmente como compilación y/ o administrador de versiones).

En cuanto a la primera herramienta a elegir, el problema con Git, Bazaar y Mercurial es que son vcs distribuidos.Esto es diferente del modelo tradicional servidor-cliente donde tienes un repositorio central.Para simplemente aprender las cosas, recomendaría leer también sobre los conceptos.La bifurcación, por ejemplo, es algo que quizás no entiendas correctamente con solo intentarlo tú mismo (existen diferentes estrategias de bifurcación para diferentes situaciones).Además, es muy diferente si usted es el único que accede al repositorio; los conflictos de fusión, por ejemplo, no serían un problema (es posible que pueda verlos, pero también los solucionará fácilmente ya que conoce el código en ambas ramas).Por supuesto, aprenderá sobre salidas, entradas y demás, pero no creo que estos temas sean particularmente difíciles en primer lugar.

El problema adicional con los vcs es que tienden a utilizar términos diferentes.En StarTeam, que por lo demás es fácil de usar, por alguna razón insisten en usar los términos "pagar" y "pagar y bloquear".Esto último es lo que la mayoría de la gente cree que hace el primero.Hay una razón para esto (puede editar archivos incluso si no tiene un bloqueo exclusivo), pero aun así tendría mucho más sentido llamarlos "Obtener" y "Verificar" para evitar confusiones.

Cualquier cosa, pero yo mismo aprendería un sistema moderno como git o subversion.Mi primer VCS fue RCS, pero aprendí lo básico.

Bueno, si solo quieres aprender por tu cuenta, te diría que deberías optar por algo gratuito, como subversion.Si usted es una empresa que nunca antes ha utilizado el control de fuente, entonces realmente depende de sus necesidades.

Mi primera exposición fue CVS con WinCVS como cliente.fue horrible.El siguiente fue Subversion, con TortoiseSVN y la integración de Eclipse.Fue intuitivo y celestial.Creo que usar CVS con TortoiseCVS y Eclipse también sería bueno, aunque prefiero la forma en que SVN maneja la revisión.Todo el repositorio se versiona con cada registro, no archivos individuales.

También recomendaría Subversion.No lleva mucho tiempo configurarlo, es gratis y hay un libro realmente bueno disponible en línea que analiza los conceptos básicos y algunos temas avanzados: http://svnbook.red-bean.com/

Subversión con tortugasvn.(tortoisesvn porque puedes ver mucho de lo que sucede visualmente y proporcionará un buen punto de partida para la línea de comandos.) Hay toneladas de documentación disponible y lo más probable es que la vea al menos en un momento de su carrera.Casi todas las empresas para las que he trabajado y con las que he entrevistado ejecutan SVN.

Si está buscando aprender un producto comercial mientras comienza, Perforce proporciona un cliente y un servidor gratuitos, y el servidor admite dos usuarios y cinco espacios de trabajo de cliente.

En mi lugar de trabajo anterior, nuestros programadores lo usaban religiosamente no solo para el código, sino también para recursos artísticos y niveles de juego, y mi propia documentación.

Subversion es un buen lugar para empezar.Es un sistema de control de versiones muy estable y moderno.El mejor recurso en línea para comenzar a aprender sobre Subversion sería Control de versiones con Subversion.Hay muchas opciones en lo que respecta a software de servidor y cliente.Personalmente prefiero (para entorno Windows).

  1. servidor VisualSVN

  2. Cliente integrado en shell TortoiseSVN y

  3. Complemento AnkhSVN Visual Studio Subversion

Nuevamente, con Subversion hay muchas opciones disponibles.Además, es un sistema de control de versiones en continua evolución (a diferencia del obsoleto SourceSafe).Podría integrarse fácilmente con numerosas herramientas de compilación automatizadas (CruiseControl, FinalBuilder) y sistemas de seguimiento de errores/problemas (JIRA).

Si busca sistemas de control de versiones de última generación, opte por Git (desarrollado por Linus Torvalds).Pero si es totalmente nuevo en los sistemas de control de versiones, le sugeriría que comience con Subversion.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top