Możesz zrobić commit log format, rodzaj tego, jak działa wikipedia.
Użyj bazy danych, a każda zapisana zmiana tworzy nowy wiersz w bazie danych, co powoduje, że poprzedni rekord jest nadmiarowy, z zwiększoną wartością, wtedy musisz tylko martwić się o blokadę tabeli podczas fazy składowania.
W ten sposób, przynajmniej jeśli 2 równoczesne osoby zdarzyłyby się edytować coś, obie zmiany pojawią się w historii, a to, co straciliśmy podczas wojny zatwierdzenia, może zostać skopiowane do nowej wersji.
Teraz, jeśli nie chcesz korzystać z bazy danych, musisz się martwić o posiadanie pliku kontroli wersji, który wspiera każdy widoczny plik.
Można umieścić kontroli wersji (GIT/MERCURIAL/SVN) w systemie plików, a następnie zautomatyzować rewizje w fazie ratowania,
pseudokod:
user->save :
getWritelock();
write($file);
write_commitmessage($commitmessagefile); # <-- author , comment, etc
call "hg commit -l $commitmessagefile $file " ;
releaseWriteLock();
done.
Przynajmniej w ten sposób, gdy 2 osoby podejmuj krytyczne zobowiązania w tym samym czasie, ani się nie zgubisz.