Principiantes de control de fuente

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

Cualquier cosa less 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 de TortoiseSVN.

Asegúrese de revisar (perdón por el juego de palabras) la clásica serie de Eric Sink de artículos de HOWTO de Control de fuente .

Te sugiero que pruebes Subversion, por ejemplo con el instalador de SVN con 1 clic . Intenta search SO para "Subversion" y encontrarás muchas preguntas con respuestas que apuntan a buenos tutoriales.

¡Buena suerte!

Yo iría directamente por Git . He utilizado la subversión antes, pero siempre sentí que lo estaba haciendo mal. Git tuvo sentido desde el primer día.

Recursos útiles:

  • Linus Torvals en Git
  • Scott Chacon "Getting Git"

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

  1. Check-in / check-outs (obviamente)
  2. Versiones locales vs. versiones de server
  3. Asignación / vinculación de un área de trabajo local a una tienda o depósito remoto.
  4. Fusionando sus cambios nuevamente en un file que contiene cambios de otros.
  5. Ramificación (qué es, cuándo / por qué usarlo)
  6. Fusionando cambios de una twig a una twig principal o troncal.

La mayoría de los sistemas modernos de control de fonts requieren algún conocimiento de los temas anteriores y deberían ayudarlo a que los aprenda. Luego has distribuido el control de fuente, con el que no tengo ninguna experiencia, pero se supone que es bastante complicado y puede no ser adecuado para un principiante.

Subversion es genial porque tiene todas las funciones modernas que te gustaría y es gratis.

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

Puede utilizar unfuddle como una forma gratuita y fácil de experimentar tanto con Git como con Subversion. Lo uso para alojar un par de repositorys de subversión para algunos proyectos paralelos en los que he trabajado en el pasado.

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

  1. Hace mucho time, la empresa para la que trabajaba decidió utilizar el control de código fuente. Introdujeron el concepto a los desarrolladores y consiguieron que todos lo intentaran. Eligieron usar PVCS y lo implementaron. En poco time, los desarrolladores tendrían que coordinar para bloquear / desbloquear modules y objects 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 estaba ofreciendo repositorys de CVS. Lo probé y fue marginalmente mejor que PVCS. De acuerdo, yo era el único que usaba el repository. Sin embargo, me sentí frustrado cuando traté de reorganizar la estructura de mis files porque no me gustó 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 repositorys de Subversion (SVN) fáciles de instalar. Me llevó un poco de investigación para ponerlo en funcionamiento correctamente, pero una vez que supere la curva de aprendizaje inicial, me gustó.

  4. Poco después me di count 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 time, mi equipo implementó Source Safe porque trabajamos en Visual Studio y generalmente somos una tienda de Microsoft. Estaba ansioso por usarlo, pero al poco time descubrí que estaba perdiendo files y que Visual Studio estaba poniendo las cosas en el lugar equivocado y que trabajaría en un proyecto por un time y luego iría a exportar mi trabajo a otra location. y descubrió que no exportaría o solo exportaría algunos de los proyectos en una solución. Esto me hizo darme count de que, aunque pensaba que estaba usando un "sistema de control de versiones", la copy del código que era más segura, robusta y completa era mi copy de trabajo. Lo contrario de lo que se supone que debe hacer el control de origen.

  5. Así que la semana pasada estaba tan harta de Source Safe que fui a search. Después de search algunas soluciones, decidí probar git. No voy a decir que todo ha sido rosas, ya que de nuevo he tenido alguna curva de aprendizaje para lograr que haga lo que quiero que haga. Sin embargo, me gustó lo suficiente como para convertir todos mis proyectos de trabajo y personales. Una de las cosas realmente agradables es que no necesito un repository centralizado para poder usarlo sin tener que pasar por una gran cantidad de burocracia en el trabajo para instalarlo.

En resumen, recomendaría git, uso Mysysgit en windows y tiene la ventaja adicional de darme un shell de bash. En Linux, puede instalarlo desde su administrador de packages. Si no te gusta el git, testing la subversión. Si no te gusta ninguno de los dos, probablemente tampoco te gusten CVS o PVCS. Bajo ninguna circunstancia pruebe Source Safe, es horrible.

Encontré que http://unfuddle.com me había salvado de la installation de SVN o git. Puede get una count gratuita y usar cualquiera de ellas, además puede usar su OpenID allí.

¡Entonces evitas tener que preocuparte por configurarlo correctamente y enfocarte en cómo vas a usarlo!

Vault de SourceGear.com es excelente. Es gratis para usuarios individuales y ofrece una excelente interfaz VS 2005/2008. ¡Lo amo!

rp

@Ian Nelson :

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

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

Cada herramienta tiene sus fortalezas y debilidades. Es una cuestión de cuáles son sus requisitos. Desafortunadamente con este problema, como muchos otros, a menudo no es la mejor herramienta que se selecciona, pero 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 necesariamente significa que también necesita fusionarse), su equipo se distribuye, necesita security avanzada (los subcontratistas no están autorizados a todo el tree de fonts), seguimiento de tareas, etc. También está la pregunta de costo de tres maneras diferentes: costo de licencias, costo de mantenimiento (algunas herramientas son tan complicadas que en la práctica se necesita a alguien solo para controlar los repositorys) y el costo de capacitación.

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

Solo algunos consejos:

  • StarTeam es la herramienta más fácil que he usado. Requiere muy poco entrenamiento. Recibí un entrenamiento de un día ya que iba a ser el mantenedor. Este mantenimiento me llevó less de 30 minutos por semana. Los usuarios que "entrené" escribiendo un manual de dos páginas y después de eso tuve muy pocas preguntas para responder.
  • Continuus era el otro extremo de la escala en lo que respecta a la facilidad de uso. Por otro lado, el event handling tareas fue excelente y ofreció un buen soporte para la gestión de versiones. El problema es que, incluso como gerente de lanzamiento, nunca pensé que la facilidad para hacer lanzamientos (fue una vez que aprendiste cómo, pero eso llevó una cantidad considerable de time) debería ser más importante que el trabajo diario que hacen los desarrolladores.
  • La fusión y la creación de sucursales difieren enormemente entre las herramientas. Algunas herramientas lo hacen simple, como git y ClearCase (aunque este último es muy lento), algunos básicamente te obligan a hacer la fusión a mano. Si necesita hacer fusiones mucho, el costo puede ser alto. ClearCase también fue costoso en las tres categorías mencionadas anteriormente (aunque debe decirse que utilizamos todo lo avanzado que no es necesario). Git, por otro lado, carece de una buena interfaz de usuario y algunos de los conceptos difieren de lo que podría estar acostumbrado. Las funciones de security de Git también faltan (la glosis aborda algunos problemas, pero no todos).
  • La mayoría de las herramientas que he usado también son bastante lentas. Las herramientas como PVCS / Dimensions fueron lentas, sin importar qué (cosas básicas como abrir un directory en el repository), algunas muy lentas en forms más específicas (como ClearCase).

De las herramientas que he utilizado seleccionaría StarTeam si tus desarrolladores no tienen mucha experiencia (y si no te importa pagar la licencia, que es bastante caro) y git si tienes algunos vcs experimentados a bordo que pueden configurar el entorno. a otros chicos. Mercurial también parece un competidor interesante y parece tener UI ligeramente mejores.

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

No he usado Subversion, que a muchos parece gustarles (sin embargo, tengo la sensación de que esto va a cambiar en un futuro próximo), por lo que no puedo comentar cómo se compara con las otras herramientas que he usado (generalmente como compilation y / o administrador de lanzamiento).

En cuanto a la primera herramienta para elegir, el problema con Git, Bazaar y Mercurial es que se distribuyen vcs. Esto es diferente del model tradicional de server-cliente donde tiene un repository central. Por solo aprender las cosas, recomendaría también leer acerca de los conceptos. La ramificación, por ejemplo, es algo que quizás no entiendas correctamente con solo probarte (hay diferentes estrategias de ramificación para diferentes situaciones). Además, es muy diferente si eres el único que accede al repository, por ejemplo, los conflictos de combinación no serían un problema (es posible que los veas pero también los arreglarías fácilmente ya que conoces el código en ambas twigs). Por supuesto, usted aprenderá acerca de las salidas, los controles, etc., pero no creo que estos problemas sean particularmente difíciles en primer lugar.

El problema adicional con los vcs es que tienden a usar términos diferentes. En StarTeam, que de otro modo es fácil de usar, por alguna razón insisten en usar los términos "check out" y "check out and lock". Esto último es lo que la mayoría de las personas piensa que hace el primero. Hay una razón para esto (puede editar files incluso si no tiene un candado exclusivo), pero aún tendría mucho más sentido llamar a estos "Obtener" y "Echar un vistazo" para evitar confusiones.

Cualquier cosa, pero aprendería un sistema moderno como git o subversión. Mi primer VCS fue RCS, pero obtuve lo básico.

Bueno, si solo quieres aprender por tu count, diría que deberías elegir algo gratuito, como la subversión. Si usted es una compañía que nunca ha usado el control de fuente antes, entonces realmente depende de sus necesidades.

Mi primera exposition fue CVS con WinCVS como cliente. fue horrible El siguiente fue Subversion, con la integración de TortoiseSVN y 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 repository está versionado con cada check in, no files individuales.

También recomendaría Subversion. No lleva mucho time configurarlo, es gratis, y hay un libro realmente bueno disponible en línea que repasa lo básico y algunos temas avanzados: http://svnbook.networking-bean.com/

Subversion con tortoisesvn. (tortoisesvn porque puede ver mucho de lo que sucede visualmente y proporcionará un buen punto de partida para las cosas de la command-line). Hay toneladas de documentation y lo más probable es que la vea al less en un punto de su carrera. Casi todas las empresas con las que he trabajado y con las que he entrevistado ejecutan SVN.

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

En mi lugar de empleo anterior, se usaba religiosamente no solo para el código de nuestros progtwigdores, sino también para los resources de arte y niveles de juego, y mi propia documentation.

Subversión es un buen lugar para comenzar. Es un sistema de control de versión muy estable y moderno. El mejor recurso en línea para comenzar a aprender sobre Subversion sería el Control de versiones con Subversion . Hay muchas opciones en cuanto a los softwares de server y cliente. Yo personalmente prefiero (para el entorno de Windows).

  1. Servidor VisualSVN

  2. El cliente integrado y shell de TortoiseSVN

  3. Complemento AnkhSVN Visual Studio Subversion

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

Si está buscando sistemas de control de versiones de última generación, vaya a Git (desarrollado por Linus Torvalds). Pero si usted es totalmente nuevo en los sistemas de control de versiones, le sugiero que comience con la subversión.