software control composer best actual versioning

versioning - control - npm version patch



Control de versiones para un novato total (21)

Actualmente uso Subversion, pero mi experiencia de control de código fuente es limitada.

Sin embargo, sugeriría leer el tutorial de Eric Sink.

http://www.ericsink.com/scm/source_control.html

Soy totalmente nuevo en el mundo de la programación y entiendo muy poco en términos de jerga y metodología típica.

Hace un tiempo estaba escribiendo un código, pero accidentalmente borré un código bueno mientras estaba borrando un código malo. A partir de ese momento comencé a crear versiones de mis archivos, nombraría cada archivo con la fecha y un número de versión.

Sin embargo, esto es un dolor en el culo, tener que dar un nombre único a cada archivo y luego ir a mi archivo principal y cambiar la referencia al nombre del nuevo archivo.

Y luego, justo el otro día, escribí accidentalmente algo importante incluso con este método, probablemente debido a un error tipográfico al nombrar.

No hace falta decir que este método apesta.

Estoy buscando sugerencias sobre mejores prácticas, mejores herramientas. He estado buscando en el control de versiones, pero muchos de ellos, git svn parecen realmente complicados. La idea es acelerar todo el proceso de control de versiones, no hacerlo más difícil al tener que hacer línea de comandos.

En este momento, espero que haya una herramienta que guarde una versión única del archivo cada vez que golpee ctrl-s y me dé un botón para crear una versión finalizada.

Por supuesto, si hay sugerencias para formas de hacer las cosas totalmente diferentes, eso sería más asombroso.

Gracias a todos.


Creo que Git es realmente fácil de usar, especialmente cuando usas GitHub. También proporcionan un montón de buenas guías para ponerse en marcha.

http://github.com http://github.com/guides/home


Creo que TortoiseSVN sería un buen cliente de Subversion para que lo pruebes si estás en Windows. No hará lo que está buscando con cada versión de I-save-I-save-a-new, tendrá que "confirmar" manualmente las versiones en el repositorio. Cuando haces una confirmación, eso crea una nueva versión, esencialmente guardando tu progreso en ese punto. TortoiseSVN es bastante fácil de usar y es una GUI, por lo que no estará trabajando en la línea de comandos. Podrá hacer cosas como hacer clic con el botón derecho en un archivo en el Explorador de Windows y elegir Confirmar para guardar su progreso. Además, TortoiseSVN es gratis y de código abierto.


Creo que estás en una posición en la que debes salir un poco de tu zona de confort y tomarte un tiempo para aprender git. Es bastante fácil de aprender y usar.

Créeme, realmente vale la pena. El tiempo dedicado a aprender git es un tiempo bien empleado.


Cualquiera que sea el VCS que use, si elige la versión bajo demanda en lugar de la versión automática (para pedir prestados los términos de la publicación de Alex), tendrá que pasar por alguna ceremonia para: -crear, -rename, -move, -copy, o -delete a archivo que está bajo control de código fuente.

Cuando crea un nuevo archivo, debe agregarlo al control de origen antes de confirmar sus cambios en el repositorio.

Cuando cambie el nombre, mueva, copie o elimine un archivo bajo el control de código fuente, hágalo con su cliente VCS. En TortoiseSVN y TortoiseGit, las operaciones de mover y copiar se realizan con un clic derecho y arrastrando, mientras que las operaciones de cambio de nombre y eliminación están disponibles a través de un clic derecho.

Como puedes imaginar, cambiar cosas como el nombre de un proyecto puede ser bastante complicado, de ahí el caso del control de versiones automático.

Las ediciones de archivos ordinarios y cualquier cambio en los archivos que no están bajo el control de código fuente, no requieren que se lo diga a su cliente VCS.

Finalmente, para los proyectos de una sola persona, prefiero git sobre SVN porque SVN requiere al menos 2 copias de todo: un repositorio (la copia "maestra" de los archivos y el historial) y una copia de trabajo (la copia en la que hace su trabajo) . Con git, el repositorio y la copia de trabajo son lo mismo, lo que simplifica mi experiencia.


De hecho, existe tal herramienta. Se llama emacs .

Simplemente cree un archivo "~ / .emacs" y ponga las siguientes líneas en él:

(setq kept-new-versions 5) (setq kept-old-versions 5)

Y luego reinicie emacs.

Esto le dice a emacs que guarde sus 5 versiones más antiguas y 5 más nuevas de ese archivo. Se guardarán en archivos con el nombre de nombre de archivo ~ n ~ donde "nombre de archivo" es el nombre normal de su archivo y "n" es el número de respaldo.


Definitivamente está en el camino correcto al reconocer la necesidad del control de versiones, pero no está seguro de lo que podría significar para usted y su trabajo. Una vez que aprenda los conceptos detrás de los sistemas de control de versiones, realmente llegará a apreciarlos.

Los conceptos son simples: un sistema de control de código fuente es un software diseñado para ayudarlo a almacenar y administrar su código. La forma en la que el código entra y sale de él difiere según el sistema que elija: un paradigma es que deliberadamente "verifica" un archivo, le hace cambios, lo prueba y se asegura de que sea bueno, y luego lo vuelve a registrar. Otra es que simplemente guarda cada cambio que realice porque el espacio en disco es muy barato, mucho más barato que el tiempo y el esfuerzo invertidos para crear la fuente en primer lugar.

Otro concepto importante es la "línea de base" o "etiqueta". Cuando su producto está listo para su envío, le indica al sistema de control de código fuente que cree una "etiqueta" y etiquete cada elemento actual de su código fuente completo con esa etiqueta. De esa manera, cuando alguien informe un error en la versión 4.1, puede ir a su sistema, solicitar todos los archivos con la etiqueta "Versión 4.1" y obtener exactamente el código fuente con el que tienen problemas.

Tener una herramienta de control de origen integrada con su entorno de desarrollo hace que todo el proceso sea mucho más fácil que tener que meterse con las líneas de comando. (No descuente la línea de comandos debido a su complejidad, ofrecen un control elegante a un usuario experimentado y eventualmente se convertirá en un usuario experimentado). Pero por ahora, recomiendo una herramienta de código fuente que puede automatizar el proceso tanto como sea posible. como sea posible.

Algunas cosas a tener en cuenta: ¿estás ahora o estás planeando compartir el desarrollo con otro desarrollador? Eso podría hacer una diferencia en cómo desea configurar un servidor. Si se está desarrollando solo en su propia caja, puede configurarlo todo a nivel local, pero probablemente no sea el mejor enfoque para un equipo. (Si no está seguro, git es muy flexible en ese ámbito). ¿Va a almacenar grandes archivos multimedia o solo código fuente? Algunos sistemas de código fuente están diseñados para almacenar de manera eficiente solo archivos de texto, y no manejarán muy bien las películas, los sonidos o los archivos de imágenes.

Otra cosa que se debe saber es que la mayoría de los sistemas de control de origen más nuevos requieren algún tipo de programa "daemon" que se ejecute en el servidor (Subversion, git, Perforce, Microsoft Team Foundation Server), mientras que los sistemas más antiguos y simples simplemente usan el sistema de archivos directamente (Fuente visual Safe, cvs) y no requiere un programa de servidor.

Si no quiere aprender mucho y sus demandas son bajas, las soluciones más simples deberían ser suficientes. Visual Source Safe de Microsoft solía venir con sus productos de estudio visual, y era una herramienta muy fácil de usar. No es muy robusto, es solo para Microsoft, y no puede manejar archivos grandes bien, pero es muy, muy fácil de configurar y usar. Si no quiere gastar dinero, Subversion y git son dos soluciones estelares de código abierto, y hay mucha documentación para ambos en la web.

Si le gusta gastar dinero, Perforce se considera una excelente opción para los equipos de desarrollo profesional (y creo que tienen una versión gratuita para un solo desarrollador). Si realmente le gusta gastar mucho dinero y quiere hacer feliz a Bill Gates, el equipo de Microsoft Foundation Server es un completo administrador de ciclo de vida de desarrollo de software, es extremadamente fácil de usar en el entorno de Windows y es muy poderoso; pero probablemente querrá dedicar una instancia completa de servidor de Windows (más SQL Server) para alojarla, y le costará varios miles de dólares solo en licencias. Desafortunadamente, no es la herramienta adecuada para una tienda de un solo hombre o si no tiene experiencia de administrador de Windows.

Si tiene el presupuesto o las conexiones, traer a un ingeniero de software con experiencia para que lo ayude a comenzar puede ser el camino más rápido hacia el éxito. De lo contrario, tendrá que investigar un poco más para saber qué sistemas se adaptan mejor a su situación.


El rápido google de "dreamweaver svn" revela que muchas personas están trabajando con Subversion en Dreamweaver. Soy un defensor del control de versiones, y SVN en particular, por lo que recomendaría que lo analicen :)

Si no desea utilizar un sistema de control de versiones completo (como se indicó anteriormente), puede mejorar su lote al refinar y automatizar el procedimiento que describió originalmente. Dependiendo de su comodidad con las herramientas, debería poder armar un script en el mismo DreamWeaver o en Windows Scripting (Powershell, VBA, Perl, etc.) que al menos hará copias con la fecha de la carpeta en la que está trabajando. a menudo. Esto evitará que tenga que hacerlo y se asegurará de que no haya problemas tipográficos. Más abajo en esa ruta puede hacer que su secuencia de comandos ponga una copia de su trabajo en una unidad de respaldo o servidor remoto, y luego tendrá una copia de seguridad, también.

Me temo que no sé mucho acerca de DreamWeaver, pero si tiene mucho soporte de scripts incorporado, es posible que incluso pueda "enganchar" las funciones de Guardar / Guardar automáticamente y hacer que hagan exactamente lo que quiere.

Espero que esto ayude, adricnet


En primer lugar, lea estos artículos de Eric Sink. Eric sink dirige una empresa que crea un sistema de control de fuente llamado Vault. Explica de manera amigable para los principiantes cómo hacer el control de la fuente, las mejores prácticas, etc.

http://www.ericsink.com/scm/source_control.html

Lo encontré inestimable cuando quise entender Source Control.

SourceGear Vault es GRATIS para un solo usuario. Su interfaz es intuitiva y se integra bien con Visual Studio.


Es mejor aprender a usar una herramienta de versionamiento "estándar de la industria" existente como Subversion. Incluso si eres nuevo en la programación y el control de versiones, SVN no es tan difícil de aprender y te servirá bien. Personalmente uso y recomiendo VisualSVN Server y TortoiseSVN para Windows. Ambos son gratuitos y muy fáciles de usar.

Para un sistema que crea una revisión en cada guardado, tal vez debería buscar en un sistema de archivos de versiones .


Hagas lo que hagas, si alguien menciona Visual SourceSafe, corre lo más rápido que puedas. VSS fue creado por el mismo Satanás y se transmitió para atormentar a los desarrolladores de todo el mundo.


Hay dos enfoques para este problema:

  1. Versiones bajo demanda . Este es el modelo utilizado por Subversion, CVS , etc., etc. Cuando ha realizado un cambio ''significativo'', decide decirle al sistema que "mantenga esta versión".
  2. Versiones automáticas . Este es el modelo utilizado por algunos antiguos VAXen, Eclipse, IDEA , cada wiki y algunas herramientas de escritura . Cada vez que guarde, se crea implícitamente una nueva versión. En algunas eliminaciones, las versiones antiguas pueden ser eliminadas (por ejemplo, solo una versión se mantiene del trabajo realizado hace una semana, en lugar de cada guardado).

Parece que preferirías el # 2, porque es "a prueba de errores": nunca tienes que ir, "vaya, debería haber ''registrado'' / ''mantener'' mi trabajo antes de hacer este cambio". Siempre puedes retroceder. Un inconveniente es que tiene que pasar manualmente por las versiones anteriores para encontrar algo, ya que a diferencia del número 1, generalmente no está dando una descripción de cada cambio.

Otro inconveniente es que para los archivos grandes, o los que no son fácilmente diferenciados / parcheados (es decir, archivos binarios), comenzará a grabar a través del espacio en disco bastante rápido.

Además, parece que no necesita el 90% de las funciones en un sistema SCM estándar (bifurcación, etiquetado, etc.), pero puede que en algún momento encuentre usos para ellas. Así que aprender uno puede ser una victoria a largo plazo. Puede hacer esto con svn, etc., pero tomará algo de personalización. Si usa un editor de secuencias de comandos (emacs, vi, TextMate, lo que sea), podría redefinir el comando "Guardar" como "Guardar y crear una nueva versión".


He usado Git, SVN, CVS y Perforce. Tanto en entornos Windows como Unix.

Mi voto es definitivamente para SVN, ya que es fácil de usar y flexible. Antes de usar la línea de comandos ahora, pero en un momento estaba usando TortoiseSVN para Windows, lo que pudimos lograr que personas no técnicas utilizaran sin problemas.

Utilice SVN.


He utilizado Visual Source Safe, Perforce y Subversion. Todos estaban bien, pero tendría que decir que el soporte y las extensiones para Subversion parecían un poco mejores. Si planea ingresar o permanecer en la industria del software, DEBE conocer los aspectos fundamentales del control de origen, y le recomendaría encarecidamente configurar uno de los servicios de control de origen. Subversion sería mi recomendación y también es gratis. Al principio será complicado, pero realmente deberías usar un cliente SVN para agregar una GUI para aumentar la utilidad y reducir todas las complicaciones que estás observando.


La subversión es más o menos el estándar de oro.

Yo sugeriría (especialmente para un novato) que revise BeanStalk (www.Beanstalkapp.com) para ejecutar su servidor de subversión y TortoiseSVN para su cliente.

¡Buena suerte!


La subversión no es realmente complicada. Si está utilizando Windows, TortiseSVN le ayudará mucho, si está utilizando Eclipse, el complemento de subclipse es increíble. (Probablemente deberías usar eclipse a pesar de todo :))

Algunos de los otros son un poco complicados, pero solo hay que conocer el patrón con eclipse. Tal vez podría "probarlo" con un proyecto de código abierto o algún servidor de subversión existente.

El ciclo sería:

Primero usted "revisa" un repositorio. Esto llena su directorio especificado con el contenido del repositorio.

Si lo está haciendo desde la línea de comandos, es "svn co", hay suficiente ayuda para resolver el resto.

Segundo editas tus archivos. No tienes que bloquearlos ni nada.

si agrega un nuevo archivo, use "svn add filename" tan pronto como lo agregue. Esto no cambiará realmente el repositorio hasta que confirme sus cambios.

Cuando se realiza un grupo de ediciones, se registran con "svn ci" (también funciona svn commit). Este tiene un toque leve que siempre olvidará: cada compromiso necesita un comentario. No tiene que especificar los archivos que está confirmando ni nada, pero sí debe estar en el nivel superior de su proyecto (esto comprometerá todo lo que esté debajo de su directorio).

Entonces, el procedimiento aquí es, vaya a la "raíz" de su árbol de proyecto y escriba:

svn ci -m "comentario"

pedazo de pastel

Finalmente, SI alguien más está verificando cosas, las cosas se LLEVAN extrañamente. Antes de comprometerse, debe "actualizar" y obtener sus cambios. "svn up" es todo lo que se necesita, pero puede advertirle que hubo fusiones. Esto solo sucede cuando ambos editan el mismo archivo, y el 90% del tiempo, las combinaciones irán bien. El resto del tiempo, pondrá pequeños marcadores en su archivo que le indicarán qué ha cambiado y qué han cambiado. El comando "arriba" le dirá a qué archivos le hizo esto. Míralos y limpia el archivo antes de registrarlo.

Siempre pruebe entre "svn up" y "svn ci", nunca se sabe si sus cambios de mierda han roto su código original.

Eso es realmente. Es tan fácil desde el CLI, que los entornos gráficos apenas valen la pena (pero el subclipse es realmente bueno si está en eclipse de todos modos porque mostrará visualmente que los archivos modificados deben ser revisados).

Si alguna vez olvida, la ayuda de la línea de comandos de svn es extremadamente breve y útil, le dice SÓLO lo que necesita saber y tiene ayuda con todos los subcomandos y opciones.


Si desarrolla su proyecto solo (no necesita un servidor para colaborar) Mercurial puede ser su sistema preferido. Personalmente valoro una de sus características: solo usa un lugar para guardar su información, es el directorio .hg en la raíz de su proyecto. No coloca sus datos en todos los directorios (como SVN). De esta manera, el archivo y el directorio del proyecto son fáciles de gestionar.


Si está buscando un sistema de control de versiones fácil de configurar para Windows, le recomiendo TortoiseHg , una interfaz de Mercurial fácil de usar para Windows. No tiene que preocuparse por configurar y mantener un registro de un repositorio separado de sus archivos, pero siempre puede hacerlo si lo desea. Mercurial es una gran herramienta porque puede crecer con sus necesidades. Tiene todas las características habituales como una fácil fusión, etc. y es un poco más fácil de entender que Git en mi experiencia.


Si no está trabajando en un equipo, podría usar algo como la función de historial local de Eclipse. Almacena versiones de sus archivos localmente, y puede volver a versiones anteriores cuando lo desee. Más detalles aquí: http://help.eclipse.org/ganymede/index.jsp (Buscar "historia local"). Estoy bastante seguro de que otros IDE tienen una característica similar.

Si está colaborando con otros en su código, es probable que no haya forma de aprender una de las herramientas estándar como SVN, CVS o git. Para la mayoría de ellos, hay complementos para muchos IDE disponibles, por lo que no tiene que usar la línea de comandos.


Si solo eres tú, tal vez quieras probar Bazaar. Se distribuye como Git (por lo que será bueno para una sola persona, no hay que tratar con un servidor), pero uno de sus objetivos principales era hacer que sea mucho más fácil de usar que Git.

Además, hay una herramienta práctica de GUI que debería hacer que sea increíblemente fácil de usar y que se llama ToroiseBzr. http://bazaar-vcs.org/TortoiseBzr


Utilizamos SourceGear Vault , que tiene una gran integración con Visual Studio y es gratuito para un solo usuario. Sin embargo, según el marco de trabajo y los idiomas que use, Subversion es una excelente solución gratuita.