summaryrefslogtreecommitdiffstats
path: root/docs/00_overview.mkd
blob: 7e286c5b31aeb9c73841327863e3b2137d4a8dbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
## Overview
Git:Blit is an open-source, integrated pure-Java stack for managing, viewing, and serving [Git](http://git-scm.com) repositories.
Its designed primarily as a tool for small workgroups who want to host [Git](http://git-scm.com) 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](https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools) for non-Windows environments.
 
### Current Version

[{0}](http://gitblit.com/{1}) based on [{2}](http://eclipse.org/jgit)   (*{3}*)

### Features
- Out-of-the-box integrated stack requiring minimal configuration
- JGit SmartHTTP servlet
- Browser and git client authentication
- Four repository access control configurations
    - *Anonymous View, Clone & Push*
    - *Authenticated Push*
    - *Authenticated Clone & Push*
    - *Authenticated View, Clone & Push*    
- Repositories may also be frozen (deny push) temporarily or permanently
- 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 browser's reported timezone
- Author and Committer email address display can be controlled
- Syntax highlighting
- Customizable regular expression handling for commit messages
- Single text file for server configuration
- Single text file for users configuration
- Simple repository stats
- Optional read-only Docs page which enumerates all Markdown files within a repository
- Optional read-only 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 a full-stack solution, its not just a webapp so at this time there is no WAR build

### Todo List
- Review spots where Git:Blit can cache data instead of abusing the disk
- Unit testing
- Ticgit activity/timeline
- Ticgit query feature with paging support
- Ticgit ticket change history
- Implement Markdown editing
- View images on Blob page
- View other binary files on Blob page

### License
TBD

### Inspirations
- [Gitweb](http://www.git-scm.com)
- [Fossil](http://www.fossil-scm.org) 

## Architecture

![block diagram](architecture.png "Git Blit Architecture")

### Bundled Dependencies
The following dependencies are bundled with the Git:Blit zip file.

- [google-code-prettify](http://code.google.com/p/google-code-prettify)
- [JavaService](http://forge.ow2.org/projects/javaservice)
- icons courtesy of [FatCow Hosting](http://www.fatcow.com/free-icons)

### 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.

- [JGit](http://eclipse.org/jgit)
- [Wicket](http://wicket.apache.org)
- [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts)
- [MarkdownPapers](http://markdown.tautua.org)
- [Jetty](http://eclipse.org/jetty)
- [SLF4J](http://www.slf4j.org)
- [Log4j](http://logging.apache.org/log4j)
- [JCommander](http://jcommander.org)
- [BouncyCastle](http://www.bouncycastle.org)

## Building
[Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured.

1. Clone the git repository from here.
2. Import the gitblit project into your Eclipse workspace.<br/>
*There will be lots of build errors.*
3. Using Ant, execute the `build.xml` script in the project root.<br/>
*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.<br/>
Make sure you set an appropriate value for *git.repositoriesFolder*. 
6. Execute the *com.gitblit.Launcher* class to start Git:Blit.