Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Orion/Orion - Git client enhancements

< Orion
Revision as of 04:35, 20 May 2011 by Tomasz.Zarna.pl.ibm.com (Talk | contribs) (Progress)

  • Student: Piotr Janik
  • Mentors: Tomasz Zarna, Szymon Brandys

This project is part of the Google Summer of Code 2011


Goal

The first release of Orion is going to provide a simple but fully functional support for git. The idea behind this project is to identify missing bits and address them.

My work would include implementation of missing Git commands. Task includes both server side and UI work.


General plan

  • Enhancement of existing remote command by implementing add/remove remotes functionality.
  • Add support for working with branches i.e. implement git branch and git checkout
  • Implementation of missing commands like reset, rm, revert, cherry-pick. Work will include both server and client side, number of implemented commands depends on available time.
  • Changing server implementation of some Git commands to use JGit porcelain API instead of JGit internals.
  • Enhancing existing commit and add commands to be able to work with single file. Currently, only whole project can be committed.
  • Implementation of user friendly graphical representation of git log. Similar to what we can see in EGit or git log --graph.
  • Improvement of git config. Current configuration options cover only user.name and user.email.
  • General UI polishing. For example clone seems to need some work, according to discussion available here.
  • implement conditional GET where possible to reduce network traffic between client and server. [bug 338121, bug 338122, bug 339846]
  • Implementing hundreds of fresh ideas, which may come once you begin development work. :)

Also very important parts of my work:

  • Cooperation with JGit community when it is needed. As JGit is still in development, some features can be missing, some can change rapidly and some can need a fix.
  • Taking care of test coverage and wiki updates (i.e. server side Git REST API).


Detailed plan

tasks related to M8 milestone

  • git remotes management
Glass.gif bug 339109 [server] provide REST API for git remote
Glass.gif bug 344215 [client] implement missing functionality for remotes management
  • git branch management
    • bug 341384 [server] provide REST API for git branch
    • bug 342727 [server] improve git fetch to fetch only given branch instead of all branches within the remote
    • bug 342537 [server] get the remote and branch associated with the checked out local branch
  • general enhancements
    • bug 340553 [server] provide REST API for removing clones
    • bug 337820 [server] provide REST API for git config
    • bug 342500 [client] use the commit link to show commit details in Log UI
Progress.gif bug 339190 [server] allow to commit a single file
  • bugs
    • bug 343247 [server] git commit operation returns empty response
    • bug 343646 [server] git push for tags returns wrong result

tasks planed to be fixed after M8 release

  • server REST API enhancements
    • bug 345269 [server] provide REST API for git init
    • bug 346206 [server] provide REST API for git checkout {treeish} -- {path}
    • bug 343487 [server] provide REST API for removing a tag
    • bug 339105 [server] provide REST API for git revert
    • bug 345399 [server] identify git REST API code with low test coverage ratio
  • modifying git operations to use JGit Porcelain API
    • bug 338205 [server] use DiffCommand to generate git diffs
Progress.gif bug 340789 [server] use StatusCommand from JGit porcelain API for /git/status
Progress.gif bug 344683 [server] use LogCommand to get commits list
  • general enhancements
    • bug 345397 [client] show a graph on git log page
    • bug 343644 [server] git log should return branches for commits
    • bug 346070 [server] when cloning a repository create a selected folder if it doesn't exist
    • bug 343496 [server] add more tests for git push
    • bug 340053 [server] GET /git/commit should return a multi-part response containing both the commit content and details (author, message, etc.)
  • bugs
    • bug 345898 [server] GitCloneTest#testCloneNotGitRepository prints a stack trace on console
    • bug 338913 [server] /git/status doesn't return files marked with assume unchanged
    • bug 339609 [server] NPE on unstage in a new repository

task related to JGit

  • bugs which blocks work on Orion related tasks
Ok green.gif bug 345899 [jgit] missing getConflicting functionality in StatusCommand
Ok green.gif bug 346257 [jgit] path filtering in LogCommand doesn't work


Progress

This section contains tasks which are under development now and in the nearest future.

Ongoing work

Status Bugzilla entry Description Waits for review
Progress.gif bug 344683 [server] migration to JGit porcelain API - git log  ? Szymon
Ok green.gif bug 340789 [server] migration to JGit porcelain API - git status + Tomek
Progress.gif bug 339190 [server] commit of single file Progress.gif


Planned in the nearest future

Status Bugzilla Entry Description
Glass.gif bug 339109 [server] provide REST API for git remote
Glass.gif bug 339109 [client] implement missing functionality for remotes management

Completed tasks

Section contains all the task which are completed, tested and positively reviewed.

Orion

Status Bugzilla Entry Description


JGit

Status Bugzilla Entry Description
Ok green.gif bug 345899 [jgit] missing getConflicting functionality in StatusCommand
Ok green.gif bug 346257 [jgit] path filtering in LogCommand doesn't work

Back to the top