-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the Kiwi wiki!
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
Kiwi's interface is composed of 4 tabs outlined below.
-
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
-
Choose how you prefer your patch server layout to look like:
-
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 athttp://yourhost.com/patch/1.0.0/bin/foo
-
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 athttp://yourhost.com/patches/1.0.0/cfg_foo_bar.txt
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.
- Click on the Create new file(s) button
- Navigate and choose as many files as you need
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.
Click on the rename button, choose the source, and then the destination.
Click on the delete files button and choose file(s).
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.