tag practices delete crear commits commands best git git-cvs

practices - git tag commands



Mejores prácticas para usar git con CVS (5)

Escribí los detalles de mi propio flujo de trabajo para CVS remoto, Git local

¿Cuáles son sus mejores prácticas y consejos para usar git para interactuar con un repositorio de CVS?


Escribí una respuesta a una pregunta similar here .

Esto funciona sorprendentemente bien cuando se ve obligado a continuar introduciendo cambios en un repositorio central de CVS.


Ligeramente meta-respuesta. Si se ve obligado a usar git ''estilo guerrillero'', es decir, su compañía está atascada usando cvs para el control de versiones y usa git en su estación de trabajo para hacer la vida más fácil, puede considerar hacer algo como esto;

CVS=realCvsPath # commit to the git first if ($ARGV[0] && $ARGV[0] eq "commit") { system ''git commit -a''; } # execute the appropriate cvs program # =================================== exec "$CVS", @ARGV

Llamando a este archivo ''cvs'' e incluyéndolo en la ruta antes del comando CVS real. De lo contrario, puedes hacer que git se haga más antiguo que los cvs, lo cual no es útil ...


Si el mdocml ascendente es 100% en CVS (por ejemplo, OpenBSD, o muchos de sus subproyectos como mdocml o ports-readmes ), y especialmente si está tan oxidado como el árbol de CVS de OpenBSD (por ejemplo, ocasionalmente incluso se reescribe el historial) es bastante útil simplemente cometer los archivos CVS/{Entries,Repository,Root} subyacentes directamente en mi repositorio git .

Esto hace que sea muy fácil no tener que tener múltiples espacios de trabajo independientes, hacer posible la verificación con git en cualquier máquina, y luego cvs up en su lugar, o cvs diff para generar parches CVS correctos para enviar por correo a los mantenedores de git-less en sentido ascendente.


Solo he trabajado con interacciones de Git-CVS para demostrar Git para un amigo, pero fue muy sencillo.

  • Necesitas instalar una copia actual de cvsps . Git cvsimport usa esto para acceder al historial de CVS.
  • Descubrimos que, para un proyecto grande, la configuración inicial era mucho más rápida al llevar una copia completa del repositorio de CVS a su computadora y hacer el git cvsimport localmente:

    $ rsync rsync://yourprojecthost.com/cvsroot/yourproject/* $ mkdir myproject.git $ cd myproject.git $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject

Tenga en cuenta que el -x después de -p es muy importante. Esto pasa -x a cvsps. Para obtener más información, consulte la página de manual de cvsps .