Cancellare sorgenti in TFS

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

Comments are closed.