Det finns ett par olika sätt, just wikipedia har valt en lösning som är snabb, men kräver att man lagrar mycket data (en liten parentes i den här frågan är ju att ett av wikipedias största problem i dagsläget är datamängden); de sparar hela artikeln med all data, varje gång.
Versionshanteringssystemet cvs kör på att bara ha delta store (dvs, bara lagra diffen från den tidigare ändringen); detta kräver avsevärt mindre data då man endast lagrar lagrar den initiella artikeln och sedan diffar. Tredje editeringen innebär alltså 1. initiell artikel -> diff -> diff på artikeln och föregående diff. Detta pågår i all oändlighet och man kan se det som en patch-kö där vissa diffar ska appliceras i en viss ordning för att få ett visst resultat. Denna metod är väldigt lagringseffektiv men kräver mycket mer beräkningskraft för att hämta ut ett visst resultat, det är även lättare att datan skulle gå sönder om t.ex ett steg i denna patch-kö skulle vara trasigt.
Ett tredje alternativ är att göra som versionshanteringssystemet mercurial (även kallat hg) gör, där det görs beräkningar på om denna delta plus tidigare deltas kräver större plats än alla deltas tillsammans från den senast gjorda ändringen. Tar tidigare deltas större plats sparas inte en diff utan filen i sin helhet och man börjar beräkna deltas från senaste sparningen och frammåt. Detta tar inte asevärt större plats än att bara spara deltas, det är heller inte avsevärt långsammare än att spara allting igen och utföra diffar på det. Den övre beskrvningen är en grav förenkling av mercurials algoritm, men i stort sett är det så den fungerar.
Använder du den tredje kan det vara en poäng att lagra lite mer metadata, typ storlek på alla diffar från den senaste fulla sparningen. Du behöver i alla fallen utom det första även lagra vilken som är föregångaren till redigeringen.
