## 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: investigate create-repository-on-push.
    * Maybe a new user role to allow this?
    * Maybe a server setting to disable this completely?
    * Pusher/Creator becomes repository owner and can then manipulate access lists, etc?
* 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
* Gitblit: Consider allowing git:// protocol using JGit
    * new setting *git.allowGitProtocol* to enable/disable git:// protocol
    * unrestricted repositories would have anonymous RW git:// access
    * push-restricted repositories would have anonymous R git:// access
    * clone-restricted repositories would prohibit git:// access
    * view-restricted repositories would prohibit git:// access

### IDEAS

* Gitblit: Re-use the EGit branch visualization table cell renderer as some sort of servlet
* Gitblit: Support personal repositories (~username/repo)
* Gitblit: diff should highlight inserted/removed fragment compared to original line
* Gitblit: implement branch permission controls as Groovy pre-receive script.  
*Maintain permissions text file similar to a gitolite configuration file or svn authz file.*
* Gitblit: consider user-subscribed email notifications for a repository branch.  
* Gitblit: aggregate RSS feeds by tag or subfolder
* 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)
* Gitblit: View binary files in blob page (issue 6)