Skip to content
amireh edited this page Jun 10, 2011 · 3 revisions

Welcome to the Kiwi wiki!

About Kiwi

Kiwi is a tool for generating patch scripts for your application. Those scripts will be consumed by Karazeh. What Kiwi offers:

  • A Qt-powered interface for manipulating patch repositores: create, modify, rename, and delete files
  • Generate binary diffs of updated files, send only what's changed
  • Create a tarball/archive of patch data for instant deployment on your patch server

Using Kiwi

Kiwi's interface is composed of 4 tabs outlined below.

The General tab

  1. Locate the root of your application: this is the top-level directory of your application, and as such, you will not be allowed to manipulate any files residing outside of this directory

  2. Choose how you prefer your patch server layout to look like:

  3. Mirror local repository layout: Create the layout of the remote patch repository exactly like the local one, mirroring the directory tree. For example, a local file found at /home/me/app/1.0.0/bin/foo will be found at http://yourhost.com/patch/1.0.0/bin/foo

  4. Flat repository layout: Place all the patch files in a single directory, converting all directory delimiters to underscores. For example: a file found at /home/me/app/1.0.0/cfg/foo_bar.txt would be located at http://yourhost.com/patches/1.0.0/cfg_foo_bar.txt

The Edit tab

In this screen you will be able to create your repository. First, specify the patch version in the top-right box. After that, you can proceed to add patch entries.

Creating files

  1. Click on the Create new file(s) button
  2. Navigate and choose as many files as you need

Modifying files

If you already have the binary diff generated, then:

  • Click on the Modify an existing file button
  • Choose the file to be modified
  • Choose the binary diff file

To generate a binary diff, you need to go to the Tools tab and follow it from there. Alternatively, you can install the bsdiff tool (available in some Linux distro's main repos) and generate them manually from the command line.

Renaming files

Click on the rename button, choose the source, and then the destination.

Deleting files

Click on the delete files button and choose file(s).

The Commit tab

In this page you can do two things:

  • Generate the patch script: creates the actual patch script, please note that as of now this script only contains the current repository, and will overwrite any early file with the same name. For your patch script to contain all the repositories, you need to place the output of this file at the TOP of patch script on your server.

  • Generate an archive of the patch data: this is a bz2 tarball of the needed patch data (namely all the CREATE and MODIFY entries). This archive reflects the repository layout you've chosen in the General page. Once you create the archive, you can instantly deploy it on your patch server for Karazeh to consume it along with the patch script.