## Roadmap

This is not exactly a formal roadmap but it is a priority list of what might be implemented in future releases.  
This list is volatile.

### TODO (high priority)

* Eclipse: create plugin to enumerate repositories and delegate cloning to EGit
* Manager: support federation RPCs
* Manager: redesign ref indicators in log, search, and activity views to support multiple local branches, remote branches, and tags
* Gitblit: Serve repositories on root URL rather than /git (investigate JGit 1.2 GitFilter)

### TODO (medium priority)

* Gitblit: editable settings page in GO/WAR
* Gitblit: Clone Repository feature (issue 5)
    * optional scheduled pulls
    * optional automatic push to origin/remotes?
    * optional manual push to origin/remotes?
* Gitblit: Repository regex substitutions should be stored in .git/.config, not gitblit.properties

### IDEAS

* Gitblit: Pull requests
* Gitblit: Watch/Star like github with personalized activity feed
* Gitblit: Push database or orphan branch
* Gitblit: Re-use the EGit branch visualization table cell renderer as some sort of servlet
* Gitblit: diff should highlight inserted/removed fragment compared to original line
* Gitblit: respect Gerrit branch permissions
* Gitblit: Consider creating more Git model objects and exposing them via the JSON RPC interface to allow inspection/retrieval of Git commits, Git trees, etc from Gitblit.
* Gitblit: Blame coloring by author (issue 2)
