I sistemi di controllo delle versioni possono utilizzare il registro del filesystem per acquisire le modifiche?

1

Stavo cercando di trovare un programma di sincronizzazione "perfetto" tra una condivisione di rete e una cartella locale, quando ho capito che probabilmente è impossibile farlo bene a meno che tutte le operazioni del filesystem non venissero catturate da un log di qualche tipo, che potrebbe quindi essere riprodotto sul server remoto. Ovviamente la stessa cosa è richiesta all'altra estremità per il recupero delle modifiche dal server remoto, ma si potrebbe anche usare il sistema esistente per quello scopo e, nel peggiore dei casi, l'unione manuale.

Il vantaggio di questo approccio sembra essere che la gestione di cancella, rinomina, sposta e copia, ecc., diventa banale, perché il filesystem registra queste operazioni. Quindi ogni commit consisterebbe semplicemente nella scelta della prossima versione modificata significativa . Il log di controllo della versione sarebbe una versione a bassa risoluzione del log del filesystem, ma sarà più portatile e persistente perché può essere trasportato.

È fattibile, o ho capito male i concetti e le limitazioni?

    
posta Milind R 03.11.2015 - 11:12
fonte

2 risposte

2

Hai frainteso perché il log delle transazioni del filesystem è una bestia molto temporanea, non si blocca abbastanza da essere usato per la cronologia (almeno in nessun filesystem che conosca).

Ma in caso contrario, sì - è un principio valido. Il registro VCS sarebbe l'unico registro che hai comunque. Non può essere trasportato in quanto non è un log delle transazioni, ma una cronologia "vivente" delle operazioni. Puoi comunque trasportare la vista di questa cronologia.

La sincronizzazione è già implementata in questo modo: SVNSync esegue esattamente le operazioni di riproduzione che descrivi.

    
risposta data 03.11.2015 - 12:16
fonte
3

Le operazioni del file system sono in realtà spesso con una granularità più grezza rispetto alle modifiche che VCS tiene traccia. Un file può essere sovrascritto in una singola operazione, quando solo una riga è stata realmente cambiata.

Altre volte, le operazioni del file system sono troppo dettagliate e mancano il quadro generale. Qualcuno può "copiare" un file e quindi riscrivere tutto tranne la nota sul copyright. Oppure possono cancellare un file, copiarlo da qualche altra parte con un nuovo nome ma con lo stesso contenuto.

VCS fa la cosa giusta nel calcolo delle differenze direttamente su cosa c'è nei file piuttosto che sull'analisi delle operazioni del file system. Quest'ultimo sarebbe molto più fragile e inducente al mal di testa.

    
risposta data 03.11.2015 - 12:51
fonte