From 00afd77a2182ece3d9522d41b86b4ddd7e132288 Mon Sep 17 00:00:00 2001 From: James Moger Date: Thu, 19 May 2011 17:13:50 -0400 Subject: Owner editing. Frozen status. Grouped repositories. Documentation. --- docs/00_overview.mkd | 37 ++++++++++++++++++++++--------------- docs/01_configuration.mkd | 24 ++++++++++++++---------- docs/01_eclipse.mkd | 17 +++++++++++++++-- docs/architecture.odg | Bin 13340 -> 15758 bytes docs/architecture.png | Bin 16892 -> 28259 bytes docs/sslverify.png | Bin 0 -> 48728 bytes docs/sslverify2.png | Bin 0 -> 21758 bytes 7 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 docs/sslverify.png create mode 100644 docs/sslverify2.png (limited to 'docs') diff --git a/docs/00_overview.mkd b/docs/00_overview.mkd index 63898f6c..7e286c5b 100644 --- a/docs/00_overview.mkd +++ b/docs/00_overview.mkd @@ -1,6 +1,6 @@ ## 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 repositories on a Windows machine. +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. @@ -10,46 +10,53 @@ Of course, since its pure-Java it should run with any JVM on any platform, but t ### Features - Out-of-the-box integrated stack requiring minimal configuration -- JGit SmartHTTP Servlet -- Web and Git Servlet authentication +- 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* -- Gitweb inspired UI (mostly plain html) -- Repository administration through web UI -- User administration through web UI +- 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 -- Simple text file for server configuration -- Simple text file for users configuration -- Optional integrated Ticgit -- Optional integrated Markdown +- 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 admin users can create repositories +- 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 Blob page +- View other binary files on Blob page ### License TBD -### Architecture +### Inspirations +- [Gitweb](http://www.git-scm.com) +- [Fossil](http://www.fossil-scm.org) + +## Architecture ![block diagram](architecture.png "Git Blit Architecture") @@ -73,8 +80,8 @@ The following dependencies are automatically downloaded from the Apache Maven re - [JCommander](http://jcommander.org) - [BouncyCastle](http://www.bouncycastle.org) -### Building -Eclipse is recommended for development as the project settings are preconfigured. +## 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.
diff --git a/docs/01_configuration.mkd b/docs/01_configuration.mkd index 9e8a9f06..415ad474 100644 --- a/docs/01_configuration.mkd +++ b/docs/01_configuration.mkd @@ -6,36 +6,39 @@ Open `gitblit.properties` in your favorite text editor and make sure to review and set: - *git.repositoryFolder* - *server.tempFolder* - - *server.httpBindInterface* and *server.httpsBindInterface* + - *server.httpBindInterface* and *server.httpsBindInterface*
+**NOTE:** Consider using **https** exclusively because passwords for authentication are transmitted as clear text! - *server.storePassword*
-**NOTE:**
-Its recommended to use **https** wherever possible instead of http because passwords are transmitted as clear text! +**NOTE:** The certificate password AND the keystore password must match! 3. Execute `gitblit.cmd` or `java -jar gitblit.jar` from a command-line 4. Wait a minute or two while all dependencies are downloaded and your self-signed certificate is generated. 5. Open your browser to or depending on your chosen configuration. 6. Click the *Login* link and enter the default administrator credentials: **admin / admin**
-**NOTE:**
-Make sure to change the administrator username and/or password!! +**NOTE:** Make sure to change the administrator username and/or password!! ### Administering Repositories -Repositories can be created, edited, and deleted through the web UI. They may also be created, edited, and deleted from the command-line using real Git or your favorite file manager and text editor. +Repositories can be created, edited, renamed, and deleted through the web UI. They may also be created, edited, and deleted from the command-line using real [Git](http://git-scm.com) or your favorite file manager and text editor. All repository settings are stored within the repository `.git/config` file under the *gitblit* section. [gitblit] description = master repository - owner = Joe Owner + owner = james useTickets = false useDocs = true showRemoteBranches = false accessRestriction = clone + isFrozen = false #### Repository Names Repository names must be unique and are case-insensitive. The name must be composed of letters, digits, or `/ _ - .`
Whitespace is illegal. +#### Repository Owner +The *Repository Owner* has the special permission of being able to edit a repository through the web UI. The Repository Owner is not permitted to rename the repository, delete the repository, or reassign ownership to another user. + ### Administering Users -In contrast, all users are stored in the `users.properties` file or in the file your specified in `gitblit.properties`.
+All users are stored in the `users.properties` file or in the file you specified in `gitblit.properties`.
The format of `users.properties` follows Jetty's convention for HashRealms: username,password,role1,role2,role3... @@ -48,11 +51,12 @@ Whitespace is illegal. User passwords are CASE-SENSITIVE and may be *plain*, *md5*, or *crypt* formatted (see `gitblit.properties` -> *realm.passwordStorage*). #### User Roles -There is only one actual *role* in Git:Blit and that is *#admin* which grants administrative powers to that user. Administrators automatically have access to all repositories. All other *roles* are actually repository names. If a repository is access-restricted, the user must have the repository's name within his/her roles to bypass the access restriction. This is how users are granted access to a restricted repository. +There is only one actual *role* in Git:Blit and that is *#admin* which grants administrative powers to that user. Administrators automatically have access to all repositories. All other *roles* are repository names. If a repository is access-restricted, the user must have the repository's name within his/her roles to bypass the access restriction. This is how users are granted access to a restricted repository. ### Creating your own Self-Signed Certificate -Review the contents of the `makekeystore.cmd` or `makekeystore_jdk.cmd`script and execute it. Voila. +Review the contents of the `makekeystore.cmd` or `makekeystore_jdk.cmd` script and execute it.
+**NOTE:** The certificate password AND the keystore password must match! ### Running as a Service Review the contents of the `installService.cmd` or `installService64.cmd`, as appropriate for your JVM.
diff --git a/docs/01_eclipse.mkd b/docs/01_eclipse.mkd index 93fd5315..c04834c5 100644 --- a/docs/01_eclipse.mkd +++ b/docs/01_eclipse.mkd @@ -1,5 +1,18 @@ ## Eclipse Tips -verifySsl +### Do Not Verify Self-Signed Certificates +If you are using a self-signed certificate, like the one that is automatically generated by Git:Blit, you have to tell Eclipse/EGit to ignore certificate verification errors. + +![sslverify](sslverify.png "http.sslVerify setting") + +![sslverify2](sslverify2.png "Adding http.sslVerify setting") + +### Pushing a New Project to a New Git:Blit Repository +1. Project Root->Team->Share->Git +Create a Git repository inside the project + +### Pushing a Git-Controlled Project to another Git:Blit Repository +1. Project Root->Team->Remote->Push +2. Enter the URL information of the repository +3. In the Refspec dialog click the buttons named "All all branches spec" and "All all tags spec" -how to push new unshared project to new repository \ No newline at end of file diff --git a/docs/architecture.odg b/docs/architecture.odg index fc4ea7b7..c2fc25c0 100644 Binary files a/docs/architecture.odg and b/docs/architecture.odg differ diff --git a/docs/architecture.png b/docs/architecture.png index d2f3e0c7..0dd7ddc2 100644 Binary files a/docs/architecture.png and b/docs/architecture.png differ diff --git a/docs/sslverify.png b/docs/sslverify.png new file mode 100644 index 00000000..e987b9f0 Binary files /dev/null and b/docs/sslverify.png differ diff --git a/docs/sslverify2.png b/docs/sslverify2.png new file mode 100644 index 00000000..94db9776 Binary files /dev/null and b/docs/sslverify2.png differ -- cgit v1.2.3