Wednesday, September 23, 2015

Cloning WebKit in a Few Easy Steps

The Git changeset repository developed by the WebKit project is not a small Git chanegset repository. In order to Git clone the WebKit Git repository for software development, an incremental Git fetch may be useful. 

An intermediary Git gc call may serve to optimize the Git repository clone, before the final 'unshallow' Git fetch procedure.

Example: Incremental Git clone/fetch - WebKit Git repository.
#!/bin/sh

WHENCE="git://git.webkit.org/WebKit.git"
WHERE="webkit"

git clone --depth=1 "$WHENCE" "${WHERE}"

cd $WHERE

for LIM in 100 1000 5000 10000 20000 40000 60000; do
    git fetch --depth="$LIM"
done

git gc --aggressive --prune=all

exec git fetch --unshallow

Configuring Git index-pack

The following configuration may not be ideally optimal. The following configuration settings may serve to alleviate some conditions that may otherwise cause Git index-pack to fail when repacking the data of WebKit source code repository.
git config --global pack.deltaCacheSize 512m
git config --global pack.deltaCacheLimit 5000
git config --global pack.windowMemory 100m
git config --global pack.packSizeLimit 100m

Post-Checkout Configuration

The WebKit Git repository is constructed effectively as a Git proxy onto the WebKit SVN repository. In order to draw changes directly from the WebKit SVN repository, the WebKit project has provided a utility shell command [cross reference]
cd ${WHENCE}
Tools/Scripts/webkit-patch setup-git-clone

For developing with the EFL WebKit integration, a shell command is available as an initial dependency management utility [cross reference]
${WHENCE}/Tools/efl/install-dependencies

 The "See Also" Section

Developers may wish to refer to more detailed documentation about Git

For further documentation about developing with the EFL integration for WebKit

EFL is a core feature of the Tizen framework. Additional documentation may be available about applications of EFL, with reference to Tizen