Pulizia del progetto e best practice per il controllo della versione

6

Sfondo domanda: Ho un progetto piuttosto ampio che ho iniziato prima di conoscere una cosa bellissima chiamata controllo della versione. Ora, ho un sacco di file etichettati con la convenzione "ProjectName_Date."

Domanda:
Sto pensando di cancellare i vecchi file e avviare un nuovo repository con l'ultima versione. Tuttavia, è una buona pratica? Sarebbe meglio provare a mantenere quella storia, cercando di capire quali modifiche sono state apportate tra i file e quindi memorizzare tutto in un repository? O è meglio iniziare da zero e non rischiare di creare un repository discutibile?

Cosa ho fatto:
So che la domanda è soggettiva, ma ho letto diversi articoli (come quello qui ) sulle best practice e non riesci a trovare nulla di utile su questo tipo di problema. Sembra che tutto presupponga che tu stia iniziando da zero.

È gradito qualsiasi consiglio sotto forma di esperienza o di un articolo. Grazie!

    
posta JustBlossom 23.01.2016 - 02:58
fonte

3 risposte

6

Direi, non preoccuparti delle vecchie istantanee.

Configura lo stato corrente nel repository e inizia a usarlo il prima possibile.

Esegui il backup delle vecchie istantanee e in un paio di mesi non ricorderai nemmeno che siano esistite.

Dall'esperienza, quando abbiamo migrato da CVS a GIT, il vecchio controllo del codice sorgente CVS è stato lasciato lì per riferimento, ma dopo pochi mesi nessuno ha mai avuto bisogno di guardarlo.

Meglio investire il tuo tempo nell'apprendimento del tuo sistema di controllo del codice sorgente.

    
risposta data 23.01.2016 - 03:09
fonte
3

Ciò che hai è controllo della versione. Penso che possiamo essere tutti d'accordo sul fatto che si tratta di una versione piuttosto scadente del controllo della versione, ma almeno fai hai versioni diverse, anche se non hai messaggi di commit.

Perché buttare via quella storia?

Da quello che posso ricavare dalla tua descrizione, è uno script a tre righe e una questione di minuti per importare quella storia in un VCS. Meglio averlo che non averlo. Probabilmente ti ci è voluto più tempo per scrivere questa domanda di quanto ci vorrebbe per scrivere lo script ed eseguire l'importazione.

Qualcosa come:

#!/bin/sh

for projectversion in /tmp/project/ProjectName_*; do
  versiondate='basename $projectversion | sed -e 's/ProjectName_//''
  rm -rf *
  mv $projectversion/* .
  git add .
  GIT_AUTHOR_NAME=multiple GIT_AUTHOR_EMAIL=multiple GIT_AUTHOR_DATE=$versiondate git commit -m "Automatically import version $versiondate."
done

[NOTA: non l'ho verificato, e sicuramente non è propriamente citato, quindi usalo a tuo rischio e pericolo. È solo uno schizzo. Oh, e si è anche rivelato essere sette righe, non tre MrGreen]

Se disponi di un file ChangeLog o NEWS , puoi anche utilizzarlo come messaggio di commit.

    
risposta data 23.01.2016 - 11:48
fonte
2

Se devi solo aggiornare / applicare patch / supportare una singola versione, è sufficiente iniziare il repository con la tua ultima versione. Tieni un backup delle vecchie versioni, per ogni evenienza, ma mi aspetto che sia improbabile che ne avrai bisogno.

Tuttavia, se devi supportare più versioni del tuo progetto, ti consiglio di creare un commit per ciascuna delle versioni che devi supportare (non preoccuparti di commettere versioni intermedie, assicurati solo di tenere un backup di esse per ogni evenienza) e taggali di conseguenza. Per le versioni obsolete che non è più necessario fornire supporto, è sufficiente trattarle come se fossero versioni non ufficiali e non impegnarle.

    
risposta data 23.01.2016 - 11:11
fonte