James Moger
2012-11-27 d83bd6d3acfc88a991a08a15dfa3ac36770bb0b8
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
d83bd6 15 - Fixed incorrect links on history page for files not in the current/active commit (issue 166)
b845f1 16 - Empty repository page failed to handle missing repository (issue 160)
d7be8c 17 - Fixed broken ticgit urls (issue 157)
13417c 18 - Exclude submodules from zip downloads (issue 151)
17363c 19 - Fixed bug where repository ownership was not updated on rename user
2c60de 20 - Fixed bug in create/rename repository if you explicitly specified the alias for the root group (e.g. main/myrepo) (issue 143)
88aad7 21 - Wrapped Markdown parser with improved exception handler (issue 142)
9f5a86 22 - Fixed duplicate entries in repository cache (issue 140)
301adb 23 - Fixed connection leak in LDAPUserService (issue 139)
d3dfcd 24 - Fixed bug in commit page where changes to a submodule threw a null pointer exception (issue 132)
b34048 25 - Fixed bug in the diff view for filenames that have non-ASCII characters (issue 128)
JM 26
27 #### additions
28
20714a 29 - Implemented discrete repository permissions (issue 36)  
JM 30     - V (view in web ui, RSS feeds, download zip)
31     - R (clone)
32     - RW (clone and push)
33     - RWC (clone and push with ref creation)
34     - RWD (clone and push with ref creation, deletion)
35     - RW+ (clone and push with ref creation, deletion, rewind)  
36 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.
e5aaa5 37 - Implemented *case-insensitive* regex repository permission matching (issue 36)  
e92c6d 38 This allows you to specify a permission like `RW:mygroup/.*` to grant push privileges to all repositories within the *mygroup* project/folder.
20714a 39 - Added DELETE, CREATE, and NON-FAST-FORWARD ref change logging
6662e3 40 - Added support for personal repositories.  
JM 41 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.
1e1b85 42 - Added support for server-side forking of a repository to a personal repository (issue 137)  
20714a 43 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.
72cb19 44 - Added optional *create-on-push* support  
e92c6d 45     **New:** *git.allowCreateOnPush=true*  
JM 46 - Added **experimental** JGit-based garbage collection service.  This service is disabled by default.  
47     **New:** *git.allowGarbageCollection=false*  
48     **New:** *git.garbageCollectionHour = 0*  
49     **New:** *git.defaultGarbageCollectionThreshold = 500k*  
50     **New:** *git.defaultGarbageCollectionPeriod = 7 days*
4ad1eb 51 - Added support for X509 client certificate authentication (github/kevinanderson1).  (issue 106)  
3983a6 52 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.  
JM 53     **New:** *git.requireClientCertificates = false*  
54     **New:** *git.enforceCertificateValidity = true*  
55     **New:** *git.certificateUsernameOIDs = CN*
d8a0f1 56 - 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>
JM 57 - Added support for Gitblit GO to require usage of client certificates to access the entire server.  
58 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.  
59     **New:** *server.requireClientCertificates = false*
4ad1eb 60 - Added Gitblit Certificate Authority, an X509 certificate generation tool for Gitblit GO to encourage use of client certificate authentication.
798581 61 - Added setting to control length of shortened commit ids  
JM 62     **New:** *web.shortCommitIdLength=8*  
20714a 63 - Added simple project pages.  A project is a subfolder off the *git.repositoriesFolder*.
1e1b85 64 - Added support for X-Forwarded-Context for Apache subdomain proxy configurations (issue 135)
JM 65 - Delete branch feature (issue 121, Github/ajermakovics)
20714a 66 - Added line links to blob view (issue 130)
d60a42 67 - Added HTML sendmail hook script and Gitblit.sendHtmlMail method (github/sauthieg)
1e1b85 68 - Added RedmineUserService (github/mallowlabs)
54f2c8 69 - Support for committer verification.  Requires use of *--no-ff* when merging branches or pull requests.  See setup page for details.
b34048 70
27c74e 71 #### changes
JM 72
e92c6d 73 - Teams can now specify the *admin*, *create*, and *fork* roles to simplify user administration
7818bd 74 - Use https Gravatar urls to avoid browser complaints
9ba9be 75 - Added frm to default pretty print extensions (issue 156)
6bb3b2 76 - Expose ReceivePack to Groovy push hooks (issue 125)
4e1cc8 77 - Redirect to summary page when refreshing the empty repository page on a repository that is not empty (issue 129)
165254 78 - 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)
27c74e 79 - LDAP admin attribute setting is now consistent with LDAP teams setting and admin teams list.  
JM 80 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.
81
f4c326 82 #### dependency changes
JM 83
75acde 84 - updated to Jetty 7.6.7
569f8c 85 - updated to JGit 2.1.0.201209190230-r
470192 86 - updated to Groovy 1.8.8
94464d 87 - updated to Wicket 1.4.21
94da97 88 - updated to Lucene 3.6.1
1729d4 89 - updated to BouncyCastle 1.47
f09f24 90 - added JCalendar 1.3.2
f4c326 91
27c74e 92 <hr/>
JM 93
94 ### Older Releases
95
822dfe 96 <div class="alert alert-error">
JM 97 <h4>Update Note</h4>
98 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.
99 </div>
100
27c74e 101 **1.1.0** *released 2012-08-25*
JM 102
380afa 103 #### fixes
JM 104
d97e52 105 - 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 106 - Fixed MailExecutor's failure to cope with mail server connection troubles resulting in 100% CPU usage
836188 107 - Fixed generated urls in Groovy *sendmail* hook script for grouped repositories
d5477c 108 - Fixed generated urls in RSS feeds for grouped repositories
2904bf 109 - Fixed nullpointer exception in git servlet security filter (issue 123)
1ab5b3 110 - Eliminated an unnecessary repository enumeration call on the root page which should result in faster page loads (issue 103) 
eb741a 111 - Gitblit could not delete a Lucene index in a working copy on index upgrade 
eb870f 112 - Do not index submodule links (issue 119)
2987f6 113 - Restore original user or team object on failure to update (issue 118)
756117 114 - Fixes to relative path determination in repository search algorithm for symlinks (issue 116)
JM 115 - Fix to GitServlet to allow pushing to symlinked repositories (issue 116)
eb870f 116 - Repository URL now uses `X-Forwarded-Proto` and `X-Forwarded-Port`, if available, for reverse proxy configurations (issue 115)
e4f49a 117 - Output real RAW content, not simulated RAW content (issue 114)
fa0afc 118 - Fixed Lucene charset encoding bug when reindexing a repository (issue 112)
1ab5b3 119 - Fixed search box linking to Lucene page for grouped repository on Tomcat (issue 111)
a01257 120 - Fixed null pointer in LdapUserSerivce if account has a null email address (issue 110)
f3ff37 121 - Really fixed failure to update a GO setting from the manager (issue 85)
a01257 122
6adf56 123 #### additions
a01257 124
fee060 125 - Identified repository list is now cached by default to reduce disk io and to improve performance (issue 103)  
JM 126     **New:** *git.cacheRepositoryList=true*
eb870f 127 - Preliminary bare repository submodule support  
JM 128     **New:** *git.submoduleUrlPatterns=*
129     - *git.submoduleUrlPatterns* is a space-delimited list of regular expressions for extracting a repository name from a submodule url.  
130     For example, `git.submoduleUrlPatterns = .*?://github.com/(.*)` would extract *gitblit/gitblit.git* from *git://github.git/gitblit/gitblit.git*  
131     **Note:** You may not need this control to work with submodules, but it is there if you do.
132     - 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)*
133     - 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.
134     - Submodule references in a working copy will be properly identified as gitlinks, but Gitblit will not traverse into the working copy submodule repository.
135 - Added a repository setting to control authorization as AUTHENTICATED or NAMED. (issue 117)  
136 NAMED is the original behavior for authorizing against a list of permitted users or permitted teams.  
137 AUTHENTICATED allows restricted access for any authenticated user.  This is a looser authorization control.
20e25c 138 - Added default authorization control setting (AUTHENTICATED or NAMED)  
6adf56 139     **New:** *git.defaultAuthorizationControl=NAMED*  
20e25c 140 - Added setting to control how deep Gitblit will recurse into *git.repositoriesFolder* looking for repositories (issue 103)  
0adceb 141     **New:** *git.searchRecursionDepth=-1*  
20e25c 142 - Added setting to specify regex exclusions for repositories (issue 103)  
0adceb 143     **New:** *git.searchExclusions=*  
e4f49a 144 - Blob page now supports displaying images (issue 6)
JM 145 - Non-image binary files can now be downloaded using the RAW link
eb870f 146 - Support StartTLS in LdapUserService (Steffen Gebert, issue 122)
2904bf 147 - Added Korean translation
6adf56 148
JM 149 #### changes
150
eb870f 151 - 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 152 - Improve UTF-8 reading for Markdown files
a01257 153 - Updated Polish translation
2904bf 154 - Updated Japanese translation
JM 155 - Updated Spanish translation
eb870f 156
JM 157 <hr/>
a01257 158
JM 159 **1.0.0** *released 2012-07-14*
160
161 #### fixes
162
8b7d30 163 - 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 164 - Fixed intermittent bug in identifying line numbers in Lucene search (issue 105)
8b7d30 165 - 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 166 - Fixed bug where a repository set as *authenticated push* did not have anonymous clone access (issue 96)
380afa 167 - Fixed bug in Basic authentication if passwords had a colon (Github/peterloron)
e09d4b 168 - Fixed bug where the Gitblit Manager could not update a setting that was not referenced in reference.properties (issue 85)
380afa 169
6e15cb 170 #### changes
JM 171
53d7f4 172 - **Updated Lucene index version which will force a rebuild of ALL your Lucene indexes**  
JM 173 Make sure to properly set *web.blobEncodings* before starting Gitblit if you are updating!  (issue 97)
8b7d30 174 - Changed default layout for web ui from Fixed-Width layout to Responsive layout (issue 101)  
e4547f 175 - IUserService interface has changed to better accomodate custom authentication and/or custom authorization  
JM 176     The default `users.conf` now supports persisting display names and email addresses. 
7628dc 177 - Updated Japanese translation (Github/zakki)
6e15cb 178
JM 179 #### additions
180
e09d4b 181 - Added setting to allow specification of a robots.txt file (issue 99)  
e4547f 182     **New:** *web.robots.txt =*  
8b7d30 183 - Added setting to control Responsive layout or Fixed-Width layout (issue 101)  
JM 184     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.  
62cec2 185     **New:** *web.useResponsiveLayout = true*  
ae9e15 186 - Added setting to control charsets for blob string decoding.  Default encodings are UTF-8, ISO-8859-1, and server's default charset. (issue 97)  
JM 187     **New:** *web.blobEncodings = UTF-8 ISO-8859-1*  
478678 188 - Exposed JGit's internal configuration settings in gitblit.properties/web.xml (issue 93)  
8b7d30 189     Review your `gitblit.properties` or `web.xml` for detailed explanations of these settings.  
478678 190     **New:** *git.packedGitWindowSize = 8k*  
JM 191     **New:** *git.packedGitLimit = 10m*  
192     **New:** *git.deltaBaseCacheLimit = 10m*  
193     **New:** *git.packedGitOpenFiles = 128*  
194     **New:** *git.streamFileThreshold = 50m*  
195     **New:** *git.packedGitMmap = false*  
94dcbd 196 - Added default access restriction.  Applies to new repositories and repositories that have not been configured with Gitblit. (issue 88)  
JM 197     **New:** *git.defaultAccessRestriction = NONE*  
8b7d30 198 - 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 
JM 199 - Added setting to control Groovy Grape root folder (location where resolved dependencies are stored)   
e4547f 200     [Grape](http://groovy.codehaus.org/Grape) allows you to add Maven dependencies to your pre-/post-receive hook script classpath.  
67d4f8 201     **New:** *groovy.grapeFolder = groovy/grape*  
6e15cb 202 - Added LDAP User Service with many new *realm.ldap* keys (Github/jcrygier)
8b7d30 203 - Added support for custom repository properties for Groovy hooks (Github/jcrygier)  
JM 204     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 205 - Added script to facilitate proxy environment setup on Linux (Github/mragab)
e2efe1 206 - Added Polish translation (Lukasz Jader)
8dbee6 207 - Added Spanish translation (Eduardo Guervos Narvaez)
6e15cb 208
62cec2 209 #### dependency changes
JM 210
211 - updated to Bootstrap 2.0.4
e4547f 212 - updated to JGit 2.0.0.201206130900-r
JM 213 - updated to Groovy 1.8.6
214 - updated to Gson 1.7.2
215 - updated to Log4J 1.2.17
216 - updated to SLF4J 1.6.6
bd196e 217 - updated to Apache Commons Daemon 1.0.10
e4547f 218 - added Ivy 2.2.0
JM 219
220 <hr/>
62cec2 221
6e15cb 222 **0.9.3** *released 2012-04-11*
JM 223
a21fc5 224 #### fixes
JM 225
226 - 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 227 - Automatically set *java.awt.headless=true* for Gitblit GO
e4547f 228
JM 229 <hr/>
a21fc5 230
d58f8e 231 **0.9.2** *released 2012-04-04*
JM 232
bc5b7b 233 #### changes
JM 234
235 - Added *clientLogger* bound variable to Groovy hook mechanism to allow custom info and error messages to be returned to the client (Github/jcrygier)
236
6ef2fc 237 #### fixes
JM 238
1aa6e0 239 - Fixed absolute path/canonical path discrepancy between Gitblit and JGit regarding use of symlinks (issue 78)
ed3a0e 240 - Fixed row layout on activity page (issue 79)
JM 241 - Fixed Centos service script (Github/mohamedmansour)
227b24 242 - Fixed EditRepositoryPage for IE8; missing save button (issue 80, Github/jonnybbb)
1aa6e0 243
e4547f 244 <hr/>
JM 245
1aa6e0 246 **0.9.1** *released 2012-03-27*
JM 247
248 #### fixes
249
6ef2fc 250 - Lucene folder was stored in working copy instead of in .git folder
e4547f 251
JM 252 <hr/>
6ef2fc 253
JM 254 **0.9.0** *released 2012-03-27*
255
e78838 256 #### security
JM 257
258 - Fixed session fixation vulnerability where the session identifier was not reset during the login process (issue 62)
259
a4ed6d 260 #### changes
JM 261
ff3f0e 262 - Reject pushes to a repository with a working copy (i.e. non-bare repository) (issue-49)
6c6e7d 263 - Changed default web.datetimestampLongFormat from *EEEE, MMMM d, yyyy h:mm a z* to *EEEE, MMMM d, yyyy HH:mm Z* (issue 50)
JM 264 - Expanded commit age coloring from 2 days to 30 days (issue 57)
a4ed6d 265
c125cd 266 #### additions
JM 267
ff3f0e 268 - Added optional Lucene branch indexing (issue 16)  
7db092 269     **New:** *web.allowLuceneIndexing = true*  
f1d2ad 270     **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 271 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.)  
272 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.  
0273b2 273 If the repository does not specify any indexed branches then repository commit-traversal search is used.    
JM 274 **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).  
275 See the [setup](setup.html) page for additional details.
6c6e7d 276 - Allow specifying timezone to use for Gitblit which is independent of both the JVM and the system timezone (issue 54)  
JM 277     **New:** *web.timezone =*  
4b9d64 278 - Added a built-in AJP connector for integrating Gitblit GO into an Apache mod_proxy setup (issue 59)  
3cc6e2 279     **New:** *server.ajpPort = 0*  
4b9d64 280     **New:** *server.ajpBindInterface = localhost*
1c2215 281 - On the Repositories page show a bang *!* character in the color swatch of a repository with a working copy (issue 49)  
JM 282 Push requests to these repositories will be rejected.
ccab3a 283 - On all non-bare Repository pages show *WORKING COPY* in the upper right corner (issue 49)
b86562 284 - New setting to prevent display/serving non-bare repositories  
JM 285     **New:** *git.onlyAccessBareRepositories = false*
58a1e4 286 - Added *protect-refs.groovy* (Github/plm) 
JM 287 - Allow setting default branch (relinking HEAD) to a branch or a tag (Github/plm)
3da5a5 288 - Added Ubuntu service init script (issue 72)
6caa93 289 - Added partial Japanese translation (Github/zakki)
c125cd 290
ae0b13 291 #### fixes 
c125cd 292
86bea9 293 - Ensure that Welcome message is parsed using UTF-8 encoding (issue 74) 
58a1e4 294 - Activity page chart layout broken by Google (issue 73)
6fa6ab 295 - Uppercase repositories not selectable in edit palettes (issue 71)
9357e9 296 - Not all git notes were properly displayed on the commit page (issue 70)
9d921f 297 - Activity page now displays all local branches (issue 65)
4fea45 298 - Fixed (harmless) nullpointer on pushing to an empty repository (issue 69)
18d398 299 - Fixed possible nullpointer from the servlet container on startup (issue 67)
JM 300 - Fixed UTF-8 encoding bug on diff page (issue 66)
9d921f 301 - Fixed timezone bugs on the activity page (issue 54)
2afc31 302 - Prevent add/edit team with no selected repositories (issue 56) 
d3ca1c 303 - Disallow browser autocomplete on add/edit user/team/repository pages
ae0b13 304 - Fixed username case-sensitivity issues (issue 43)
c125cd 305 - Disregard searching a subfolder if Gitblit does not have filesystem permissions (Github/lemval issue 51)
ae0b13 306
3cc6e2 307 #### dependency changes
JM 308
e28b2f 309 - updated to Bootstrap 2.0.2
JM 310 - added GLYPHICONS (as bundled with Bootstrap 2.0.2)
388872 311 - updated to MarkdownPapers 1.2.7
741adb 312 - updated to JGit 1.3.0.201202151440-r
4e0ee2 313 - updated to Wicket 1.4.20
3cc6e2 314
JM 315 <hr/>
316
ae0b13 317 **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 318
04627e 319 #### fixes
JM 320
8051a2 321 - Fixed bug when upgrading from users.properties to users.conf (issue 41)
3cc6e2 322
JM 323 <hr/>
8051a2 324
6ef2fc 325 **0.8.1** &nbsp; *released 2012-01-11*
8051a2 326
JM 327 #### fixes
328
04627e 329 - Include missing icon resource for the manager (issue 40)
942939 330 - Fixed sendmail.groovy message content with incorrect tag/branch labels
3cc6e2 331
JM 332 <hr/>
04627e 333
6ef2fc 334 **0.8.0** &nbsp; *released 2012-01-11*
04627e 335
e927f4 336 #### additions
JM 337
338 - Platform-independent, Groovy push hook script mechanism.  
339 Hook scripts can be set per-repository, per-team, or globally for all repositories.  
fa54be 340     **New:** *groovy.scriptsFolder = groovy*  
JM 341     **New:** *groovy.preReceiveScripts =*  
342     **New:** *groovy.postReceiveScripts =*
e927f4 343 - *sendmail.groovy* for optional email notifications on push.  
JM 344 You must properly configure your SMTP server settings in `gitblit.properties` or `web.xml` to use *sendmail.groovy*.
444101 345 - 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.  
fa54be 346     **New:** *mail.mailingLists =*
e927f4 347 - *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.
JM 348 - New default user service implementation: *com.gitblit.ConfigUserService* (`users.conf`)  
349 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.  
350 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.  
eb96ea 351 The original `users.properties` file and it's corresponding implementation are **deprecated**.  
93f472 352     **New:** *realm.userService = users.conf*
e927f4 353 - Teams for specifying user-repository access in bulk.  Teams may also specify mailing lists addresses and pre- & post- receive hook scripts.
JM 354 - Gravatar integration  
9dcd53 355     **New:** *web.allowGravatar = true*   
e927f4 356 - Activity page for aggregated repository activity.  This is a timeline of commit activity over the last N days for one or more repositories.  
6e6f9f 357    **New:** *web.activityDuration = 14*  
JM 358    **New:** *web.timeFormat = HH:mm*  
359    **New:** *web.datestampLongFormat = EEEE, MMMM d, yyyy*  
e927f4 360 - *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)  
31bcbe 361    **New:** *web.customFilters=*
e927f4 362 - Flash-based 1-step *copy to clipboard* of the primary repository url based on Clippy  
cb57ec 363    **New:** *web.allowFlashCopyToClipboard = true*
e927f4 364 - 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 365 - 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 366 - 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 367 - Gitblit Express bundle to get started running Gitblit on RedHat's OpenShift cloud <span class="label label-warning">BETA</span>
e927f4 368
JM 369 #### changes
370
371 - Dropped display of trailing .git from repository names
372 - Gitblit GO is now monolithic like the WAR build. (issue 30)  
373 This change helps adoption of GO in environments without an internet connection or with a restricted connection.
374 - 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
375
376 #### fixes
377
378 - Several a bugs in FileUserService related to cleaning up old repository permissions on a rename or delete
379 - Renaming a repository into a new subfolder failed (issue 33)
380
381 #### dependency changes
382
383 - updated to JGit 1.2.0
c7bcdc 384 - added Groovy 1.8.5 
e927f4 385 - added Clippy (bundled)
9dcd53 386
3cc6e2 387 <hr/>
9dcd53 388
6ef2fc 389 **0.7.0** &nbsp; *released 2011-11-11*
9dcd53 390
d40adc 391 - **security**: fixed security hole when cloning clone-restricted repository with TortoiseGit (issue 28)
3b5289 392 - improved: updated ui with Twitter's Bootstrap CSS toolkit  
JM 393     **New:** *web.loginMessage = gitblit*
4d44cf 394 - improved: repositories list performance by caching repository sizes (issue 27)
JM 395 - improved: summary page performance by caching metric calculations (issue 25)
d4c908 396 - added: authenticated JSON RPC mechanism   
JM 397     **New:** *web.enableRpcServlet = true*  
4c835e 398     **New:** *web.enableRpcManagement = false*  
d4c908 399     **New:** *web.enableRpcAdministration = false*
fa5e6f 400 - added: Gitblit API RSS/JSON RPC library
a7a9f7 401 - added: Gitblit Manager (Java/Swing Application) for remote administration of a Gitblit server.
fe3262 402 - added: per-repository setting to skip size calculation (faster repositories page loading)
JM 403 - added: per-repository setting to skip summary metrics calculation (faster summary page loading)
d5623a 404 - added: IUserService.setup(IStoredSettings) for custom user service implementations
c2fe08 405 - added: setting to control Gitblit GO context path for proxy setups *(Github/trygvis)*  
d5623a 406     **New:** *server.contextPath = /*
c2fe08 407 - added: *combined-md5* password storage option which stores the hash of username+password as the password *(Github/alyandon)*
JM 408 - added: repository owners are automatically granted access for git, feeds, and zip downloads without explicitly selecting them *(Github/dadalar)*
e493cf 409 - added: RSS feeds now include regex substitutions on commit messages for bug trackers, etc
d4c908 410 - fixed: federation protocol timestamps.  dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard.  
JM 411     **This breaks 0.6.0 federation clients/servers.**
16038c 412 - fixed: collision on rename for repositories and users
e11f48 413 - fixed: Gitblit can now browse the Linux kernel repository (issue 25)
JM 414 - fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) (issue 23)
d40adc 415 - fixed: Set the RSS content type of syndication feeds for Firefox 4 (issue 22)
4cac0d 416 - fixed: RSS feeds are now properly encoded to UTF-8
fa5e6f 417 - fixed: RSS feeds now properly generate parameterized links if *web.mountParameters=false*
4838c5 418 - fixed: Null pointer exception if did not set federation strategy (issue 20)
c7ebb2 419 - fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later
fa5e6f 420 - updated: MarkdownPapers 1.2.5
074b4b 421 - updated: Wicket 1.4.19
63ee41 422
3cc6e2 423 <hr/>
JM 424
6ef2fc 425 **0.6.0** &nbsp; *released 2011-09-27*
63ee41 426
3b5289 427 - 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.  
JM 428     **New:** *federation.name =*  
429     **New:** *federation.passphrase =*  
430     **New:** *federation.allowProposals = false*  
431     **New:** *federation.proposalsFolder = proposals*  
432     **New:** *federation.defaultFrequency = 60 mins*  
433     **New:** *federation.sets =*  
434     **New:** *mail.* settings for sending emails  
435     **New:** user role *#notfederated* to prevent a user account from being pulled by a federated Gitblit instance  
831469 436 - added: google-gson dependency
JM 437 - added: javamail dependency
438 - updated: MarkdownPapers 1.1.1
94dfef 439 - updated: Wicket 1.4.18
9b72a2 440 - updated: JGit 1.1.0
78753b 441 - fixed: syndication urls for WAR deployments
JM 442 - fixed: authentication for zip downloads
831469 443
3cc6e2 444 <hr/>
JM 445
6ef2fc 446 **0.5.2** &nbsp; *released 2011-07-27*
831469 447
85e8b6 448 - fixed: active repositories with a HEAD that pointed to an empty branch caused internal errors (issue 14)
230632 449 - fixed: bare-cloned repositories were listed as (empty) and were not clickable (issue 13)
JM 450 - fixed: default port for Gitblit GO is now 8443 to be more linux/os x friendly (issue 12)
5c563c 451 - fixed: repositories can now be reliably deleted and renamed (issue 10)
230632 452 - fixed: users can now change their passwords (issue 1)
JM 453 - fixed: always show root repository group first, i.e. don't sort root group with other groups
454 - fixed: tone-down repository group header color
3b5289 455 - added: optionally display repository on-disk size on repositories page  
JM 456     **New:** *web.showRepositorySizes = true*
457 - added: forward-slashes ('/', %2F) can be encoded using a custom character to workaround some servlet container default security measures for proxy servers  
458     **New:** *web.forwardSlashCharacter = /*
230632 459 - updated: MarkdownPapers 1.1.0
0d3e3c 460 - updated: Jetty 7.4.3
5c2841 461
3cc6e2 462 <hr/>
JM 463
6ef2fc 464 **0.5.1** &nbsp; *released 2011-06-28*
85c2e6 465
d39680 466 - clarified SSL certificate generation and configuration for both server-side and client-side
JM 467 - added some more troubleshooting information to documentation
468 - replaced JavaService with Apache Commons Daemon
469
3cc6e2 470 <hr/>
JM 471
6ef2fc 472 **0.5.0** &nbsp; *released 2011-06-26*
5c2841 473
JM 474 - initial release
85c2e6 475
bc5b7b 476 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"