Consideriamo la seguente situazione, una persona del team cancella in maniera “leggera” un intero progetto di Visual Studio da TFS (perchè pensa che non sia più necessario) ed esegue check-in. Dopo qualche minuto, un collega effettua un get-latest che naturalmente cancella quel progetto dalla sua copia locale e purtroppo lui di quel progetto ha bisogno.
Panico 😀
In realtà la comodità di usare un Source Control System è proprio questo, non perdete mai nessuna versione nell’history ed anche le operazioni di cancellazione non fanno altro che marcare i file come cancellati, per cui questa situazione è recuperabile in molti modi.
Caso 1, vi accorgete subito: Potete tranquillamente con VS2012 o con VS2010 + power tools, direttamente dalla UI fare un rollback del changeset, potete leggere i dettagli nel blog di Matteo: “Eseguire il rollback di un changeset con Visual Studio 2012”.
Caso 2: vi accorgete dopo tanto tempo, e tra l’altro nel changeset ci sono anche molte altre operazioni di cui non volete fare rollback. In questo caso la soluzione più semplice è
- *) Fare un workspace temporaneo nuovo
- *) Fare un Get Specific Version della versione precedente al cancellamento
- *) Prendere tutto quello che serve, copiarlo di nuovo nel workspace principale e riaggiungere i file al source control
- *) Rimuovere il workspace temporaneo.
Questo modo di procedere non è proprio “ortodosso”, ma funziona egregiamente ed evita di confondersi e di annullare qualche altra modifica che invece è necessaria. Il fatto di non perdere nessuna versione è uno dei motivi per cui è impensabile di lavorare senza source control, anche se siete i soli a lavorare al progetto.
Gian Maria
Login