| Title | Push operation implementation and GUI improvements for egit Eclipse plugin |
|---|---|
| Student | Marek Zawirski |
| Mentor | Shawn Pearce |
| Abstract | |
|
The aim of this project is extending the functionality of egit - Eclipse Git plugin, and jgit - Git library for Java, that egit relies on. Egit is an already working plugin, that provides support for many basic operations on a local repository and some initial support for operations on remote one. What is particularly missing, is implementation of push to a remote repository and merge in a local repository. Goals of this project are implementation of a push operation and minor improvements of plugin integration with Eclipse platform.
Implementation of push operation for egit is the main goal of the project. As push is currently not supported by jgit library, it must be also implemented there. This goal consists of few parts: - Major work is implementation of creation of repository pack file stream (.pack formatted) that is transfered over network. - Protocol for push operation must be implemented: --- As SSH transport is most commonly used for push operation, this implementation will provide support for SSH. --- Additionally, push by native Git-daemon protocol will be provided, as it uses the same scheme. - Finally, push operation must be added into the Eclipse plugin with needed GUI elements. The second goal of this project is an improvement of plugin integration with Eclipse platform. Currently, it lacks some user interface elements that exist in analogous SVN or CVS plugins for Eclipse. This makes it less user friendly, with look and feel distinct (or just harder) from used by others Team API providers. Few independent steps could improve user experience and integrate better with Eclipse mechanisms. These step involves development of a properties page for Git configuration (project settings and global settings), improved menu, context help for wizards and dialogs, better or configurable resources decoration and other UI improvements. The success of this project can make egit plugin even more usable, with another major operation supported. Functional and easy Eclipse Git plugin may be significant factor for extending Git popularity, as it is presently often considered to be hard to learn and not easily portable. While egit relies on pure Java library (jgit), it makes it important Git implementation for almost all operating systems, including Windows family. This can make it some alternative to problematic C Git port for Windows. |
|