CVS en OS X Mavericks

17

Al parecer, Apple ha eliminado CVS en OS X 10.9 Mavericks devtools ( y sí, se ha ido realmente. Para los no iniciados, CVS es el Sistema de versión concurrente , una herramienta para mantener los archivos actualizados entre diferentes máquinas y usuarios (desarrolladores ).

Tengo algunos proyectos heredados que aún lo requieren (no, no puedo cambiarlo para usar SVN, mucho menos git).

¿Cuál es el mejor lugar para obtener una versión que funcione bajo OS X Mavericks?

    
pregunta Andrew Jaffe 04.11.2013 - 09:37

6 respuestas

16

La forma más fácil para la mayoría de los programas es instalar con un administrador de paquetes como Macports, Homebrew o Fink. Los porteadores habrán resuelto los problemas para trasladar el código a OSX, por lo que debería ser tan simple como sigue (para Macports )

  1. Instale macports, descargue el archivo .pkg y ejecútelo
  2. Instalar Xcode y sus herramientas de línea de comandos
  3. Agregue /opt/local/bin a su ruta: el instalador intenta hacer esto por usted, por lo que probablemente solo necesite verificar
  4. instala el puerto sudo port install cvs
  5. Ejecute cvs con la ruta completa /opt/local/bin/cvs o use su PATH
respondido por el Mark 04.11.2013 - 11:31
16

Un administrador de paquetes unix-ish es claramente el camino a seguir. Me he mudado de fink y Macports a homebrew , que tiene una receta para cvs:

brew install cvs

Para completar el historial, anteriormente tenías que usar el  (un poco difícil de encontrar) receta para cvs : brew install homebrew/dupes/cvs .

Después de unas pruebas mínimas, parece funcionar.

    
respondido por el Andrew Jaffe 04.11.2013 - 12:07
2

editar: Como se señaló en los comentarios, git requiere un cliente cvs que funcione, lo que hace que este enfoque sea una buena capa de interoperabilidad, pero no una solución al problema de la falta de un cliente csv.

Otra opción sería usar git como cliente cvs y directamente al servidor CVS.

Dependiendo de sus necesidades, esto podría ser suficiente con la interoperabilidad de CV + una ventaja de usar git localmente.

    
respondido por el OliverS 04.11.2013 - 15:10
0

CVSNT se ejecuta en Mac OS X 10.9, y admite la codificación HQX de recursos, etc. La versión beta para 10.9 está disponible aquí: enlace

Si anteriormente usaste el CVS X de Mac, entonces (CVSNT) es la "línea de comando" que se incluyó anteriormente.

    
respondido por el Arthur Barrett 30.06.2014 - 08:01
0

Acabo de tener este mismo problema, y un gran problema con Macports, Fink, etc. es que atraen muchas otras dependencias, lo cual es confuso e innecesario si todo lo que necesita es una herramienta única como cvs. En mi caso, al intentar instalarlo utilizando macports, se generó una ventana emergente que me pedía que instalara un compilador java (?!) Y que se debían construir docenas de otros paquetes, así que rápidamente extraje :)

Si todo lo que necesitas es cvs, simplemente hacerlo tú mismo es fácil y más limpio y el binario resultante se integra con todas las librerías existentes, etc. en la computadora. Necesitas que Xcode esté instalado y sus herramientas de línea de comandos, pero si necesitas cvs, estoy seguro de que ya lo tienes instalado.

Obtenga el código fuente cvs de:

enlace

descomprímalo en una carpeta, ingrese la carpeta y ejecute ./configure

Luego (desafortunadamente) necesita editar los archivos en src / y lib / para cambiar el nombre de su función getline a, por ejemplo, getlineX, porque getline se enfrenta a una función libc. Podría hacer un parche de esto y ponerlo en algún lugar que supongo ...

Después de esto, haz "make" y obtendrás un binario en src / cvs que puedes poner en tu carpeta ~ / bin o donde sea, y asegúrate de que tu PATH apunte allí.

    
respondido por el BjornW 12.01.2016 - 11:34
0

Siguiendo con la respuesta de BjornW con un parche.

Después de descargar y desarchivar la fuente de: enlace

Copie el parche a continuación en algún archivo, por ejemplo, cvs-1.11.23.patch , luego aplique el parche con:

patch -d cvs-1.11.23 -p1 < cvs-1.11.23.patch

Luego compile de acuerdo con las instrucciones del archivo cvs-1.11.23 README :

cd cvs-1.11.23
./configure
make
make install

Aquí está el parche:

diff -r -u cvs-1.11.23/lib/getline.c cvs-1.11.23-osx/lib/getline.c
--- cvs-1.11.23/lib/getline.c   2005-04-05 06:46:05.000000000 +1000
+++ cvs-1.11.23-osx/lib/getline.c       2017-01-31 12:04:19.000000000 +1100
@@ -154,13 +154,10 @@
   return ret;
 }

-int
-getline (lineptr, n, stream)
-     char **lineptr;
-     size_t *n;
-     FILE *stream;
+ssize_t
+     getline(char ** restrict lineptr, size_t * restrict linecapp, FILE *     restrict stream)
 {
-  return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+  return (ssize_t)getstr (lineptr, linecapp, stream, '\n', 0, GETLINE_NO_LIMIT);
 }

 int
diff -r -u cvs-1.11.23/lib/getline.h cvs-1.11.23-osx/lib/getline.h
--- cvs-1.11.23/lib/getline.h   2005-04-05 06:46:05.000000000 +1000
+++ cvs-1.11.23-osx/lib/getline.h       2017-01-31 12:03:21.000000000 +1100
@@ -11,8 +11,8 @@    

 #define GETLINE_NO_LIMIT -1

-int
-  getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+ssize_t
+  getline(char ** restrict linep, size_t * restrict linecapp, FILE * restrict stream);
 int
   getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
                      int limit));
    
respondido por el user2067021 31.01.2017 - 03:04

Lea otras preguntas en las etiquetas