Giving git-rebase a facelift (UI)
From WorkOutWiki2008
Contents |
Proposer
bain (@) devslashzero.com http://www.devslashzero.com/
Purpose
teamGit currently is quite functional as a basic Gui for git and has almost all capabilities to get you through lot of day to day git activity. But it there are quite a few features missing. And there are some features proposed in teamgit that no other git ui has.
One such feature is an ui for interactive rebase operation. This feature addition is already planned in the roadmap[ http://www.devslashzero.com/teamgit/roadmap ] . Some sort of design for this feature is expected to be put up shortly on the roadmap page. This being star feature of the project and a non trivial one in git/version control realm a community participation with lot more eyes reviewing and coding than one or two will help a lot.
Abstract
Pre-requisites
Languages, tools to be known
* Code language: basic c++ and experience coding with qt4 is required * UI designed : qt-designer * Tools : git
Getting and compiling the code
Main repository
git-clone http://git.gitorious.org/teamgit/mainline.git teamgit
Dependencies:
To compile:
You will need atleast libqt4-dev with qt version >= 4.4.x
So install qt4-dev package for your distribution.
To run:
You will also need to install git >= 1.5 for your distribution.
For ubuntu intrepid:
The default packages should work fine,
sudo apt-get install build-essential libqt4-dev git-core
For ubuntu hardy:
By default the qt version is 4.3.x.
You will have to enable backports repository in hardy and update your libqt4-dev package.
To do that you can use following (crude) code.
sudo sed -i -e "s/# deb/deb/g" /etc/apt/sources.list sudo apt-get update sudo apt-get install libqt4-dev
Compiling
Switch to the teamgit directory and do
qmake make sudo make install
Links to overall design/architecture
Pre-event planning
1. Exact scope of the functionality to be addressed by the UI. It can not support entire interactive rebase function in one go, we will need to zero down of few interactive rebase features as the first ones to tackle
2. Rough design and module definitions for the proposed UI. There will be three main tasks that will be defined out
a. UI design : to be done using qt designer, may be done before hand to workout or at workout as per design.
b. Git interaction module: to be designed at high level before and at low level at workout
Tasks
Existing work
Getting in touch
You can subscribe to the mailing list at following link
http://www.devslashzero.com/teamgit/mailinglist
Send mail to the list (prefered) NOTE: No need to subscribe, its open to all.
teamgit (at) googlegroups.com
or contact the author directly
bain (at) devslashzero.com
Participants
bain: Design and developement, workout lead :D
Add your names if you are interested

