Quindi il mio compagno e io stiamo lavorando su un sistema di gestione pratica e all'inizio non abbiamo usato alcun controllo di versione, quindi l'ho convinto a usare git. Al momento il nostro sistema è che abbiamo tre rami: sviluppare, padroneggiare e rilasciare. Il nostro repository git è su un server esterno, che ha Apache, MySQL, ecc. Facciamo il nostro codice giornaliero sul ramo di sviluppo (commit) e poi abbiamo fatto dei test per assicurarci che sia (semi) privo di bug e che lo uniamo nel ramo principale. Se vogliamo fare qualcosa di radicale, facciamo semplicemente un ramo del master, facciamo casino e se funziona, bene, lo uniamo nuovamente, altrimenti cancelliamo il ramo.
Finalmente, quando andiamo per la nostra versione settimanale, ci uniamo al ramo di rilascio per assicurarci di avere una copia del progetto come era quando abbiamo rilasciato. Sfortunatamente non teniamo traccia di tutti i file in git dato che rallenta git troppo (ad esempio immagini, soprattutto perché questo è su un vecchio server con un AMD Sempron a 1,4 GHz single-core), in quanto un git status
di solito cambia da circa 3 secondi a circa 1 minuto; o perché non possiamo (database MySQL). Per noi il rallentamento non è praticabile quindi li lasciamo fuori, e questo non è mai sembrato essere un problema perché non abbiamo cancellato alcuna immagine, ma potremmo iniziare subito dopo aver iniziato a ottimizzare. Quindi, quando eseguiamo il checkout dei commit precedenti, a volte i file non sono lì e quindi è rotto (un grosso problema è che non possiamo usare il controllo di versione sul database (perché non sappiamo come), quindi perché lo schema lo ha cambiato è rotto anche se torniamo indietro).
E questo è più o meno il nostro flusso di lavoro.
Quindi, dopo il mio background, la mia domanda è: Pensi che ci siano miglioramenti che potremmo apportare a quanto sopra?
E su una nota a margine: qualcuno conosce un metodo affidabile e di facile media difficoltà (cioè non troppo difficile) per tracciare i database mysql in git?