Micron Document
Reticulum Manual 89/128

Git Over Reticulum (cont.)

1. Creates a new bare repository

2. Fetches all refs (+refs/*:refs/*) from the source

3. Sets repository.rngit.type to fork

4. Sets repository.rngit.upstream.source to the source URL

5. Grants creator admin permissions
All Command-Line Options (rngit fork)

usage: rngit fork [-h] [--config CONFIG] [--rnsconfig RNSCONFIG]
[-i PATH] [-v] [-q] [--version]
source target

Reticulum Git Repository Forker

positional arguments:
source URL of source repository
target URL of target repository

options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-i, --identity PATH path to identity
-v, --verbose
-q, --quiet
--version show program's version number and exit
Mirroring Repositories

Mirrors are similar to forks but are designed for keeping a local copy synchronized with an upstream repository. Mirrors can be automatically updated on a configurable schedule.

To create a mirror:

$ rngit mirror https://github.com/user/upstream rns://50824b711717f97c2fb1166ceddd5ea9/public/mymirror

Repository mirrored to public/mymirror
Mirrors are created with the same process as forks, but with repository.rngit.type set to mirror and an additional repository.rngit.upstream.sync timestamp tracking the last successful synchronization.
All Command-Line Options (rngit mirror)

usage: rngit mirror [-h] [--config CONFIG] [--rnsconfig RNSCONFIG]
[-i PATH] [-v] [-q] [--version]
source target

Reticulum Git Mirror Management

positional arguments:
source URL of source repository
target URL of target repository

options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-i, --identity PATH path to identity
-v, --verbose
-q, --quiet
--version show program's version number and exit
Automatic Mirror Synchronization

The rngit node can automatically keep mirrors synchronized with their upstream sources. This is configured in the main configuration file:

[rngit]
mirror_interval = 24
The mirror_interval specifies the synchronization interval in hours (default: 24). The node checks for mirrors needing sync every 15 minutes, and fetches updates from upstream if the configured interval has elapsed since the last sync.

For automatic sync to happen, the repository must have been created with rngit mirror. Sync failures are logged but do not prevent future retry attempts. The sync timestamp is only updated on successful completion.

Manual Synchronization

Both forks and mirrors can be manually synchronized on demand using the sync command:

$ rngit sync rns://50824b711717f97c2fb1166ceddd5ea9/public/myfork

Repository synced
This fetches all refs from the upstream source configured when the repository was created. You must have read and write permissions for the repository to perform a manual sync.

For mirrors, manual sync also updates the sync timestamp, effectively resetting the automatic sync timer.
All Command-Line Options (rngit sync)

usage: rngit sync [-h] [--config CONFIG] [--rnsconfig RNSCONFIG]
[-i PATH] [-v] [-q] [--version]
repository

Reticulum Git Repository Syncer

positional arguments:
repository URL of repository

options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-i, --identity PATH path to identity
-v, --verbose
-q, --quiet
--version show program's version number and exit