wiki:QtWebKitGitInstructions

Version 9 (modified by Simon Hausmann, 11 years ago) (diff)

--

Branch Overview

There are six types of branches in the QtWebKit Git repository:

  • svn/master: This is the main development line, mirrored straight from SVN trunk. We do our development in trunk.
  • qtwebkit-4.5: This branch, based on trunk, contains what we're shipping in Qt 4.5. No direct development happens in this branch, we only merge from trunk or branches that are scheduled for inclusion into trunk.
  • shared/* : Everybody can create/delete/change branches that start with "shared/".
  • <username>/* : This is where developers publish their changes. You can have as many so-called topic branches as you like. For example holger/crash-fix would be a name for such a topic branch.
  • svn/* such as svn/master or svn/Safari-3-branch. The branches prefixed with svn/ are read-only and are mirrored from the WebKit Subversion repository.

Howto

Getting Started

  • Clone your git repository from git+ssh://git@code.staikos.net/srv/git/webkit
  • If you don't have ssh/push access you can do a read-only clone using git clone git://code.staikos.net/webkit
  • After that you will have one local branch called qtwebkit.
  • Tell git your full name and email address:
        git config user.email joe.doe@foobar.com
        git config user.name "Joe Doe"
    

Step-by-step instructions

(Note: Substitute simon/crash-fix accordingly)

  • Create a local topic branch: git checkout -b simon/crash-fix origin/svn/master
  • After that you will be on a local simon/crash-fix branch.
  • Now you can hack away and commit as many changes as you want.
  • To publish your changes for the first time run the following command: git push origin simon/crash-fix
  • You can continue hacking and if you want to publish more changes you can just run git push
  • If you want to merge the latest changes from the svn/master branch run this:
    git fetch
    git rebase origin/svn/master
    
  • When you are happy with your changes and they have been merged into the svn/master branch you can delete your branch on the public repository using git push origin :simon/crash-fix
  • After deleting the branch on the public repository you can also delete it locally:
    • Switch to a different branch, such as master: git checkout master
    • Delete the branch: git branch -D simon/crash-fix
  • If you don't have ssh/push access you can do all of the above apart from the git push commands. You can create a series of patches using git format-patch origin/qtwebkit. That will create a series of numbered .patch files that include all your commits.