Difference between revisions of "Patch (utility)"

From Sega Retro

old>Kram1024
old>Kram1024
Line 29: Line 29:
 
In order to make a Unified Diff with the '''diff''' utility, simply use this example:
 
In order to make a Unified Diff with the '''diff''' utility, simply use this example:
  
  '''diff -U''' ''old_source'' ''new_source''
+
'''diff -U''' ''old_source'' ''new_source''
  
 
where ''old_source'' is your unaltered disassembly and ''new_source'' is end result.
 
where ''old_source'' is your unaltered disassembly and ''new_source'' is end result.

Revision as of 20:21, 24 February 2009


This short article is in need of work. You can help Sega Retro by adding to it.



patch is a utility used to apply source code patches to a source code tree. Source code patches are commonly used to distribute code changes to developers working on open-source projects.

The diff utility is used to create patches, which can then be applied by patch.

Unified Diff

The most common format for patches is the unified diff. The unified diff shows both line additions and removals, which are indicated by '+' and '-' symbols at the front of each line, respectively.

Example unified diff:

--- a/pyl.asm
+++ b/pyl.asm
@@ -55,9 +55,9 @@ START:
        jsr     draw_active_square
 
 main:
-       ; Wait 16 frames. (1/3 second)
-       ; TODO: Support PAL timing.
-       moveq   #15, d0
+       ; Wait a bit to advance the square.
+       moveq   #0, d0
+       move.b  RAM_Frames_SquareAdvance, d0
 .vsync_loop:
                jsr     VSync
                dbf     d0, .vsync_loop

In order to make a Unified Diff with the diff utility, simply use this example:

diff -U old_source new_source

where old_source is your unaltered disassembly and new_source is end result.

POSIX Diff

The diff utility can also run in POSIX mode and create a POSIX compliant Diff, which uses > and < instead of + and -. The patch utility also supports these.

Example posix diff:

Binary files s1hive/alink.msg and s1hive-as/alink.msg differ
Common subdirectories: s1hive/_anim and s1hive-as/_anim
Binary files s1hive/as.msg and s1hive-as/as.msg differ
Binary files s1hive/asw.exe and s1hive-as/asw.exe differ
diff -P s1hive/build.bat s1hive-as/build.bat
2c2
< include.exe sonic1.asm s1comb.asm
---
> REM include.exe sonic1.asm s1comb.asm
13c13,15
< snasm68k.exe -emax 0 -p -o ae- s1comb.asm, s1built.bin
---
> cls
> asw  -xx -c -A sonic1.asm
> p2bin sonic1.p s1built.bin -l 0 -r $-$
Binary files s1hive/cmdarg.msg and s1hive-as/cmdarg.msg differ
Common subdirectories: s1hive/_dlls and s1hive-as/_dlls
Common subdirectories: s1hive/_inc and s1hive-as/_inc

Downloads