[haiku] Re: Haiku Files - Binary Diffs

  • From: Nick <tonestone57@xxxxxxxxxxx>
  • To: <haiku@xxxxxxxxxxxxx>
  • Date: Sat, 26 Sep 2009 10:01:41 -0600

Hello,

>For updating you could keep a diff of your version from the last major OS 
>release (1.2 for >example) and revert before applying each update (so 1.2.2 -> 
>1.2 -> 1.2.5) if you aren't >running the latest version (1.2.4 -> 1.2.5).  
>That way only requires two diffs to be generated, 

Good idea but patches appear to be one direction only from what I can
tell.  By looking at bsdiff and xdelta I see them only being applied forwards
& not backwards. So, you'd have to create new diffs to go from 
1.2.2->1.2, 1.2.3->1.2, etc. - appears you can't reverse patches.

 The chain-loading method came to me afterwords too as another 
option.  Just to compare the two available diff methods.

Method 1 ( 6 diffs ):
2.0->2.6, 2.1->2.6, 2.2->2.6, 2.3->2.6, 2.4->2.6, 2.5->2.6

Method 2, chain-loading ( 6 diffs ):
2.0->2.1, 2.1->2.2, 2.2->2.3, 2.3->2.4, 2.4->2.5, 2.5->2.6

Method 1 & 2 both result in tracking 6 diffs

Method 1:
-Apply only 1 diff to update to latest
-Always provides smallest patch file size
-With new version, you have to create multiple diffs against
latest release ( ie: 6 diffs in this case )

Method 2, chain-loading:
-Apply 1 or more diffs ( ie: 1 to 6 in this case )
-Combined patch file size  greater than ( or equal to ) single 
patch created with Method 1
-With new release you create only 1 new diff (2.5->2.6)

Method 1 is very efficient but more work for maintainer.
Method 2 is less efficient but easy & less work for maintainer.

Regards,
                                          
_________________________________________________________________
Create a cool, new character for your Windows Live™ Messenger. 
http://go.microsoft.com/?linkid=9656621

Other related posts: