Questo è un elenco sintetico dei comandi "comuni" per l'utilizzo di GIT.
Nota: per una guida approfondita, visitare questo link.
Appunti di programmazione: pezzi di codice, note, soluzioni e algoritmi.
Questo è un elenco sintetico dei comandi "comuni" per l'utilizzo di GIT.
Nota: per una guida approfondita, visitare questo link.
Tempo fa utilizzavo SVN per la gestione dei progetti. Comodo, veloce... ma per le mie capacità, avevo bisogno di un'interfaccia grafica. E usavo Tortoise.
Un mio amico mi ha convinto a provare GIT ed ora... sono passato quasi integralmente a GIT (con Github Desktop come interfaccia - che ho pure compilato sul laptop con linux).
Ok, mi sono ricreato un repository "self-hosted" così da evitare di usare GitHub, però il concetto è comunque lo stesso.
Il fatto è che non voglio perdermi i commit di ciò che ho fatto in SVN.
Ecco quindi una guida per migrare da SVN a GIT.
Nota: la guida funziona sia in ambiente linux che in ambiente windows.
Per prima cosa, va creata una directory di lavoro in cui operare.
Bisogna anche assicurarsi di avere GIT installato e configurato con l'utenza necessaria.
La gestione delle utenze è leggermente differente, quindi bisogna indicare a GIT come associare la nuova utenza a quella che ha effettuato l'attività su SVN.
Bisogna specificare dentro un file ("authors.txt"), creato nella directory in cui si sta lavorando, la relazione tra l'username di SVN (a sinistra) e l'username GIT (a destra):
developer = Mario Rossi <m.rossi@example.com>
A questo punto, bisogna clonare il progetto ricostruendo la struttura di GIT basata sui dati presenti in SVN.
Nota: al momento, la procedura funziona, ma questo tipo di attività sembra verrà dismessa in futuro (almeno, stando alla nota in giallo che appare richiamando il comando.
Bisogna aprire un prompt nella directory di lavoro.
Il comando per effettuare questa "migrazione" è:
$ git svn clone "https://svn.example.com/repos/project1/sourcecode/trunk/subdirectory" --authors-file=authors.txt --no-metadata --no-follow-parent ~/project1
Nota: questo è il comando per linux. Per eseguirlo su windows, basta modificare la directory di destinazione indicando il path relativo o assoluto.
Nota: è possibile specificare l'esatto percorso della directory da recuperare dentro SVN, senza infilare nel progetto tutte le altre directory superiori. Se non si inserisce il comando "--no-follow-parent", il sistema risalirà fino alla root e scaricherà (in modo versionato) tutto.
A questo punto, bisogna creare il repository in GIT.
E' fondamentale che il repository sia vuoto (niente README.md o .gitignore, quindi).
A questo punto, si deve lanciare una sequenza di comandi per impostare correttamente il progetto e caricarlo su GIT.
Per prima cosa, accediamo da console alla directory appena creata:
$ cd project1
A questo punto, è necessario aggiungere l'origin per fare il push:
$ git remote add origin http://git.example.com/username/project1
Quando si clona un repository in SVN, il branch utilizzato per default è "master". Se si vuole invece utilizzare main (ed anche per evitare problemi nel push), va usato questo comando:
$ git branch -m master main
Ultimo passaggio da fare è quello di caricare il contenuto su GIT con questo comando:
$ git push -u origin main
A questo punto, si dovrebbe vedere il contenuto su GIT.
Ora è possibile aggiungere i file mancanti (README.md, .gitignore, etc) ed iniziare a lavorare al progetto.
Ho iniziato ad aggiornare un mio progetto che usa un DB MySQL e, analizzando il contenuto, mi sono accorto che alcuni caratteri erano sballati:
Fuga dalla cittÃ
... anziché...
Fuga dalla città
La tabella ha collation utf8_general_ci e la colonna, nello specifico, ha collation utf8mb4.
Quale poteva essere il problema?
Ecco, alla fine il problema era il sistema di collegamento al DB, che per una configurazione errata faceva un "doppio encoding" nella tabella.
In pratica, il software lo utilizzava come fosse latin1.
Per capire se è questo l'errore, basta fare una query di controllo:
SELECT CONVERT(CAST(CONVERT(nome_colonna USING latin1) AS BINARY) USING utf8mb4)
FROM nome_tabella
WHERE id = 1;
Se il risultato è quello voluto (e non quello con i caratteri strani), allora il problema è proprio quello.
La soluzione è semplice: modificare la tabella DUE VOLTE, la prima impostando il character set a latin1 e poi ri-modificarlo in utf8mb4:
-- prima conversione
ALTER TABLE nome_tabella
MODIFY nome_colonna TEXT
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
-- seconda conversione
ALTER TABLE nome_tabella
MODIFY nome_colonna TEXT
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Note:
Per eliminare un servizio presente su un PC o server Windows, si utilizza questo comando (da cmd):
sc delete NomeServizio
Il nome del servizio si trova accedendo a services.msc, trovando il servizio, click con il tasto destro e poi selezionando "properties" (è sotto Service Name).
Spesso nella costruzione delle pagine web, utilizzo delle icone da affiancare ai tasti. E di solito sono le icone di "font awesome".
Il link corretto per cercare le icone è questo:
https://fontawesome.com/search?ic=free-collection
E il riferimento CSS da inserire (per la versione 7.2.0 - sperando sia quella con incluse le icone "free") è:
https://site-assets.fontawesome.com/releases/v7.2.0/css/fontawesome.css
Eventualmente, se ci si basa su una versione più vecchia (la 5.15.4), il link è il seguente:
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css
Per installare GitHub desktop su Linux Mint, bisogna seguire questa procedura: