Rollback
Versiona automaticamente i file del workspace durante le attività di IA. Esplora i suggerimenti dell'IA e sperimenta con le modifiche in sicurezza, e recupera facilmente dalle modifiche indesiderate.
Cos'è il rollback
Il rollback ti permette di:
- Sperimentare in sicurezza con le modifiche suggerite dall'IA
- Recuperare facilmente da modifiche indesiderate
- Confrontare diversi approcci di implementazione
- Tornare a stati precedenti del progetto senza perdere lavoro
Come funziona il rollback
Bob acquisisce snapshot dei file durante l'esecuzione delle attività, separati dal tuo sistema di controllo versione principale. Questi snapshot vengono creati automaticamente prima delle modifiche ai file, assicurando che tu possa sempre annullare le modifiche indesiderate.
Gli snapshot vengono registrati quando le attività iniziano e prima delle modifiche ai file.
Lavorare con il rollback
Il rollback è integrato direttamente nel tuo flusso di lavoro tramite l'interfaccia chat e appare direttamente nella cronologia chat. Gli snapshot vengono creati prima delle modifiche ai file, consentendo di annullare facilmente qualsiasi modifica.
Ogni snapshot fornisce due funzioni principali sempre disponibili sia nella cronologia chat che nel menu rollback:
Visualizzare le differenze
Per vedere quali file sono cambiati all'interno di un'attività:
- Dopo che Bob ha modificato i file, la vista File modificati apparirà compressa.
- Puoi fare clic per espandere.
- Esamina le differenze nella vista:
- Usa Mostra tutto per vedere tutti i file modificati in un'attività
- Puoi fare clic su un file specifico per vedere le modifiche
Ripristinare uno snapshot
Le opzioni di ripristino sono sempre visibili nei pulsanti e nei dialoghi di rollback, indipendentemente dal fatto che vengano rilevate modifiche. Questo assicura che tu possa sempre tornare a qualsiasi stato.
Per ripristinare un progetto a uno stato precedente:
- Passa il mouse su qualsiasi messaggio utente e usa il pulsante di rollback, che ripristinerà i file modificati allo stato precedente a quel messaggio.
- Fai clic sul pulsante di rollback sui singoli file nella vista File modificati. Questo farà sapere a Bob che hai ripristinato un file.
Limitazioni
- Ambito: Il rollback acquisisce solo le modifiche effettuate durante le attività Bob attive.
- Modifiche esterne: Le modifiche effettuate al di fuori delle attività (modifiche manuali, altri strumenti) non sono incluse.
- File di grandi dimensioni: I file binari molto grandi possono influire sulle prestazioni.
- Lavoro non salvato: Il ripristino sovrascrive eventuali modifiche non salvate nel tuo workspace.
- Tempistica: Gli snapshot vengono creati prima dell'applicazione delle modifiche, fornendo una rete di sicurezza per tutte le modifiche.
- Utilizzo della memoria: Gli snapshot si accumulano nel tempo e possono consumare memoria significativa, specialmente per progetti di grandi dimensioni o attività di lunga durata. Se hai molte attività precedenti con snapshot, considera di eliminarle periodicamente per liberare memoria. Puoi farlo eliminando le conversazioni delle attività precedenti, che rimuove i relativi snapshot.
Implementazione tecnica
Architettura rollback
Il sistema di rollback è composto da:
- Servizio rollback: Gestisce le operazioni sui file e la gestione dello stato attraverso:
- Creazione e archiviazione degli snapshot
- Calcolo delle differenze
- Ripristino dello stato
- Componenti UI: Elementi dell'interfaccia visualizzati nella chat che consentono l'interazione con il rollback.
Processo di ripristino
Quando viene eseguito il ripristino, Bob:
- Completa un reset al momento specificato in una determinata attività.
- Aggiorna lo stato interno di tracciamento del rollback.
Tipo di archiviazione
Il rollback è limitato all'attività, il che significa che ogni snapshot è specifico per una singola attività.
Calcolo delle differenze
Il confronto rollback utilizza le capacità diff sottostanti di Git per produrre differenze strutturate dei file:
- I file modificati mostrano le modifiche riga per riga.
- I file binari vengono rilevati e gestiti correttamente.
- Il rilevamento della rinomina potrebbe essere limitato; i diff si concentrano sulle modifiche al contenuto dei file tra gli snapshot.
- La creazione e l'eliminazione dei file sono chiaramente identificate.
Esclusione file e pattern di ignoramento
Il sistema di rollback utilizza un'esclusione intelligente dei file per tracciare solo i file rilevanti.
Esclusioni integrate
Il sistema dispone di pattern di esclusione integrati che ignorano automaticamente:
- Artefatti di build e directory delle dipendenze (
node_modules/,dist/,build/). - File multimediali e asset binari (immagini, video, audio).
- File di cache e temporanei (
.cache/,.tmp/,.bak). - File di configurazione con informazioni sensibili (
.env). - File di dati di grandi dimensioni (archivi, eseguibili, binari).
- File di database e log.
Supporto .gitignore
Il sistema di rollback rispetta i pattern .gitignore nel tuo workspace:
- I file esclusi da
.gitignorenon attivano la creazione di snapshot. - I file esclusi non appaiono nei diff di rollback.
- Le regole di ignoramento standard di Git si applicano durante la preparazione delle modifiche ai file.
Comportamento .bobignore
Il file .bobignore (che controlla l'accesso dell'IA ai file) è separato dal tracciamento del rollback:
- I file esclusi da
.bobignorema non da.gitignorevengono comunque acquisiti dal rollback. - Le modifiche ai file non accessibili all'IA possono comunque essere ripristinate tramite rollback.
Questa separazione è intenzionale. .bobignore limita i file a cui l'IA può accedere, non i file che devono essere tracciati per la cronologia delle versioni.