This is an old revision of the document!
Table of Contents
Use Synchronet Git Repository
Synchronet uses Git for its Source Repository (as of August, 2020).
Clone
It is highly recommended to clone the Synchronet Git Repository into a directory other than the directory you are/will-be using for your live Synchronet BBS. The following steps clone the repository into the directory /sbbs/repo
, so if your Synchronet directory tree was located at /sbbs
, then the repository would be cloned to a sub-directory (folder) named repo
. This will result in duplicates of several Synchronet directories, e.g.
/sbbs/exec
and/sbbs/repo/exec
/sbbs/ctrl
and/sbbs/repo/ctrl
/sbbs/text
and/sbbs/repo/text
etc., once the BBS is installed, configured, and operational.
To clone the repository to your local system (into a directory named /sbbs/repo
) using unauthenticated HTTPS:
$ git clone https://gitlab.synchro.net/sbbs/sbbs.git /sbbs/repo
To clone the repository to your local system using SSH (your public key must be configured for your user account at gitlab.synchro.net
):
$ git clone git@gitlab.synchro.net:sbbs/sbbs.git /sbbs/repo
Mirrors
The Synchronet Source Repository is mirrored (e.g. for faster download/cloning) at:
Read-only Directories
If you do not plan to make significant changes to the contents of the exec
and text
directories, you can make their later update more seamless (e.g. upon git clone
) by either:
- Setting SCFG->System->Advanced Options->Exec Directory to
../repo/exec/
and Setting SCFG->Nodes->Node 1->Advanced Options->Text Directory to../repo/text
- Or (on *nix-like systems) symlinking
sbbs/repo/exec
tosbbs/exec
and the same fortext
.
This approach is feasible even for sysops that make changes to files in exec
and text
by using a local branch (i.e. merging in upstream changes from the master
branch), but that setup should be pursued only by experienced Git users.
Note:
If you do decide to change your configured exec
directory, be sure to update your SBBSEXEC
environment variable to point to the correct location too.
Create and Checkout a Branch
If you're going to make any changes to any files in the repo, you should first create a local branch. To create a local branch and check it out (make it the current branch):
$ git checkout -b <your-awesome-branch-name>
Merge Upstream Changes into Your Branch
To download the latest changes from the Synchronet repository and integrate (merge) with your changed files, while your branch is checked-out (run git status
if you're unsure):
$ git pull $ git merge master
Push Without Merge Commit
You attempt to push a set of commits and get the following error:
$ git push To gitlab.synchro.net:sbbs/sbbs.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@gitlab.synchro.net:sbbs/sbbs.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
To avoid a 'merge commit', do this (assuming you only made one commit before attempting the push):
$ git reset --soft HEAD~1 $ git pull
Then re-add/commit, and push your changes.
Push Without Password
If you're being prompted for your gitlab password when pushing changes to gitlab.synchro.net
, that's an indicator that you're using https
rather than ssh
(the default) for the Git communication protocol.
Make the following change to your sbbs/repo/.git/config
file:
[remote "origin"] url = git@gitlab.synchro.net:sbbs/sbbs
With that change, if your SSH public key is registered with your gitlab.synchro.net
user account, git
should automatically authenticate for push
requests.