# GitSync **Repository Path**: pinetsim/GitSync ## Basic Information - **Project Name**: GitSync - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-26 - **Last Updated**: 2021-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 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. ```bash # Start NFD nfd-start # Set multicast strategy nfdc strategy set prefix /git strategy /localhost/nfd/strategy/multicast # Start gitsync daemon with ./gitsync-daemon # is the prefix only used to send commands to this daemon # Track a repo ./gitsync track-repo # Create a branch with it custodian to be this node ./gitsync create-branch # Add remote-url to local git repo git remote add gitsync ndn::/git/ # Push local branch to daemon git push gitsync ``` To connect to a different node, the only thing to do is configuring NFD. ```bash nfdc face create udp:// nfdc route add /git # The following line is needed only when you want to push to a branch # in the charge of that node nfdc route add ```