Sto lavorando a un progetto in cui i requisiti cambiano rapidamente, quindi alcune funzionalità sono costruite e rapidamente sostituite da altre funzionalità. Vorrei rimuovere alcune funzionalità dal progetto per tenerlo in ordine, ma anche essere in grado di trovarlo ragionevolmente veloce in un secondo momento.
La struttura della cartella del mio progetto è la seguente: (Symfony 3)
/ansible
/projects <-- I'm already collecting client documents based on change projects here
/trunk
/app
/bin
/src
/AppBundle
/Command
/Controller
/Entity
/Processor
/Resources
Ad esempio, per una modifica voglio rimuovere una classe (= file) da / Command e / Processor ciascuno, ma voglio essere in grado di trovarli e avere anche della documentazione semplice quale fosse il loro scopo.
Ho preso in considerazione le seguenti opzioni:
-
Cerca semplicemente cronologia git: penso che sarà troppo noioso e poco pratico
-
Usa i rami prima della modifica: la mia preoccupazione principale è che questo rende più difficile lavorare con i rami per le funzionalità, poiché i rami di archivio ingombreranno l'elenco
-
Usa tag git: questo mi sembra il più sensato. Sia i rami che i tag hanno bisogno di un modo per conservare la documentazione, quindi sto pensando di creare documentazione al momento della rimozione in una cartella / projects o in un file centrale
-
Copia il codice sorgente rimosso in una cartella: questo sembra poco pratico, perché a volte posso rimuovere solo alcune funzioni
-
Copia l'intero codice sorgente prima di rimuoverlo in una cartella: sembra difficile scoprire in seguito cosa è esattamente cambiato
Ci sono altre soluzioni che non sto considerando?