James Moger
2012-12-31 160ee43394f6c645465b2b1dd80c460766d122bc
commit | author | age
85c2e6 1 ## Release History
JM 2
822dfe 3 <div class="alert alert-info">
20e25c 4 <h4>Update Note</h4>
822dfe 5 The permissions model has changed in this release.
e92c6d 6 <p>If you are updating your server, you must also update any Gitblit Manager and Federation Client installs to 1.2.0 as well.  The data model used by the RPC mechanism has changed slightly for the new permissions infrastructure.</p>
20e25c 7 </div>
JM 8
85c2e6 9 ### Current Release
8051a2 10
b774de 11 **%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%) | [war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) | [express](http://code.google.com/p/gitblit/downloads/detail?name=%EXPRESS%) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%) | [api](http://code.google.com/p/gitblit/downloads/detail?name=%API%)) based on [%JGIT%][jgit] &nbsp; *released %BUILDDATE%*
8b7d30 12
b34048 13 #### fixes
JM 14
b2d028 15 - Fixed regression in *isFrozen* (issue 181)
ac7e9a 16 - Author metrics can be broken by newlines in email addresses from converted repositories (issue 176)
d3c189 17 - Set subjectAlternativeName on generated SSL cert if CN is an ip address (issue 170)
d83bd6 18 - Fixed incorrect links on history page for files not in the current/active commit (issue 166)
b845f1 19 - Empty repository page failed to handle missing repository (issue 160)
d7be8c 20 - Fixed broken ticgit urls (issue 157)
13417c 21 - Exclude submodules from zip downloads (issue 151)
17363c 22 - Fixed bug where repository ownership was not updated on rename user
2c60de 23 - Fixed bug in create/rename repository if you explicitly specified the alias for the root group (e.g. main/myrepo) (issue 143)
88aad7 24 - Wrapped Markdown parser with improved exception handler (issue 142)
9f5a86 25 - Fixed duplicate entries in repository cache (issue 140)
301adb 26 - Fixed connection leak in LDAPUserService (issue 139)
d3dfcd 27 - Fixed bug in commit page where changes to a submodule threw a null pointer exception (issue 132)
b34048 28 - Fixed bug in the diff view for filenames that have non-ASCII characters (issue 128)
JM 29
30 #### additions
31
b2d028 32 - Implemented discrete repository permissions (issue 36)
20714a 33     - V (view in web ui, RSS feeds, download zip)
JM 34     - R (clone)
35     - RW (clone and push)
36     - RWC (clone and push with ref creation)
37     - RWD (clone and push with ref creation, deletion)
e5662e 38     - RW+ (clone and push with ref creation, deletion, rewind)
20714a 39 While not as sophisticated as Gitolite, this does give finer access controls.  These permissions fit in cleanly with the existing users.conf and users.properties files.  In Gitblit <= 1.1.0, all your existing user accounts have RW+ access.   If you are upgrading to 1.2.0, the RW+ access is *preserved* and you will have to lower/adjust accordingly.
160ee4 40 - Implemented *case-insensitive* regex repository permission matching (issue 36)<br/>
e92c6d 41 This allows you to specify a permission like `RW:mygroup/.*` to grant push privileges to all repositories within the *mygroup* project/folder.
20714a 42 - Added DELETE, CREATE, and NON-FAST-FORWARD ref change logging
160ee4 43 - Added support for personal repositories.<br/>
6662e3 44 Personal repositories can be created by accounts with the *create* permission and are stored in *git.repositoriesFolder/~username*.  Each user with personal repositories will have a user page, something like the GitHub profile page.  Personal repositories have all the same features as common repositories, except personal repositories can be renamed by their owner.
160ee4 45 - Added support for server-side forking of a repository to a personal repository (issue 137)<br/>
JM 46 In order to fork a repository, the user account must have the *fork* permission **and** the repository must *allow forks*.  The clone inherits the access list of its origin.  i.e. if Team A has clone access to the origin repository, then by default Team A also has clone access to the fork.  This is to facilitate collaboration.  The fork owner may change access to the fork and add/remove users/teams, etc as required <u>however</u> it should be noted that all personal forks will be enumerated in the fork network regardless of access view restrictions.  If you really must have an invisible fork, the clone it locally, create a new repository for your invisible fork, and push it back to Gitblit.<br/>
dc9735 47     **New:** *web.allowForking=true*
160ee4 48 - Added optional *create-on-push* support<br/>
e5662e 49     **New:** *git.allowCreateOnPush=true*
160ee4 50 - Added **experimental** JGit-based garbage collection service.  This service is disabled by default.<br/>
JM 51     **New:** *git.allowGarbageCollection=false*<br/>
52     **New:** *git.garbageCollectionHour = 0*<br/>
53     **New:** *git.defaultGarbageCollectionThreshold = 500k*<br/>
e92c6d 54     **New:** *git.defaultGarbageCollectionPeriod = 7 days*
160ee4 55 - Added support for X509 client certificate authentication (github/kevinanderson1).  (issue 106)<br/>
JM 56 You can require all git servlet access be authenticated by a client certificate.  You may also specify the OID fingerprint to use for mapping a certificate to a username.  It should be noted that the user account MUST already exist in Gitblit for this authentication mechanism to work; this mechanism can not be used to automatically create user accounts from a certificate.<br/>
57     **New:** *git.requireClientCertificates = false*<br/>
58     **New:** *git.enforceCertificateValidity = true*<br/>
3983a6 59     **New:** *git.certificateUsernameOIDs = CN*
d8a0f1 60 - Revised clean install certificate generation to create a Gitblit GO Certificate Authority certificate; an SSL certificate signed by the CA certificate; and to create distinct server key and server trust stores.  <u>The store files have been renamed!</u>
160ee4 61 - Added support for Gitblit GO to require usage of client certificates to access the entire server.<br/>
JM 62 This is extreme and should be considered carefully since it affects every https access.  The default is to **want** client certificates.  Setting this value to *true* changes that to **need** client certificates.<br/>
d8a0f1 63     **New:** *server.requireClientCertificates = false*
dc9735 64 - Added **Gitblit Certificate Authority**, an x509 PKI management tool for Gitblit GO to encourage use of x509 client certificate authentication.
160ee4 65 - Added setting to control length of shortened commit ids<br/>
e5662e 66     **New:** *web.shortCommitIdLength=8*
160ee4 67 - Added alternate compressed download formats: tar.gz, tar.xz, tar.bzip2 (issue 174)<br/>
59b817 68     **New:** *web.compressedDownloads = zip gz*
20714a 69 - Added simple project pages.  A project is a subfolder off the *git.repositoriesFolder*.
1e1b85 70 - Added support for X-Forwarded-Context for Apache subdomain proxy configurations (issue 135)
JM 71 - Delete branch feature (issue 121, Github/ajermakovics)
20714a 72 - Added line links to blob view (issue 130)
d60a42 73 - Added HTML sendmail hook script and Gitblit.sendHtmlMail method (github/sauthieg)
1e1b85 74 - Added RedmineUserService (github/mallowlabs)
54f2c8 75 - Support for committer verification.  Requires use of *--no-ff* when merging branches or pull requests.  See setup page for details.
34148f 76 - Added Brazilian Portuguese translation (github/rafaelcavazin)
b34048 77
27c74e 78 #### changes
JM 79
acb63a 80 - Added server setting to specify keystore alias for ssl certificate (issue 98)
8295dd 81 - Added optional global and per-repository activity page commit contribution throttle to help tame *really* active repositories (issue 173)
e5662e 82 - Added support for symlinks in tree page and commit page (issue 171)
37fa66 83 - All access restricted servlets (e.g. DownloadZip, RSS, etc) will try to authenticate using X509 certificates, container principals, cookies, and BASIC headers, in that order.
b71854 84 - Added *groovy* and *scala* to *web.prettyPrintExtensions*
73f1ad 85 - Added short commit id column to log and history tables (issue 168)
e92c6d 86 - Teams can now specify the *admin*, *create*, and *fork* roles to simplify user administration
7818bd 87 - Use https Gravatar urls to avoid browser complaints
9ba9be 88 - Added frm to default pretty print extensions (issue 156)
6bb3b2 89 - Expose ReceivePack to Groovy push hooks (issue 125)
4e1cc8 90 - Redirect to summary page when refreshing the empty repository page on a repository that is not empty (issue 129)
165254 91 - Emit a warning in the log file if running on a Tomcat-based servlet container which is unfriendly to %2F forward-slash url encoding AND Gitblit is configured to mount parameters with %2F forward-slash url encoding (Github/jpyeron, issue 126)
b2d028 92 - LDAP admin attribute setting is now consistent with LDAP teams setting and admin teams list.
27c74e 93 If *realm.ldap.maintainTeams==true* **AND** *realm.ldap.admins* is not empty, then User.canAdmin() is controlled by LDAP administrative team membership.  Otherwise, User.canAdmin() is controlled by Gitblit.
37fa66 94 - Support servlet container authentication for existing UserModels (issue 68)
27c74e 95
f4c326 96 #### dependency changes
JM 97
37fa66 98 - updated to Jetty 7.6.8
ed3213 99 - updated to JGit 2.2.0.201212191850-r
470192 100 - updated to Groovy 1.8.8
94464d 101 - updated to Wicket 1.4.21
94da97 102 - updated to Lucene 3.6.1
1729d4 103 - updated to BouncyCastle 1.47
37fa66 104 - updated to MarkdownPapers 1.3.2
f09f24 105 - added JCalendar 1.3.2
9e1aa2 106 - added Commons-Compress 1.4.1
JM 107 - added XZ for Java 1.0
27c74e 108 <hr/>
JM 109
110 ### Older Releases
111
822dfe 112 <div class="alert alert-error">
JM 113 <h4>Update Note</h4>
114 If you are updating from an earlier release AND you have indexed branches with the Lucene indexing feature, you need to be aware that this release will completely re-index your repositories.  Please be sure to provide ample heap resources as appropriate for your installation.
115 </div>
116
27c74e 117 **1.1.0** *released 2012-08-25*
JM 118
380afa 119 #### fixes
JM 120
d97e52 121 - Bypass Wicket's inability to handle direct url addressing of a view-restricted, grouped repository for new, unauthenticated sessions (e.g. click link from email or rss feed without having an active Wicket session)
c6b6bd 122 - Fixed MailExecutor's failure to cope with mail server connection troubles resulting in 100% CPU usage
836188 123 - Fixed generated urls in Groovy *sendmail* hook script for grouped repositories
d5477c 124 - Fixed generated urls in RSS feeds for grouped repositories
2904bf 125 - Fixed nullpointer exception in git servlet security filter (issue 123)
e5662e 126 - Eliminated an unnecessary repository enumeration call on the root page which should result in faster page loads (issue 103)
JM 127 - Gitblit could not delete a Lucene index in a working copy on index upgrade
eb870f 128 - Do not index submodule links (issue 119)
2987f6 129 - Restore original user or team object on failure to update (issue 118)
756117 130 - Fixes to relative path determination in repository search algorithm for symlinks (issue 116)
JM 131 - Fix to GitServlet to allow pushing to symlinked repositories (issue 116)
eb870f 132 - Repository URL now uses `X-Forwarded-Proto` and `X-Forwarded-Port`, if available, for reverse proxy configurations (issue 115)
e4f49a 133 - Output real RAW content, not simulated RAW content (issue 114)
fa0afc 134 - Fixed Lucene charset encoding bug when reindexing a repository (issue 112)
1ab5b3 135 - Fixed search box linking to Lucene page for grouped repository on Tomcat (issue 111)
a01257 136 - Fixed null pointer in LdapUserSerivce if account has a null email address (issue 110)
f3ff37 137 - Really fixed failure to update a GO setting from the manager (issue 85)
a01257 138
6adf56 139 #### additions
a01257 140
160ee4 141 - Identified repository list is now cached by default to reduce disk io and to improve performance (issue 103)<br/>
fee060 142     **New:** *git.cacheRepositoryList=true*
160ee4 143 - Preliminary bare repository submodule support<br/>
eb870f 144     **New:** *git.submoduleUrlPatterns=*
160ee4 145     - *git.submoduleUrlPatterns* is a space-delimited list of regular expressions for extracting a repository name from a submodule url.<br/>
JM 146     For example, `git.submoduleUrlPatterns = .*?://github.com/(.*)` would extract *gitblit/gitblit.git* from *git://github.git/gitblit/gitblit.git*<br/>
eb870f 147     **Note:** You may not need this control to work with submodules, but it is there if you do.
JM 148     - If there are no matches from *git.submoduleUrlPatterns* then the repository name is assumed to be whatever comes after the last `/` character *(e.g. gitblit.git)*
149     - Gitblit will try to locate this repository relative to the current repository *(e.g. myfolder/myrepo.git, myfolder/mysubmodule.git)* and then at the root level *(mysubmodule.git)* if that fails.
150     - Submodule references in a working copy will be properly identified as gitlinks, but Gitblit will not traverse into the working copy submodule repository.
160ee4 151 - Added a repository setting to control authorization as AUTHENTICATED or NAMED. (issue 117)<br/>
e5662e 152 NAMED is the original behavior for authorizing against a list of permitted users or permitted teams.
eb870f 153 AUTHENTICATED allows restricted access for any authenticated user.  This is a looser authorization control.
160ee4 154 - Added default authorization control setting (AUTHENTICATED or NAMED)<br/>
e5662e 155     **New:** *git.defaultAuthorizationControl=NAMED*
160ee4 156 - Added setting to control how deep Gitblit will recurse into *git.repositoriesFolder* looking for repositories (issue 103)<br/>
e5662e 157     **New:** *git.searchRecursionDepth=-1*
160ee4 158 - Added setting to specify regex exclusions for repositories (issue 103)<br/>
e5662e 159     **New:** *git.searchExclusions=*
e4f49a 160 - Blob page now supports displaying images (issue 6)
JM 161 - Non-image binary files can now be downloaded using the RAW link
eb870f 162 - Support StartTLS in LdapUserService (Steffen Gebert, issue 122)
2904bf 163 - Added Korean translation
6adf56 164
JM 165 #### changes
166
eb870f 167 - Line breaks inserted for readability in raw Markdown content display in the event of a parsing/transformation error.  An error message is now displayed prepended to the raw content.
JM 168 - Improve UTF-8 reading for Markdown files
a01257 169 - Updated Polish translation
2904bf 170 - Updated Japanese translation
JM 171 - Updated Spanish translation
eb870f 172
JM 173 <hr/>
a01257 174
JM 175 **1.0.0** *released 2012-07-14*
176
177 #### fixes
178
8b7d30 179 - Fixed bug in Lucene search where old/stale blobs were never properly deleted during incremental updates.  This resulted in duplicate blob entries in the index.
2b67ec 180 - Fixed intermittent bug in identifying line numbers in Lucene search (issue 105)
8b7d30 181 - Adjust repository identification algorithm to handle the scenario where a repository name collides with a group/folder name (e.g. foo.git and foo/bar.git) (issue 104)
JM 182 - Fixed bug where a repository set as *authenticated push* did not have anonymous clone access (issue 96)
380afa 183 - Fixed bug in Basic authentication if passwords had a colon (Github/peterloron)
e09d4b 184 - Fixed bug where the Gitblit Manager could not update a setting that was not referenced in reference.properties (issue 85)
380afa 185
6e15cb 186 #### changes
JM 187
160ee4 188 - **Updated Lucene index version which will force a rebuild of ALL your Lucene indexes**<br/>
53d7f4 189 Make sure to properly set *web.blobEncodings* before starting Gitblit if you are updating!  (issue 97)
e5662e 190 - Changed default layout for web ui from Fixed-Width layout to Responsive layout (issue 101)
160ee4 191 - IUserService interface has changed to better accomodate custom authentication and/or custom authorization<br/>
e5662e 192     The default `users.conf` now supports persisting display names and email addresses.
7628dc 193 - Updated Japanese translation (Github/zakki)
6e15cb 194
JM 195 #### additions
196
160ee4 197 - Added setting to allow specification of a robots.txt file (issue 99)<br/>
e5662e 198     **New:** *web.robots.txt =*
160ee4 199 - Added setting to control Responsive layout or Fixed-Width layout (issue 101)<br/>
e5662e 200     Responsive layout is now the default.  This layout gracefully scales the web ui from a desktop layout to a mobile layout by hiding page components.  It is easy to try, just resize your browser or point your Android/iOS device to the url of your Gitblit install.
JM 201     **New:** *web.useResponsiveLayout = true*
160ee4 202 - Added setting to control charsets for blob string decoding.  Default encodings are UTF-8, ISO-8859-1, and server's default charset. (issue 97)<br/>
e5662e 203     **New:** *web.blobEncodings = UTF-8 ISO-8859-1*
160ee4 204 - Exposed JGit's internal configuration settings in gitblit.properties/web.xml (issue 93)<br/>
JM 205     Review your `gitblit.properties` or `web.xml` for detailed explanations of these settings.<br/>
206     **New:** *git.packedGitWindowSize = 8k*<br/>
207     **New:** *git.packedGitLimit = 10m*<br/>
208     **New:** *git.deltaBaseCacheLimit = 10m*<br/>
209     **New:** *git.packedGitOpenFiles = 128*<br/>
210     **New:** *git.streamFileThreshold = 50m*<br/>
e5662e 211     **New:** *git.packedGitMmap = false*
160ee4 212 - Added default access restriction.  Applies to new repositories and repositories that have not been configured with Gitblit. (issue 88)<br/>
e5662e 213     **New:** *git.defaultAccessRestriction = NONE*
JM 214 - Added Ivy 2.2.0 dependency which enables Groovy Grapes, a mechanism to resolve and retrieve library dependencies from a Maven 2 repository within a Groovy push hook script
160ee4 215 - Added setting to control Groovy Grape root folder (location where resolved dependencies are stored)<br/>
JM 216     [Grape](http://groovy.codehaus.org/Grape) allows you to add Maven dependencies to your pre-/post-receive hook script classpath.<br/>
e5662e 217     **New:** *groovy.grapeFolder = groovy/grape*
6e15cb 218 - Added LDAP User Service with many new *realm.ldap* keys (Github/jcrygier)
160ee4 219 - Added support for custom repository properties for Groovy hooks (Github/jcrygier)<br/>
8b7d30 220     Custom repository properties complement hook scripts by providing text field prompts in the web ui and the Gitblit Manager for the defined properties.  This allows your push hooks to be parameterized.
8dbee6 221 - Added script to facilitate proxy environment setup on Linux (Github/mragab)
e2efe1 222 - Added Polish translation (Lukasz Jader)
8dbee6 223 - Added Spanish translation (Eduardo Guervos Narvaez)
6e15cb 224
62cec2 225 #### dependency changes
JM 226
227 - updated to Bootstrap 2.0.4
e4547f 228 - updated to JGit 2.0.0.201206130900-r
JM 229 - updated to Groovy 1.8.6
230 - updated to Gson 1.7.2
231 - updated to Log4J 1.2.17
232 - updated to SLF4J 1.6.6
bd196e 233 - updated to Apache Commons Daemon 1.0.10
e4547f 234 - added Ivy 2.2.0
JM 235
236 <hr/>
62cec2 237
6e15cb 238 **0.9.3** *released 2012-04-11*
JM 239
a21fc5 240 #### fixes
JM 241
242 - Fixed bug where you could not remove all selections from a RepositoryModel list (permitted users, permitted teams, hook scripts, federation sets, etc) (issue 81)
eb7609 243 - Automatically set *java.awt.headless=true* for Gitblit GO
e4547f 244
JM 245 <hr/>
a21fc5 246
d58f8e 247 **0.9.2** *released 2012-04-04*
JM 248
bc5b7b 249 #### changes
JM 250
251 - Added *clientLogger* bound variable to Groovy hook mechanism to allow custom info and error messages to be returned to the client (Github/jcrygier)
252
6ef2fc 253 #### fixes
JM 254
1aa6e0 255 - Fixed absolute path/canonical path discrepancy between Gitblit and JGit regarding use of symlinks (issue 78)
ed3a0e 256 - Fixed row layout on activity page (issue 79)
JM 257 - Fixed Centos service script (Github/mohamedmansour)
227b24 258 - Fixed EditRepositoryPage for IE8; missing save button (issue 80, Github/jonnybbb)
1aa6e0 259
e4547f 260 <hr/>
JM 261
1aa6e0 262 **0.9.1** *released 2012-03-27*
JM 263
264 #### fixes
265
6ef2fc 266 - Lucene folder was stored in working copy instead of in .git folder
e4547f 267
JM 268 <hr/>
6ef2fc 269
JM 270 **0.9.0** *released 2012-03-27*
271
e78838 272 #### security
JM 273
274 - Fixed session fixation vulnerability where the session identifier was not reset during the login process (issue 62)
275
a4ed6d 276 #### changes
JM 277
ff3f0e 278 - Reject pushes to a repository with a working copy (i.e. non-bare repository) (issue-49)
6c6e7d 279 - Changed default web.datetimestampLongFormat from *EEEE, MMMM d, yyyy h:mm a z* to *EEEE, MMMM d, yyyy HH:mm Z* (issue 50)
JM 280 - Expanded commit age coloring from 2 days to 30 days (issue 57)
a4ed6d 281
c125cd 282 #### additions
JM 283
160ee4 284 - Added optional Lucene branch indexing (issue 16)<br/>
JM 285     **New:** *web.allowLuceneIndexing = true*<br/>
e5662e 286     **New:** *web.luceneIgnoreExtensions = 7z arc arj bin bmp dll doc docx exe gif gz jar jpg lib lzh odg odf odt pdf ppt png so swf xcf xls xlsx zip*
JM 287 Repository branches may be optionally indexed by Lucene for improved searching.  To use this feature you must specify which branches to index within the *Edit Repository* page; _no repositories are automatically indexed_.  Gitblit will build or incrementally update enrolled repositories on a 2 minute cycle. (i.e you will have to wait 2-3 minutes after respecifying indexed branches or pushing new commits before Gitblit will build/update the repository's Lucene index.)
160ee4 288 If a repository has Lucene-indexed branches the *search* form on the repository pages will redirect to the root-level Lucene search page and only the content of those branches can be searched.<br/>
e5662e 289 If the repository does not specify any indexed branches then repository commit-traversal search is used.
160ee4 290 **Note:** Initial indexing of an existing repository can be memory-exhaustive. Be sure to provide your Gitblit server adequate heap space to index your repositories (e.g. -Xmx1024M).<br/>
0273b2 291 See the [setup](setup.html) page for additional details.
160ee4 292 - Allow specifying timezone to use for Gitblit which is independent of both the JVM and the system timezone (issue 54)<br/>
e5662e 293     **New:** *web.timezone =*
160ee4 294 - Added a built-in AJP connector for integrating Gitblit GO into an Apache mod_proxy setup (issue 59)<br/>
JM 295     **New:** *server.ajpPort = 0*<br/>
4b9d64 296     **New:** *server.ajpBindInterface = localhost*
160ee4 297 - On the Repositories page show a bang *!* character in the color swatch of a repository with a working copy (issue 49)<br/>
1c2215 298 Push requests to these repositories will be rejected.
ccab3a 299 - On all non-bare Repository pages show *WORKING COPY* in the upper right corner (issue 49)
160ee4 300 - New setting to prevent display/serving non-bare repositories<br/>
b86562 301     **New:** *git.onlyAccessBareRepositories = false*
e5662e 302 - Added *protect-refs.groovy* (Github/plm)
58a1e4 303 - Allow setting default branch (relinking HEAD) to a branch or a tag (Github/plm)
3da5a5 304 - Added Ubuntu service init script (issue 72)
6caa93 305 - Added partial Japanese translation (Github/zakki)
c125cd 306
e5662e 307 #### fixes
c125cd 308
e5662e 309 - Ensure that Welcome message is parsed using UTF-8 encoding (issue 74)
58a1e4 310 - Activity page chart layout broken by Google (issue 73)
6fa6ab 311 - Uppercase repositories not selectable in edit palettes (issue 71)
9357e9 312 - Not all git notes were properly displayed on the commit page (issue 70)
9d921f 313 - Activity page now displays all local branches (issue 65)
4fea45 314 - Fixed (harmless) nullpointer on pushing to an empty repository (issue 69)
18d398 315 - Fixed possible nullpointer from the servlet container on startup (issue 67)
JM 316 - Fixed UTF-8 encoding bug on diff page (issue 66)
9d921f 317 - Fixed timezone bugs on the activity page (issue 54)
e5662e 318 - Prevent add/edit team with no selected repositories (issue 56)
d3ca1c 319 - Disallow browser autocomplete on add/edit user/team/repository pages
ae0b13 320 - Fixed username case-sensitivity issues (issue 43)
c125cd 321 - Disregard searching a subfolder if Gitblit does not have filesystem permissions (Github/lemval issue 51)
ae0b13 322
3cc6e2 323 #### dependency changes
JM 324
e28b2f 325 - updated to Bootstrap 2.0.2
JM 326 - added GLYPHICONS (as bundled with Bootstrap 2.0.2)
388872 327 - updated to MarkdownPapers 1.2.7
741adb 328 - updated to JGit 1.3.0.201202151440-r
4e0ee2 329 - updated to Wicket 1.4.20
3cc6e2 330
JM 331 <hr/>
332
ae0b13 333 **0.8.2** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.2.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.2.war) | [express](http://code.google.com/p/gitblit/downloads/detail?name=express-0.8.2.zip) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.8.2.zip) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=manager-0.8.2.zip) | [api](http://code.google.com/p/gitblit/downloads/detail?name=gbapi-0.8.2.zip)) based on [JGit 1.2.0 (201112221803-r)][jgit] &nbsp; *released 2012-01-13*
JM 334
04627e 335 #### fixes
JM 336
8051a2 337 - Fixed bug when upgrading from users.properties to users.conf (issue 41)
3cc6e2 338
JM 339 <hr/>
8051a2 340
6ef2fc 341 **0.8.1** &nbsp; *released 2012-01-11*
8051a2 342
JM 343 #### fixes
344
04627e 345 - Include missing icon resource for the manager (issue 40)
942939 346 - Fixed sendmail.groovy message content with incorrect tag/branch labels
3cc6e2 347
JM 348 <hr/>
04627e 349
6ef2fc 350 **0.8.0** &nbsp; *released 2012-01-11*
04627e 351
e927f4 352 #### additions
JM 353
160ee4 354 - Platform-independent, Groovy push hook script mechanism.<br/>
JM 355 Hook scripts can be set per-repository, per-team, or globally for all repositories.<br/>
356     **New:** *groovy.scriptsFolder = groovy*<br/>
357     **New:** *groovy.preReceiveScripts =*<br/>
fa54be 358     **New:** *groovy.postReceiveScripts =*
160ee4 359 - *sendmail.groovy* for optional email notifications on push.<br/>
e927f4 360 You must properly configure your SMTP server settings in `gitblit.properties` or `web.xml` to use *sendmail.groovy*.
160ee4 361 - New global key for mailing lists.  This is used in conjunction with the *sendmail.groovy* hook script.  All repositories that use the *sendmail.groovy* script will include these addresses in the notification process.  Please see the Setup page for more details about configuring sendmail.<br/>
fa54be 362     **New:** *mail.mailingLists =*
e927f4 363 - *com.gitblit.GitblitUserService*.  This is a wrapper object for the built-in user service implementations.  For those wanting to only implement custom authentication it is recommended to subclass GitblitUserService and override the appropriate methods.  Going forward, this will help insulate custom authentication from new IUserService API and/or changes in model classes.
160ee4 364 - New default user service implementation: *com.gitblit.ConfigUserService* (`users.conf`)<br/>
e5662e 365 This user service implementation allows for serialization and deserialization of more sophisticated Gitblit User objects without requiring the encoding trickery now present in FileUserService (users.properties).  This will open the door for more advanced Gitblit features.
160ee4 366 For those upgrading from an earlier Gitblit version, a `users.conf` file will automatically be created for you from your existing `users.properties` file on your first launch of Gitblit <u>however</u> you will have to manually set *realm.userService=users.conf* to switch to the new user service.<br/>
JM 367 The original `users.properties` file and it's corresponding implementation are **deprecated**.<br/>
93f472 368     **New:** *realm.userService = users.conf*
e927f4 369 - Teams for specifying user-repository access in bulk.  Teams may also specify mailing lists addresses and pre- & post- receive hook scripts.
160ee4 370 - Gravatar integration<br/>
e5662e 371     **New:** *web.allowGravatar = true*
160ee4 372 - Activity page for aggregated repository activity.  This is a timeline of commit activity over the last N days for one or more repositories.<br/>
JM 373    **New:** *web.activityDuration = 14*<br/>
374    **New:** *web.timeFormat = HH:mm*<br/>
e5662e 375    **New:** *web.datestampLongFormat = EEEE, MMMM d, yyyy*
160ee4 376 - *Filters* menu for the Repositories page and Activity page.  You can filter by federation set, team, and simple custom regular expressions.  Custom expressions can be stored in `gitblit.properties` or `web.xml` or directly defined in your url (issue 27)<br/>
31bcbe 377    **New:** *web.customFilters=*
160ee4 378 - Flash-based 1-step *copy to clipboard* of the primary repository url based on Clippy<br/>
cb57ec 379    **New:** *web.allowFlashCopyToClipboard = true*
e927f4 380 - JavaScript-based 3-step (click, ctrl+c, enter) *copy to clipboard* of the primary repository url in the event that you do not want to use Flash on your installation
JM 381 - Empty repositories now link to an *empty repository* page which gives some direction to the user for the next step in using Gitblit.  This page displays the primary push/clone url of the repository and gives sample syntax for the git command-line client. (issue 31)
444101 382 - Repositories with a *gh-pages* branch will now have a *pages* link which will serve the content of this branch.  All resource requests are against the repository, Gitblit does not checkout/export this branch to a temporary filesystem.  Jekyll templating is not supported.
3cc6e2 383 - Gitblit Express bundle to get started running Gitblit on RedHat's OpenShift cloud <span class="label label-warning">BETA</span>
e927f4 384
JM 385 #### changes
386
387 - Dropped display of trailing .git from repository names
160ee4 388 - Gitblit GO is now monolithic like the WAR build. (issue 30)<br/>
e927f4 389 This change helps adoption of GO in environments without an internet connection or with a restricted connection.
JM 390 - Unit testing framework has been migrated to JUnit4 syntax and the test suite has been redesigned to run all unit tests, including rpc, federation, and git push/clone tests
391
392 #### fixes
393
394 - Several a bugs in FileUserService related to cleaning up old repository permissions on a rename or delete
395 - Renaming a repository into a new subfolder failed (issue 33)
396
397 #### dependency changes
398
399 - updated to JGit 1.2.0
e5662e 400 - added Groovy 1.8.5
e927f4 401 - added Clippy (bundled)
9dcd53 402
3cc6e2 403 <hr/>
9dcd53 404
6ef2fc 405 **0.7.0** &nbsp; *released 2011-11-11*
9dcd53 406
d40adc 407 - **security**: fixed security hole when cloning clone-restricted repository with TortoiseGit (issue 28)
160ee4 408 - improved: updated ui with Twitter's Bootstrap CSS toolkit<br/>
3b5289 409     **New:** *web.loginMessage = gitblit*
4d44cf 410 - improved: repositories list performance by caching repository sizes (issue 27)
JM 411 - improved: summary page performance by caching metric calculations (issue 25)
160ee4 412 - added: authenticated JSON RPC mechanism<br/>
JM 413     **New:** *web.enableRpcServlet = true*<br/>
414     **New:** *web.enableRpcManagement = false*<br/>
d4c908 415     **New:** *web.enableRpcAdministration = false*
fa5e6f 416 - added: Gitblit API RSS/JSON RPC library
a7a9f7 417 - added: Gitblit Manager (Java/Swing Application) for remote administration of a Gitblit server.
fe3262 418 - added: per-repository setting to skip size calculation (faster repositories page loading)
JM 419 - added: per-repository setting to skip summary metrics calculation (faster summary page loading)
d5623a 420 - added: IUserService.setup(IStoredSettings) for custom user service implementations
160ee4 421 - added: setting to control Gitblit GO context path for proxy setups *(Github/trygvis)*<br/>
d5623a 422     **New:** *server.contextPath = /*
c2fe08 423 - added: *combined-md5* password storage option which stores the hash of username+password as the password *(Github/alyandon)*
JM 424 - added: repository owners are automatically granted access for git, feeds, and zip downloads without explicitly selecting them *(Github/dadalar)*
e493cf 425 - added: RSS feeds now include regex substitutions on commit messages for bug trackers, etc
160ee4 426 - fixed: federation protocol timestamps.  dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard.<br/>
d4c908 427     **This breaks 0.6.0 federation clients/servers.**
16038c 428 - fixed: collision on rename for repositories and users
e11f48 429 - fixed: Gitblit can now browse the Linux kernel repository (issue 25)
JM 430 - fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) (issue 23)
d40adc 431 - fixed: Set the RSS content type of syndication feeds for Firefox 4 (issue 22)
4cac0d 432 - fixed: RSS feeds are now properly encoded to UTF-8
fa5e6f 433 - fixed: RSS feeds now properly generate parameterized links if *web.mountParameters=false*
4838c5 434 - fixed: Null pointer exception if did not set federation strategy (issue 20)
c7ebb2 435 - fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later
fa5e6f 436 - updated: MarkdownPapers 1.2.5
074b4b 437 - updated: Wicket 1.4.19
63ee41 438
3cc6e2 439 <hr/>
JM 440
6ef2fc 441 **0.6.0** &nbsp; *released 2011-09-27*
63ee41 442
160ee4 443 - added: federation feature to allow gitblit instances (or gitblit federation clients) to pull repositories and, optionally, settings and accounts from other gitblit instances.  This is something like [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html) for gitblit.<br/>
JM 444     **New:** *federation.name =*<br/>
445     **New:** *federation.passphrase =*<br/>
446     **New:** *federation.allowProposals = false*<br/>
447     **New:** *federation.proposalsFolder = proposals*<br/>
448     **New:** *federation.defaultFrequency = 60 mins*<br/>
449     **New:** *federation.sets =*<br/>
450     **New:** *mail.* settings for sending emails<br/>
e5662e 451     **New:** user role *#notfederated* to prevent a user account from being pulled by a federated Gitblit instance
831469 452 - added: google-gson dependency
JM 453 - added: javamail dependency
454 - updated: MarkdownPapers 1.1.1
94dfef 455 - updated: Wicket 1.4.18
9b72a2 456 - updated: JGit 1.1.0
78753b 457 - fixed: syndication urls for WAR deployments
JM 458 - fixed: authentication for zip downloads
831469 459
3cc6e2 460 <hr/>
JM 461
6ef2fc 462 **0.5.2** &nbsp; *released 2011-07-27*
831469 463
85e8b6 464 - fixed: active repositories with a HEAD that pointed to an empty branch caused internal errors (issue 14)
230632 465 - fixed: bare-cloned repositories were listed as (empty) and were not clickable (issue 13)
JM 466 - fixed: default port for Gitblit GO is now 8443 to be more linux/os x friendly (issue 12)
5c563c 467 - fixed: repositories can now be reliably deleted and renamed (issue 10)
230632 468 - fixed: users can now change their passwords (issue 1)
JM 469 - fixed: always show root repository group first, i.e. don't sort root group with other groups
470 - fixed: tone-down repository group header color
160ee4 471 - added: optionally display repository on-disk size on repositories page<br/>
3b5289 472     **New:** *web.showRepositorySizes = true*
160ee4 473 - added: forward-slashes ('/', %2F) can be encoded using a custom character to workaround some servlet container default security measures for proxy servers<br/>
3b5289 474     **New:** *web.forwardSlashCharacter = /*
230632 475 - updated: MarkdownPapers 1.1.0
0d3e3c 476 - updated: Jetty 7.4.3
5c2841 477
3cc6e2 478 <hr/>
JM 479
6ef2fc 480 **0.5.1** &nbsp; *released 2011-06-28*
85c2e6 481
d39680 482 - clarified SSL certificate generation and configuration for both server-side and client-side
JM 483 - added some more troubleshooting information to documentation
484 - replaced JavaService with Apache Commons Daemon
485
3cc6e2 486 <hr/>
JM 487
6ef2fc 488 **0.5.0** &nbsp; *released 2011-06-26*
5c2841 489
JM 490 - initial release
85c2e6 491
bc5b7b 492 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"