You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

00_index.mkd 5.8KB

13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. ## Overview
  2. Gitblit is an open-source, integrated pure Java stack for managing, viewing, and serving [Git][git] repositories.
  3. Its designed primarily as a tool for small workgroups who want to host [Git][git] repositories on a Windows machine. Having said that, it works equally well on any standard Linux distribution.
  4. ### Current Release
  5. [%VERSION%](http://gitblit.com/%DISTRIBUTION%) based on [%JGIT%][jgit]   (*%BUILDDATE%*)
  6. sources @ [Github][gitbltsrc]
  7. ### Design Principles
  8. 1. [Keep It Simple, Stupid](http://en.wikipedia.org/wiki/KISS_principle)
  9. 2. Offer useful features for serving Git repositories. If feature is complex, refer to #1.
  10. 3. All dependencies must be retrievable from a publicly accessible [Maven](http://maven.apache.org) repository.<br/>This is to ensure authenticity of dependencies and to keep the Gitblit distribution svelte.
  11. ### Features
  12. - Out-of-the-box integrated stack requiring minimal configuration
  13. - JGit SmartHTTP servlet
  14. - Browser and git client authentication
  15. - Four repository access control configurations and a Read-Only flag
  16. <ul class='noBullets'>
  17. <li>![anonymous](blank.png) *Anonymous View, Clone & Push*</li>
  18. <li>![push](lock_go_16x16.png) *Authenticated Push*</li>
  19. <li>![clone](lock_pull_16x16.png) *Authenticated Clone & Push*</li>
  20. <li>![view](shield_16x16.png) *Authenticated View, Clone & Push*</li>
  21. <li>![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)
  22. </ul>
  23. - Gitweb inspired UI
  24. - Administrators may create, edit, rename, or delete repositories through the web UI
  25. - Administrators may create, edit, rename, or delete users through the web UI
  26. - Repository Owners may edit repositories through the web UI
  27. - Automatically generates a self-signed certificate for https communications
  28. - Dates can optionally be displayed using the browser's reported timezone
  29. - Author and Committer email address display can be controlled
  30. - Dynamic zip downloads feature
  31. - Markdown view support
  32. - Syntax highlighting
  33. - Customizable regular expression handling for commit messages
  34. - Single text file for server configuration
  35. - Single text file for users configuration
  36. - Simple repository stats and activity graph (uses Google Charts)
  37. - Optional utility pages
  38. <ul class='noBullets'>
  39. <li>![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository</li>
  40. <li>![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*</li>
  41. </ul>
  42. ### Limitations
  43. - HTTP/HTTPS are the only supported protocols
  44. - Access controls are not path-based, they are repository-based
  45. - Only Administrators can create, rename or delete repositories
  46. - Gitblit is an integrated, full-stack solution. There is no WAR build at this time.
  47. ### Todo List
  48. - Review spots where Gitblit can cache data instead of abusing the disk
  49. - stats
  50. - users.properties access
  51. - available repositories
  52. - etc
  53. - Code documentation
  54. - Unit testing
  55. ### Idea List
  56. - Ticgit activity/timeline
  57. - Ticgit query feature with paging support
  58. - Ticgit ticket change history
  59. - View images on Blob page
  60. - View other binary files on Blob page
  61. - Markdown editing feature
  62. - Blame (waiting for the [JGit][jgit] team to do the hard part)
  63. ### License
  64. Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
  65. ### Inspirations
  66. - [Gitweb](http://www.git-scm.com)
  67. - [Fossil](http://www.fossil-scm.org)
  68. ## Architecture
  69. ![block diagram](architecture.png "Git Blit Architecture")
  70. ### Bundled Dependencies
  71. The following dependencies are bundled with the Gitblit zip distribution file.
  72. - [google-code-prettify](http://code.google.com/p/google-code-prettify) (Apache 2.0)
  73. - [JavaService](http://forge.ow2.org/projects/javaservice) (BSD and LGPL)
  74. - magnifying glass search icon courtesy of [Gnome](http://gnome.org) (Creative Commons CC-BY)
  75. - modified Git logo originally designed by [Henrik Nyh](http://henrik.nyh.se/2007/06/alternative-git-logo-and-favicon)
  76. - other icons courtesy of [FatCow Hosting](http://www.fatcow.com/free-icons) (Creative Commons CC-BY)
  77. ### Downloaded Dependencies
  78. The following dependencies are automatically downloaded from the Apache Maven repository and from the Eclipse Maven repository when Gitblit is launched for the first time.
  79. - [JGit][jgit] (EDL 1.0)
  80. - [Wicket](http://wicket.apache.org) (Apache 2.0)
  81. - [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) (Apache 2.0)
  82. - [MarkdownPapers](http://markdown.tautua.org) (Apache 2.0)
  83. - [Jetty](http://eclipse.org/jetty) (Apache 2.0, EPL 1.0)
  84. - [SLF4J](http://www.slf4j.org) (MIT/X11)
  85. - [Log4j](http://logging.apache.org/log4j) (Apache 2.0)
  86. - [JCommander](http://jcommander.org) (Apache 2.0)
  87. - [BouncyCastle](http://www.bouncycastle.org) (MIT/X11)
  88. ### Other Build Dependencies
  89. - [Fancybox image viewer](http://fancybox.net) (MIT and GPL dual-licensed)
  90. ## Building
  91. [Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured.
  92. 1. Clone the git repository from [Github][gitbltsrc].
  93. 2. Import the gitblit project into your Eclipse workspace.<br/>
  94. *There will be lots of build errors.*
  95. 3. Using Ant, execute the `build.xml` script in the project root.<br/>
  96. *This will download all necessary build dependencies and will also generate the Keys class for accessing settings.*
  97. 4. Select your gitblit project root and **Refresh** the project, this should correct all build problems.
  98. 5. Review the settings in `gitblit.properties` in your project root.<br/>
  99. Make sure you set an appropriate value for *git.repositoriesFolder*.
  100. 6. Execute the *com.gitblit.Launcher* class to start Gitblit.
  101. [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
  102. [git]: http://git-scm.com "Official Git Site"
  103. [gitbltsrc]: http://somewhere.com "gitblit git repository"