Micron Document
Reticulum Manual 88/128

Git Over Reticulum (cont.)

Get changes from a remote repository:

$ git pull rns_remote master
Fork an existing repository from a remote to your rngit node:

$ rngit fork rns://8a37cdd16938ce79861561adbd59023a/reticulum/lxmf rns://50824b711717f97c2fb1166ceddd5ea9/public/myfork
All Command-Line Options (rngit)

usage: rngit.py [-h] [--config CONFIG] [--rnsconfig RNSCONFIG] [-s] [-i] [-v]
[-q] [--version]

Reticulum Git Repository Node

options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-p, --print-identity print identity and destination info and exit
-s, --service rngit is running as a service and should log to file
-i, --interactive drop into interactive shell after initialisation
-v, --verbose increase verbosity
-q, --quiet decrease verbosity
--version show program's version number and exit
All Command-Line Options (git-remote-rns)
The git-remote-rns helper is automatically invoked by Git when interacting with rns:// URLs. It is not typically run directly by users, but accepts the following environment variables for configuration:
RNGIT_CONFIG - Path to alternative client configuration directory
RNS_CONFIG - Path to alternative Reticulum configuration directory
The client configuration file is located at ~/.rngit/client_config and allows adjusting parameters such as the reference batch size for transfers.

Repository Creation & Management

The rngit utility provides several ways to create and manage repositories on a node: creating empty repositories, forking from existing repositories, and mirroring remote repositories.

Creating Empty Repositories

To create a new empty repository on a remote node:

$ rngit create rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo

Repository public/myrepo created
This creates a bare Git repository at the specified path. You must have create permission for the target group. When a repository is created, the creator automatically receives adm (admin) permissions on the repository through an auto-generated .allowed file.
All Command-Line Options (rngit create)

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

Reticulum Git Repository Creation

positional arguments:
repository URL of repository to create

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
Forking Repositories

Forking creates a copy of an existing repository (from any accessible Git URL) on your rngit node. Forks maintain a reference to their upstream source for later synchronization.

To fork a repository:

$ rngit fork https://github.com/user/original rns://50824b711717f97c2fb1166ceddd5ea9/public/myfork

Repository forked to public/myfork
The source can be any valid Git URL, including:
• HTTPS URLs: https://github.com/user/repo.git
• SSH URLs: ssh://git@host.com/repo.git
• Reticulum URLs: rns://DESTINATION_HASH/group/repo
Forks are created as bare repositories with metadata tracking their origin. The fork process: