È utile scrivere oggigiorno un obiettivo clean make?

7

Il trucco proviene da un momento in cui il controllo della versione era piuttosto immaturo. Capisco la necessità di un modo semplificato per pulire lo spazio di lavoro di allora.

Oggigiorno qualsiasi strumento di controllo della versione decente può pulire i file non pilotati nell'area di lavoro. I file che non necessitano di pulizia (cache, download, ecc.) Possono essere esclusi. È anche facile e veloce clonare nuovamente l'intero spazio di lavoro, se necessario.

Riesco a pensare ai motivi per cui non per scrivere un target pulito: aumenta le dimensioni del codebase, potrebbe contenere bug, ecc. Vorrei sapere se ci sono dei buoni motivi per ne scrivi uno al giorno d'oggi?

    
posta marcv81 21.11.2016 - 08:50
fonte

1 risposta

10

Esiste sicuramente una certa sovrapposizione tra git clean e make clean . Tuttavia, di solito non sono equivalenti. Possibili scenari:

  • Il codice sorgente è distribuito in un tarball, non come un repository git. Gli utenti finali compilano il software da soli. Qui, non esiste un controllo di versione in grado di pulire i risultati di una build mal riuscita.

  • L'invocazione del Makefile è solo un passaggio in un processo di compilazione più grande. Per esempio. potremmo dover creare il Makefile prima tramite ./configure o cmake . Questi possono richiedere del tempo per essere eseguiti, quindi potremmo non voler riconfigurare per una build pulita. Un clean basato su controllo di versione non ha il livello di granularità richiesto.

  • Costruisco e collaudo prima che ho eseguito il commit. Se dovessi utilizzare un meccanismo di pulizia basato sul controllo della versione, potrei rimuovere il mio lavoro senza commit. Al contrario, make clean dovrebbe eliminare solo i file che sono stati generati dal processo di compilazione.

  • Con i Makefile ricorsivi, sono in grado di limitare la compilazione pulita al modulo su cui sto lavorando. Non devo pulire l'intero progetto se non lo voglio.

Sono arrivato ad apprezzare diversi livelli di clean build quando ho fatto un po 'di ingegneria di costruzione per hardware di nicchia che ha reso le build piuttosto lente. Meno potrei cancellare e ottenere ancora una build di successo, meglio è. C'è una differenza molto evidente tra aspettare mezza giornata o aspettare cinque minuti per i miei risultati, specialmente quando c'è una scadenza incombente.

    
risposta data 21.11.2016 - 11:29
fonte

Leggi altre domande sui tag