您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

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"