CVS su OS X Mavericks

17

A quanto pare, Apple ha rimosso CVS sotto gli OS X 10.9 Mavericks devtools ( e sì, è davvero andato via). Per chi non lo sapesse, CVS è il Concurrent Version System , uno strumento per tenere aggiornati i file tra macchine e utenti diversi (sviluppatori ).

Ho alcuni progetti legacy che ancora lo richiedono (no, non posso cambiarlo per usare SVN, molto meno git).

Qual è il posto migliore per ottenere una versione che funzioni con OS X Mavericks?

    
posta Andrew Jaffe 04.11.2013 - 09:37
fonte

6 risposte

16

Il modo più semplice per la maggior parte dei programmi è installare con un gestore di pacchetti come Macports, Homebrew o Fink. I portatori avranno risolto i problemi relativi al porting del codice su OSX, quindi dovrebbe essere semplice come segue (per Macports )

  1. Installa macports, scarica il file .pkg ed eseguilo
  2. Installa Xcode e i relativi strumenti da riga di comando
  3. Aggiungi /opt/local/bin al tuo percorso: il programma di installazione tenta di eseguire questa operazione per te, quindi probabilmente devi solo controllare
  4. Installa la porta sudo port install cvs
  5. Esegui cv con il percorso completo /opt/local/bin/cvs o usa il PATH
risposta data 04.11.2013 - 11:31
fonte
16

Un gestore di pacchetti unix-ish è chiaramente la strada da percorrere. Sono passato da fink e Macports per homebrew , che ha una ricetta per cvs:

brew install cvs

Per completezza storica, in precedenza dovevi usare il  (leggermente difficile da trovare) ricetta per i cv : brew install homebrew/dupes/cvs .

Dopo solo test minimi, sembra funzionare.

    
risposta data 04.11.2013 - 12:07
fonte
2

modifica: Come osservato nei commenti git richiede un client cvs funzionante che renda questo approccio solo un bel livello di interoperabilità ma non una soluzione al problema di un client csv mancante.

Un'altra opzione sarebbe usare git come client cvs e spinga direttamente al server CVS.

A seconda delle tue esigenze questo potrebbe essere sufficiente per l'interoperabilità di cv + un vantaggio dell'uso di git localmente.

    
risposta data 04.11.2013 - 15:10
fonte
0

CVSNT gira su Mac OS X 10.9 e supporta la codifica HQX delle risorse, ecc. Beta per 10.9 è disponibile qui: link

Se in precedenza hai utilizzato Mac CVS X, questo (CVSNT) è la 'riga di comando' che era stata precedentemente inclusa.

    
risposta data 30.06.2014 - 08:01
fonte
0

Ho appena avuto lo stesso problema e un grosso problema con Macports, Fink, ecc. è che trascinano molte altre dipendenze che sono confuse e inutili se tutto ciò di cui hai bisogno è un singolo strumento come cvs. Nel mio caso, provando a installarlo usando macports, mi è venuto in mente un popup che mi chiedeva di installare un compilatore java (?!) E dozzine di altri pacchetti dovevano essere compilati in modo da estrarre rapidamente l'eject:)

Se tutto ciò di cui hai bisogno è cvs, solo costruirlo tu stesso è facile e più pulito e il binario risultante si integra con tutte le librerie esistenti ecc. sul computer. Hai bisogno di Xcode installato e dei suoi strumenti da riga di comando, ma se hai bisogno di cvs, sono sicuro che lo hai già installato.

Ottieni il codice sorgente cvs da:

link

deselezionalo in una cartella, inserisci la cartella ed esegui ./configure

Quindi (sfortunatamente) devi modificare i file in src / e lib / per rinominare la loro funzione getline in, ad esempio, getlineX, perché getline si scontra con una funzione libc. Potrei fare una patch di questo e metterlo da qualche parte immagino ..

Dopo questo, fai "make" e otterrai un file binario in src / cvs che puoi inserire nella tua cartella ~ / bin o dovunque, e assicurati che il tuo PATH punti lì.

    
risposta data 12.01.2016 - 11:34
fonte
0

Segui la risposta di BjornW con una patch.

Dopo aver scaricato e annullato l'archiviazione della fonte da: link

Copia la patch di seguito in un file, ad esempio cvs-1.11.23.patch , quindi applica la patch con:

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

Quindi costruisci seguendo le istruzioni del fileREADME cvs-1.11.23%:

cd cvs-1.11.23
./configure
make
make install

Ecco la patch:

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));
    
risposta data 31.01.2017 - 03:04
fonte

Leggi altre domande sui tag