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: