Giving git-rebase a facelift (UI)

From WorkOutWiki2008

Jump to: navigation, search

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

Personal tools