From ea936aa63d7a756ca7d0284f76b830656d1e8918 Mon Sep 17 00:00:00 2001 From: James Moger Date: Tue, 27 Sep 2011 09:49:57 -0400 Subject: [PATCH] Documentation. --- docs/02_federation.mkd | 6 +++++- docs/fed_aggregation.png | Bin 0 -> 21532 bytes docs/fed_mirror.png | Bin 0 -> 6897 bytes docs/federation.odg | Bin 0 -> 12385 bytes 4 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/fed_aggregation.png create mode 100644 docs/fed_mirror.png create mode 100644 docs/federation.odg diff --git a/docs/02_federation.mkd b/docs/02_federation.mkd index e004a27a..f77d7034 100644 --- a/docs/02_federation.mkd +++ b/docs/02_federation.mkd @@ -2,13 +2,15 @@ *SINCE 0.6.0* -A Gitblit federation is a mechanism to clone repositories and keep them in sync from one Gitblit instance to another. Federation can be used for automated backup of your repositories or may be used to initially clone groups of repositories to developer workstations. If you are/were a Subversion user you might think of this as [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html), but better. +A Gitblit federation is a mechanism to clone repositories and keep them in sync from one Gitblit instance to another. Federation can be used to maintain a mirror of your Gitblit instance, to aggregate repositories from developer workstations, or to initially clone groups of repositories to developer workstations. If you are/were a Subversion user you might think of this as [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html), but better. If your Gitblit instance allows federation and it is properly registered with another Gitblit instance, each of the *non-excluded* repositories of your Gitblit instance can be mirrored, in their entirety, to the pulling Gitblit instance. You may optionally allow pulling of user accounts and backup of server settings. The federation feature should be considered a security backdoor and enabled or disabled as appropriate for your installation.
Please review all the documentation to understand how it works and its limitations. +![block diagram](fed_aggregation.png "Gitblit Federation Aggregation") + ### Origin Gitblit Instance Requirements - *git.enableGitServlet* must be true, all Git clone and pull requests are handled through Gitblit's JGit servlet @@ -236,6 +238,8 @@ These examples would be entered into the `gitblit.properties` file of the pullin #### (Nearly) Perfect Mirror Example +![block diagram](fed_mirror.png "Gitblit Mirror") + This assumes that the *token* is the *ALL* token from the origin gitblit instance. The repositories, example1_users.properties, and example1_gitblit.properties will be put in *git.repositoriesFolder* and the origin user accounts will be merged into the local user accounts, including passwords and all roles. The Gitblit instance will also send a status acknowledgment to the origin Gitblit instance at the end of the pull operation. The status report will include the state of each repository pull (EXCLUDED, SKIPPED, NOCHANGE, PULLED, MIRRORED). This way the origin Gitblit instance can monitor the health of its mirrors. diff --git a/docs/fed_aggregation.png b/docs/fed_aggregation.png new file mode 100644 index 0000000000000000000000000000000000000000..556d1e4720430941ecef22d7167a7a491b416556 GIT binary patch literal 21532 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 literal 0 HcmV?d00001 diff --git a/docs/fed_mirror.png b/docs/fed_mirror.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad238e66afe62dd420bf25e5d52c3b416b8dad8 GIT binary patch literal 6897 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