edit | blame | history | raw

Overview

Git:Blit is an open-source, integrated pure Java stack for managing, viewing, and serving Git repositories.
Its designed primarily as a tool for small workgroups who want to host Git repositories on a Windows machine.

Of course, since its pure Java it should run with any JVM on any platform, but there are already many compelling Git solutions for non-Windows environments.

Current Version

{0} based on {2}   (*{3}*)

sources @ Github

Design Principles

  1. KISS
  2. Offer useful features for serving Git repositories. If feature is complex, refer to #1.
  3. All dependencies must be retrievable from a publicly accessible Maven repository.
    This is to ensure authenticity of dependencies and to keep the Git:Blit distribution svelte.

Features

  • Out-of-the-box integrated stack requiring minimal configuration
  • JGit SmartHTTP servlet
  • Browser and git client authentication
  • Four repository access control configurations and a Read-Only flag

    • anonymous Anonymous View, Clone & Push

    • push Authenticated Push

    • clone Authenticated Clone & Push

    • view Authenticated View, Clone & Push

    • freeze Freeze repository (i.e. deny push, make read-only)
  • Gitweb inspired UI
  • Administrators may create, edit, rename, or delete repositories through the web UI
  • Administrators may create, edit, rename, or delete users through the web UI
  • Repository Owners may edit repositories through the web UI
  • Automatically generates a self-signed certificate for https communications
  • Dates can optionally be displayed using the browser''s reported timezone
  • Author and Committer email address display can be controlled
  • Markdown view support
  • Syntax highlighting
  • Customizable regular expression handling for commit messages
  • Single text file for server configuration
  • Single text file for users configuration
  • Simple repository stats and activity graph (uses Google Charts)
  • Optional utility pages

    • docs Docs page which enumerates all Markdown files within a repository

    • tickets Ticgit ticket pages (based on last MIT release bf57b032 2009-01-27)

Limitations

  • HTTP/HTTPS are the only supported protocols
  • Access controls are not path-based, they are repository-based
  • Only Administrators can create, rename or delete repositories
  • Git:Blit is an integrated, full-stack solution. There is no WAR build at this time.

Todo List

  • Manual certificate generation with BouncyCastle
  • User list with edit and delete links
  • Review spots where Git:Blit can cache data instead of abusing the disk
    • stats
    • users.properties access
    • available repositories
    • etc
  • Download zip feature
  • Site documentation
  • Code documentation
  • Unit testing

Idea List

  • Ticgit activity/timeline
  • Ticgit query feature with paging support
  • Ticgit ticket change history
  • View images on Blob page
  • View other binary files on Blob page
  • Markdown editing feature
  • Blame feature (waiting for the JGit team to do the hard part)

License

TBD

Inspirations

Architecture

block diagram

Bundled Dependencies

The following dependencies are bundled with the Git:Blit zip distribution file.

Downloaded Dependencies

The following dependencies are automatically downloaded from the Apache Maven repository and from the Eclipse Maven repository when Git:Blit is launched for the first time.

Other Build Dependencies

Building

Eclipse is recommended for development as the project settings are preconfigured.

  1. Clone the git repository from Github.
  2. Import the gitblit project into your Eclipse workspace.

    There will be lots of build errors.
  3. Using Ant, execute the build.xml script in the project root.

    This will download all necessary build dependencies and will also generate the Keys class for accessing settings.
  4. Select your gitblit project root and Refresh the project, this should correct all build problems.
  5. Review the settings in gitblit.properties in your project root.

    Make sure you set an appropriate value for git.repositoriesFolder.
  6. Execute the com.gitblit.Launcher class to start Git:Blit.