Jump to: navigation, search

Difference between revisions of "Orion/Orion - Git client enhancements"

(tasks related to 0.2 release)
(tasks related to 0.3 release)
Line 64: Line 64:
 
**[[Image:Ok green.gif]] {{bug|353262}} [client] Git Log should allow to mark commits from given branch  
 
**[[Image:Ok green.gif]] {{bug|353262}} [client] Git Log should allow to mark commits from given branch  
 
**[[Image:Ok green.gif]] {{bug|353308}} [client] branches should be realigned after successful push operation
 
**[[Image:Ok green.gif]] {{bug|353308}} [client] branches should be realigned after successful push operation
**[[Image:Ok green.gif]] {{bug|349727}} [client] git cherry-pick support UI
 
 
**[[Image:Ok green.gif]] {{bug|352202}} [server][client][push] missing git push for remote  
 
**[[Image:Ok green.gif]] {{bug|352202}} [server][client][push] missing git push for remote  
 
**[[Image:Ok green.gif]] {{bug|343644}} [server] ''git log'' should return branches for commits
 
**[[Image:Ok green.gif]] {{bug|343644}} [server] ''git log'' should return branches for commits

Revision as of 07:57, 2 August 2011

  • 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

Complete list of bugs

  • 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 0.2 release

  • git remotes management
    • Ok green.gif bug 339109 [server] provide REST API for git remote
    • Ok green.gif bug 344215 [client] implement missing functionality for remotes management
  • general enhancements
    • Ok green.gif bug 349952 [git][server] Git Init should be a task
    • Ok green.gif bug 347639 [server] Update Git tests to cover changes from Bug 347125
    • Ok green.gif bug 345269 [server] provide REST API for git init
    • Ok green.gif bug 337820 [server] provide REST API for git config
    • Ok green.gif bug 347313 [client] add UI to change Git repo configuration
    • Ok green.gif bug 339190 [server] allow to commit a single file
    • Ok green.gif bug 347949 [server][git] need API change to display more information on git-log view
    • Ok green.gif bug 343247 [server] git commit operation returns empty response
  • bugs
    • Ok green.gif bug 347906 | [server][git]Deleting Remote does not delete it
    • Ok green.gif bug 343646 [server] git push for tags returns wrong result
    • Ok green.gif bug 348748 [server][git] GET on git config returns 500 when repository is in subfolder
    • Ok green.gif bug 349014 [server] add test for GET /gitapi/config/{key}/clone/file/{path}
    • Ok green.gif bug 349291 [server][git] add tests for Bug 347949

tasks related to 0.3 release

  • general enhancements
    • Ok green.gif bug 350410 File content overridden when saved from multiple editors
    • Ok green.gif bug 351440 [git] '+' in refspecs seems to not be respected during push/fetch operations
    • Ok green.gif bug 339848 [server] Provide a synchronization token for git 'write' operations
    • Ok green.gif bug 350422 [git] Specify the committer and author names/mails per commit
    • Ok green.gif bug 351429 [git] Add git rebase
    • Ok green.gif bug 349375 [server] Ability to delete remote branches
    • Ok green.gif bug 353191 [client] Git Log should show branches for commits
    • Ok green.gif bug 353088 [log] Implement APi and UI for Git log --all
    • Ok green.gif bug 353262 [client] Git Log should allow to mark commits from given branch
    • Ok green.gif bug 353308 [client] branches should be realigned after successful push operation
    • Ok green.gif bug 352202 [server][client][push] missing git push for remote
    • Ok green.gif bug 343644 [server] git log should return branches for commits
  • modifying git operations to use JGit Porcelain API
    • Ok green.gif bug 340789 [server] use StatusCommand from JGit porcelain API for /git/status
    • Ok green.gif bug 344683 [server] use LogCommand to get commits list
  • bugs
    • Ok green.gif bug 350424 [client] wrong request for file save
    • Ok green.gif bug 339848 [server][git] wrong repository option location during GET /gitapi/config/{key}/clone/file/{path}
    • Ok green.gif bug 345898 [server] GitCloneTest#testCloneNotGitRepository prints a stack trace on console
    • Ok green.gif bug 351270 [file] testETagHandling - java.lang.AssertionError:
    • Ok green.gif bug 353120 Git status is broken if user.name and user.email are not in the repo configuration
    • Ok green.gif bug 346285[server][tag] Tagging with a tag name that already exist should not throw 500 error
    • Ok green.gif bug 353096 [client] Custom author/committer fields are reset after staging
  • misc
    • Ok green.gif bug 350280 [server][git][config] Update Git Server API wiki page for git config

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.

Finished tasks, which wait for review

Status Bugzilla entry Description Waits for review Comments
Ok green.gif bug 339848 [server] Provide a synchronization token for git 'write' operations  ? Szymon
Ok green.gif bug 352202 [server][client][push] missing git push for remote  ? Tomek
Ok green.gif bug 349727 [client] git cherry-pick support UI  ? Szymon
Ok green.gif bug 353308 [client] branches should be realigned after successful push operation  ? Szymon
Ok green.gif bug 353262 [client] Git Log should allow to mark commits from given branch  ? Szymon

Planned in the nearest future

Status Bugzilla Entry Description

Completed tasks

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

Orion

Status Bugzilla Entry Description Reviewed by
Ok green.gif bug 337820 [server] provide REST API for git config + Szymon
Ok green.gif bug 339109 [server] provide REST API for git remote + Szymon
Ok green.gif bug 339190 [server] commit of single file + Tomek
Ok green.gif bug 340789 [server] migration to JGit porcelain API - git status + Tomek
Ok green.gif bug 343247 [server] git commit operation returns empty response + Szymon + Tomek
Ok green.gif bug 343644 [server] git log should return branches for commits + Tomek
Ok green.gif bug 343646 [server] Git Push for tags returns wrong result + Szymon
Ok green.gif bug 344215 [client] implement missing functionality for remotes management + Szymon
Ok green.gif bug 344683 [server] migration to JGit porcelain API - git log + Tomek
Ok green.gif bug 345269 [server] provide REST API for git init + Szymon
Ok green.gif bug 345898 [server] GitCloneTest#testCloneNotGitRepository prints a stack trace on console + Tomek
Ok green.gif bug 346285 [server][tag] Tagging with a tag name that already exist should not throw 500 error + Tomek
Ok green.gif bug 347313 [client] add UI to change Git repo configuration + Szymon
Ok green.gif bug 347639 [server] Update Git tests to cover changes from Bug 347125 + Szymon
Ok green.gif bug 347906 [server][git]Deleting Remote does not delete it + Szymon
Ok green.gif bug 347949 [server][git]Need API change to display more information on git-log view + Szymon
Ok green.gif bug 348748 [server][git] GET on git config returns 500 when repository is in subfolder + Szymon
Ok green.gif bug 349014 [server] Add test for GET /gitapi/config/{key}/clone/file/{path} + Tomek
Ok green.gif bug 349291 [server][git] Add tests for Bug 347949 + Szymon
Ok green.gif bug 349375 [server] Ability to delete remote branches + Tomek
Ok green.gif bug 349428 [server][git] Wrong cloneLocation in git log toRef + Szymon
Ok green.gif bug 349952 [git][server] Git Init should be a task + Szymon
Ok green.gif bug 350280 [server][git][config] Update Git Server API wiki page for git config + Tomek
Ok green.gif bug 350410 File content overridden when saved from multiple editors + Szymon
Ok green.gif bug 350422 [git] Specify the committer and author names/mails per commit + Tomek
Ok green.gif bug 350424 [client] wrong request for file save + Szymon
Ok green.gif bug 351060 [server][git] wrong repository option location during GET /gitapi/config/{key}/clone/file/{path} + Szymon
Ok green.gif bug 351270 [file] testETagHandling - java.lang.AssertionError: + Tomek
Ok green.gif bug 351429 [git] Add git rebase + Szymon + Tomek
Ok green.gif bug 351440 [git] '+' in refspecs seems to not be respected during push/fetch operations + Szymon + Tomek
Ok green.gif bug 353088 [log] Implement APi and UI for Git log --all + Tomek + Szymon
Ok green.gif bug 353096 [client] Custom author/committer fields are reset after staging + Tomek
Ok green.gif bug 353120 Git status is broken if user.name and user.email are not in the repo configuration + Tomek
Ok green.gif bug 353191 [client] Git Log should show branches for commits + Tomek

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