it-swarm-eu.dev

Salvare e ripristinare lo stack di annullamento - buono o cattivo?

In un'app desktop sovrana con annulla/ripristina multilivello (ad es. Photoshop, Word, ecc.), La possibilità di salvare e ripristinare la cronologia degli annullamenti di un file con il file stesso sarebbe una cosa positiva o negativa? La mia reazione iniziale è "buona", tuttavia ho scoperto che a volte tengo premuto Control + Z fino a quando non smette di funzionare per tornare a una versione precedente. Qualche studio o esperienza con questo?

12
Robert Fraser

Un esempio di tale applicazione è IntelliJ IDEA (e alcuni altri ambienti di programmazione). Oltre al solito controllo di revisione esterno specifico del progetto , IDEA ha un utente specifico cronologia locale che salva una revisione di ogni file ad ogni salvataggio (la cronologia viene archiviata nella home directory dell'utente). Le vecchie revisioni vengono archiviate per impostazione predefinita per 3 giorni lavorativi attivi, dopo di che vengono rimosse le vecchie revisioni. Insieme alla funzione di salvare automaticamente tutti i file ogni pochi secondi (la mia preferenza è dopo essere stato inattivo per 5 secondi), questo significa che non dovrai mai pensare al salvataggio dei file e puoi sempre ottenere indietro i vecchi dati. È un vero salvavita durante la programmazione. (A volte lo uso anche per scoprire quante ore ho lavorato su un progetto, per registrare le mie ore di lavoro, perché la cronologia locale mostra la data e l'ora di ogni modifica .)

È ancora necessario un controllo di revisione esterno, ma per altre esigenze: lì si eseguiranno le modifiche in genere quando si esegue un lavoro coerente, almeno una volta ogni 1-2 ore, ed è anche un modo per distribuire le modifiche ad altri team membri e fare backup. La storia locale d'altra parte è per recuperare da incidenti pochi secondi o minuti dopo che è accaduto.

Penso che molti altri programmi trarrebbero beneficio da una storia locale simile. Mi piacerebbe se la mia Office Suite l'avesse, perché uno stack di annullamento/ripetizione e il salvataggio manuale dei file sono modi molto primitivi per recuperare i dati persi (non consentono il recupero selettivo e non sopravvivono al riavvio del programma). Ricordo anche di aver visto un'applicazione di modifica delle immagini (non ricordo il nome - penso che fosse solo per Mac), in cui tutte le modifiche sono state fatte come trasformazioni dell'immagine originale, e in qualsiasi momento puoi tornare indietro per cambiare qualsiasi le modifiche precedenti. Quindi una tale storia è possibile anche con l'editing delle immagini.

Non penso che vorrei che la cronologia fosse archiviata all'interno del file in fase di modifica, altrimenti sarebbe molto grande (una revisione ogni paio di secondi; la mia cronologia locale per i progetti di programmazione su cui ho lavorato in un anno è 370 MB) e potrebbe causare un problema di sicurezza perdendo dati che pensavi di aver rimosso, ma una cronologia per utente sarebbe ottima.

7
Esko Luontola

ogni tanto vorrei che Photoshop o Word avessero una tale funzionalità, d'altra parte, come hai detto, spesso premo control-z fino a quando non si ferma.

Un altro problema è rappresentato dalle prestazioni. Pensa a una bozza di documento Word che viene passata e modificata per settimane. Sarebbe enorme! e impiegare un'eternità per caricare.

Ancora un altro problema è la privacy. Non voglio che le persone vedano quali passi ho fatto per dipingere l'immagine in Photoshop o quale fosse la mia precedente proposta alla lavagna.

In conclusione, penso che possa essere bello ma dovresti avere un modo per eliminare la cronologia per motivi di prestazioni e per la privacy e anche se una persona preme ctrl-z dovresti fermarti quando colpisci lo stato del documento quando è è stato aperto l'ultima volta e chiedere se è sicuro di voler continuare.

7
Sruly

Mi sembra che tu non voglia annullare/ripetere, ma il controllo delle versioni dei file o controllo di revisione . (Non so di Photoshop, ma Word ha questa funzione, disabilitata per impostazione predefinita).

7
peeles

Forse un timeout all'annullamento predefinito per 5 minuti (e può essere o meno una durata modificabile del timeout)? Affronterebbe le preoccupazioni molto valide che le persone hanno qui sul valore dell'annullamento dei dati giorni/settimane/mesi dopo. E affronterebbe il problema sollevato qui di chiusura accidentale di un'applicazione e perdita dei dati di annullamento. E manterrebbe il valore di tenere premuto Ctrl + Z per cancellare tutte le modifiche durante la "sessione" (dove ora una "sessione" indica qualsiasi utilizzo che abbia inattività meno di 5 minuti alla volta)

2
Chris Ledwith

Mi piace molto, per progetti piccoli e grandi.

Google Chrome quando ripristini una scheda che hai chiuso per errore, verrà fornita una cronologia completa, che è eccezionale a sé stante.

Alcune applicazioni produttive costruiscono i loro artefatti da una serie di azioni, come la modellazione 3D in cui si applicano operazioni in una pila infinita e possono quindi entrare e modificare le operazioni precedenti e far sì che tale modifica si propaghi attraverso la pila al modificatore corrente. Il formato del file si basa quindi sul flusso di azioni, non su un risultato finale.

Qualsiasi applicazione in cui non è ovvio "pubblicare" una versione finale o pubblica di un artefatto comporterebbe tuttavia molti rischi. Come se invii un documento di Word con una cronologia completa delle modifiche che offenderebbero il destinatario (come un'offerta in cui hai cambiato il nome del client da un altro client o quant'altro).

1
Oskar Duveborn

Personalmente penso che sia negativo. Un sistema di controllo della versione sarebbe meglio per questo. Non credo che gli utenti si aspettino che Annulla funzioni in questo modo. Non vedo come possano ricordare cosa c'è nel loro stack di annullamento di diversi giorni. E potenzialmente questo può consumare molto spazio su disco e memoria nella tua app. Voglio dire, gli utenti essenzialmente non si liberano mai dei dati. Come gestisci i casi d'uso in cui gli utenti vogliono liberare spazio sul proprio disco rigido perché sono in esaurimento?

1
Erik Engheim

La mia sensazione è che questo sia lo strumento sbagliato per il lavoro. Annulla e Ripeti riguarda le azioni all'interno di questo processo, in modo che io possa annullare/ripetere un'azione prima di salvare e andare avanti. Il salvataggio tra le sessioni mi sembra un requisito diverso, il versioning è più lo stile. Vedo che c'è un posto per mantenere lo stack di ripetizione con una versione salvata di un file/applicazione, il che significa che potresti aprire una versione e annullare immediatamente le azioni precedenti, ma quando inizi a fare più azioni, perdi questo - lo stack viene riavviato.

Vedo che sarebbe utile - posso vedere alcune volte che mi piacerebbe - ma penso ancora che non sia il giusto utilizzo di questa struttura.

0