2016-08-11 19:03:50 +02:00
|
|
|
---
|
|
|
|
layout: page
|
|
|
|
title: Versioning
|
|
|
|
permalink: /versioning/
|
|
|
|
---
|
2017-05-24 19:13:47 +02:00
|
|
|
|
|
|
|
This page describes how to keep track of all changes to calendars and
|
|
|
|
address books with **git** (or any other version control system).
|
|
|
|
|
|
|
|
The repository must be initialized by running ``git init`` in the file
|
|
|
|
system folder. Internal files of Radicale can be excluded by creating the
|
|
|
|
file **.gitignore** with the following content:
|
|
|
|
```
|
|
|
|
.Radicale.cache
|
|
|
|
.Radicale.lock
|
|
|
|
.Radicale.tmp.*
|
|
|
|
```
|
|
|
|
|
|
|
|
The configuration option ``hook`` in the ``storage`` section must be set to
|
|
|
|
the following command:
|
|
|
|
```sh
|
|
|
|
git add -A && (git diff --cached --quiet || git commit -m "Changes by "%(user)s)
|
|
|
|
```
|
|
|
|
|
|
|
|
The command gets executed after every change to the storage and commits
|
|
|
|
the changes into the **git** repository.
|