## Upgrading Gitblit Express

1. Make a  backup copy of */deployments/ROOT.war/WEB-INF/web.xml*
2. Delete your */deployments/ROOT.war* and then copy the new */deployments/ROOT.war* from the archive.
3. Diff your backup copy of web.xml with the pristine one you copied as part of */deployments/ROOT.war* and apply any necessary changes.

These steps are necessary to ensure that you end up using the specified libraries and resources for the new version.  Otherwise you could end up with a hybrid filesystem that would make it difficult to troubleshoot.  It is important to note that the web.xml file contains both your default settings AND application configuration.  Not updating the web.xml is just a likely to create problems as making a hybrid filesystem.

### 1.3.1 web.xml

- Changed *WicketFilter* to *GitblitWicketFilter* to handle optional, smart cache-control updates (issue-274)

### 1.3.0 web.xml

- Added LogoServlet
- Added SparkleShareInviteServlet
- Added EnforceAuthenticationFilter
- Moved GitServlet

### 1.4.0 web.xml

- Changed baseFolder from a context-parameter to a JNDI env-entry
- Added pt servlet