Skip to content

JonnyKong/GitSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dependencies

  • Git
  • MongoDB
  • ndn-cxx
  • NFD
  • PyNDN2
  • pymongo

Overview

GitSync contains 3 components: GitSync server deamon gitsync-daemon, Git remote helper git-remote-ndn and GitSync CLI client gitsync.

The server daemon is a daemon that runs background, managing repos and syncing up branches.

The remote helper is a middleware between git and gitsync-daemon. It receives push and pull commands from git, completes these requests by sending command Interests to gitsync-daemon and reports the result to git.

The CLI client provides an user interface to track a repo and create a branch.

Execution

This section shows an example on how to run GitSync locally.

# Start NFD
nfd-start

# Set multicast strategy
nfdc strategy set prefix /git strategy /localhost/nfd/strategy/multicast

# Start gitsync daemon with <command-prefix>
./gitsync-daemon <command-prefix>
# <command-prefix> is the prefix only used to send commands to this daemon

# Track a repo
./gitsync track-repo <repo-name>

# Create a branch with it custodian to be this node
./gitsync create-branch <repo-name> <branch-name>

# Add remote-url to local git repo
git remote add gitsync ndn::/git/<repo-name>

# Push local branch to daemon
git push gitsync <branch-name>

To connect to a different node, the only thing to do is configuring NFD.

nfdc face create udp://<other host>
nfdc route add /git <new-face>

# The following line is needed only when you want to push to a branch
# in the charge of that node
nfdc route add <new-node-command-prefix> <new-face>

About

Distributed Git over Named Data Networking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published