Prokládané delty - Interleaved deltas

Interleaved deltas nebo SCCS weave je metoda používaná systémem řízení zdrojového kódu k ukládání všech revizí souboru. Všechny řádky ze všech revizí jsou „tkané“ společně v jediném bloku dat, s rozptýlenými ovládacími pokyny, které označují, které řádky jsou zahrnuty do kterých revizí souboru. Prokládané delty jsou tradičně implementovány s řádkově orientovanými textovými soubory, ačkoli nic nebrání tomu, aby byla metoda použita i na binární soubory.

Prokládané delty byly poprvé implementovány Marcem Rochkindem v SCCS v roce 1975. Jeho design zpřístupňuje všechny verze najednou, takže načtení revize trvá stejnou dobu. Obsahuje také dostatečné informace k identifikaci autora každého řádku (obviňování) v jednom bloku. Na druhou stranu, protože jsou analyzovány všechny revize souboru, každá operace roste pomaleji, když jsou přidány další revize. Termín prokládaná delta vytvořil později v roce 1982 Walter F. Tichy , autor systému kontroly revizí , který srovnává tkaní SCCS s jeho novým mechanismem reverzní delty v RCS.

Implementace v SCCS

V SCCS, následující vazba blok

 ^AI 1
 ^AD 2
 foo
 ^AE 2
 bar
 ^AI 2
 baz
 ^AE 2
 ^AE 1

představuje soubor, který obsahuje řádky „foo“ a „bar“ v prvním vydání a řádky „bar“ a „baz“ ve druhé revizi. Řetězec „^ A“ označuje znak ovládacího prvku A.

Řídicí řádky v prokládaném delta bloku mají následující význam:

  • ^ AI sériový Začněte blok řádků, který byl vložen s pojmenovaným sériovým číslem.
  • ^ Seriál AD Spustí blok řádků, který byl odstraněn s pojmenovaným sériovým číslem.
  • ^ AE serial Block end pro odpovídající ^ AI nebo ^ AD prohlášení, které používá stejné sériové číslo.

Výhody

Čas potřebný k extrakci jakékoli revize z takového prokládaného trojúhelníkového bloku je úměrný velikosti archivu. Velikost archivu je součtem velikosti všech různých řádků ve všech revizích.

Aby bylo možné extrahovat konkrétní revizi, je třeba zkonstruovat řadu struktur, které určují, zda bude konkrétní výstup, označený sériovým číslem v prokládaných deltách, zkopírován na výstup nebo ne. Původní implementace SCCS potřebuje cca. 100 bajtů úložiště pro každé jiné sériové číslo v deltech, abyste věděli, jak extrahovat konkrétní revizi. Soubor historie SCCS s milionem delt by tedy potřeboval k vybalení 100 MBytů virtuální paměti. Velikost by mohla být zmenšena o cca. 32 bajtů na deltu, pokud není potřeba načítání anotovaných souborů.

Výhody metody tkaní jsou následující:

  • Jednotná doba načítání pro všechny revize souboru.
  • Možnost anotovat všechny řádky souboru s revizí poslední změny, autorem poslední změny a časem poslední změny bez dalších nákladů.
  • Možnost sloučení v nepřekrývajících se pobočkách bez dalších nákladů.

Software využívající prokládané delty

Bazaar měl v úmyslu použít prokládané delty v roce 2006, ale poté, co byl skutečně implementován v bzr 0,1, byl kvůli špatnému výkonu vyřazen. Stále poskytuje algoritmus sloučení ve stylu vazby.

Viz také

Reference