From 9d25a4f4176e2945fad5905072b78b9f7a321df7 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 11 Nov 2011 17:18:15 -0500
Subject: [PATCH] Fix to download percentange calculation

---
 docs/02_federation.mkd |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/docs/02_federation.mkd b/docs/02_federation.mkd
index f77d703..dff7187 100644
--- a/docs/02_federation.mkd
+++ b/docs/02_federation.mkd
@@ -11,6 +11,12 @@
 
 ![block diagram](fed_aggregation.png "Gitblit Federation Aggregation")
 
+### Important Changes to Note
+
+The Gitblit 0.7.0 federation protocol is incompatible with the 0.6.0 federation protocol because of a change in the way timestamps are formatted.
+
+Gitblit 0.6.0 uses the default [google-gson](http://google-gson.googlecode.com) timestamp serializer which generates locally formatted timestamps.  Unfortunately, this creates problems for distributed repositories and distributed developers.  Gitblit 0.7.0 corrects this error by serializing dates to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard.  As a result 0.7.0 is not compatible with 0.6.0.  A partial backwards-compatibility fallback was considered but it would only work one direction and since the federation mechanism is bidirectional it was not implemented.
+
 ### Origin Gitblit Instance Requirements
 
 - *git.enableGitServlet* must be true, all Git clone and pull requests are handled through Gitblit's JGit servlet
@@ -27,7 +33,7 @@
 
 The federation feature is completely disabled if your passphrase value is empty.
 
-**NOTE**:<br/>
+**NOTE**:  
 Changing your *federation.passphrase* will break any registrations you have established with other Gitblit instances.
 
 ### Pulling Gitblit Instance Requirements
@@ -46,8 +52,8 @@
 String repositoriesToken = SHA1(passphrase + "-REPOSITORIES");
 %ENDCODE%
     
-The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings.<br/>
-The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and  user accounts.<br/>
+The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings.  
+The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and  user accounts.  
 The *REPOSITORIES* token only allows pulling of the repositories.
 
 Individual Gitblit repository configurations such as *description* and *accessRestriction* are always mirrored.
@@ -64,11 +70,11 @@
 
 Once you have properly setup your passphrase and can see your federation tokens, you are ready to share them with a pulling Gitblit instance.
  
-The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance.<br/>
+The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance.  
 To send a proposal:
 
 1. Login to your Gitblit instance as an administrator
-2. Select and click the *propose* link for the appropriate token at the bottom of the repositories page
+2. Select and click the *propose* link for the appropriate token on the *federation* page
 3. Confirm the publicly accessible url of your (origin) Gitblit instance
 4. Enter the url of the pulling Gitblit instance you want to federate with
 5. Optionally enter a message for the administrators
@@ -84,7 +90,7 @@
 2. the federation token you selected and its type
 3. the list of your *non-excluded* repositories, and their configuration details, that you propose to share
 
-Submitting a proposal does not automatically register your server with the pulling Gitblit instance.<br/>
+Submitting a proposal does not automatically register your server with the pulling Gitblit instance.  
 Registration is a manual process for an administrator.
 
 ### Federation Proposals (Pulling Gitblit Instance)
@@ -142,7 +148,7 @@
 
 #### Origin Verification
 
-During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration.<br/>
+During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration.  
 If they do not match, the repository is skipped and this is indicated in the log.
 
 #### User Accounts
@@ -153,8 +159,8 @@
 
 If you specify *federation.N.mergeAccounts=true*, then the user accounts from the origin Gitblit instance will be integrated into the `users.properties` file of your Gitblit instance and allow sign-on of those users.
 
-**NOTE:**<br/>
-Upgrades from older Gitblit versions will not have the *#notfederated* role assigned to the *admin* account.  Without that role, your admin account WILL be transferred with an *ALL* or *USERS_AND_REPOSITORIES* token.<br/>
+**NOTE:**  
+Upgrades from older Gitblit versions will not have the *#notfederated* role assigned to the *admin* account.  Without that role, your admin account WILL be transferred with an *ALL* or *USERS_AND_REPOSITORIES* token.  
 Please consider adding the *#notfederated* role to your admin account!
 
 #### Server Settings 
@@ -175,15 +181,15 @@
 
 ## Federation Pull Registration Keys
 
-<table class="text">
+<table>
 <tr><th>federation.N.url</th>
 <td>string</td>
-<td>the url of the origin Gitblit instance *(required)*</td>
+<td>the url of the origin Gitblit instance <em>(required)</em></td>
 </tr>
 
 <tr><th>federation.N.token</th>
 <td>string</td>
-<td>the token provided by the origin Gitblit instance *(required)*</td>
+<td>the token provided by the origin Gitblit instance <em>(required)</em></td>
 </tr>
 
 <tr><th>federation.N.frequency</th>
@@ -193,42 +199,42 @@
 
 <tr><th>federation.N.folder</th>
 <td>string</td>
-<td>the destination folder, relative to *git.repositoriesFolder*, for these repositories.<br/>default is *git.repositoriesFolder*</td>
+<td>the destination folder, relative to <em>git.repositoriesFolder</em>, for these repositories.<br/>default is <em>git.repositoriesFolder</em></td>
 </tr>
 
 <tr><th>federation.N.bare</th>
 <td>boolean</td>
-<td>if **true** *(default)*, each repository is cloned as a bare repository (i.e. no working folder).</td>
+<td>if <b>true</b> <em>(default)</em>, each repository is cloned as a bare repository (i.e. no working folder).</td>
 </tr>
 
 <tr><th>federation.N.mirror</th>
 <td>boolean</td>
-<td>if **true** *(default)*, each repository HEAD is reset to *origin/master* after each pull.  The repository is flagged *isFrozen* after the initial clone.<p>If **false**, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.</td>
+<td>if <b>true</b> <em>(default)</em>, each repository HEAD is reset to <em>origin/master</em> after each pull.  The repository is flagged <em>isFrozen</em> after the initial clone.<br/><br/>If <b>false</b>, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.</td>
 </tr>
 
 <tr><th>federation.N.mergeAccounts</th>
 <td>boolean</td>
-<td>if **true**, merge the retrieved accounts into the `users.properties` of **this** Gitblit instance.<br/>*default is false*</td>
+<td>if <b>true</b>, merge the retrieved accounts into the <code>users.properties</code> of <b>this</b> Gitblit instance.<br/><em>default is false</em></td>
 </tr>
 
 <tr><th>federation.N.sendStatus</th>
 <td>boolean</td>
-<td>if **true**, send the status of the federated pull to the origin Gitblit instance.<br/>*default is false*</td>
+<td>if <b>true</b>, send the status of the federated pull to the origin Gitblit instance.<br/><em>default is false</em></td>
 </tr>
 
 <tr><th>federation.N.include</th>
 <td>string array<br/>(space-delimited)</td>
-<td>list of included repositories *(wildcard and fuzzy matching supported)*</td>
+<td>list of included repositories <em>(wildcard and fuzzy matching supported)</em></td>
 </tr>
 
 <tr><th>federation.N.exclude</th>
 <td>string array<br/>(space-delimited)</td>
-<td>list of excluded repositories *(wildcard and fuzzy matching supported)*</td>
+<td>list of excluded repositories <em>(wildcard and fuzzy matching supported)</em></td>
 </tr>
 
 <tr><th>federation.N.notifyOnError</th>
 <td>boolean</td>
-<td>if **true**, send an email to the administrators on an error.<br/>*default is false*</td>
+<td>if <b>true</b>, send an email to the administrators on an error.<br/><em>default is false</em></td>
 </tr>
 </table>
 
@@ -257,7 +263,7 @@
     
 #### Just Repositories Example
 
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.  
 The repositories will be put in *git.repositoriesFolder*/example2.
 
     federation.example2.url = https://tomcat.gitblit.com/gitblit
@@ -269,7 +275,7 @@
     
 #### All-but-One Repository Example
 
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.  
 The repositories will be put in *git.repositoriesFolder*/example3.
 
     federation.example3.url = https://tomcat.gitblit.com/gitblit
@@ -282,7 +288,7 @@
     
 #### Just One Repository Example
 
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.  
 The repositories will be put in *git.repositoriesFolder*/example4.
 
     federation.example4.url = https://tomcat.gitblit.com/gitblit

--
Gitblit v1.9.1