Posts

First published: May 27, 2015, 11:53pm -0600
Last edited: May 27, 2015, 11:53pm -0600

git hostd

Sometimes I get stuck where I have a local git repo I want to collaborate with someone on, but I don’t want to go through the hassle of making a public GitHub repo, or setting up an SSH server or guest user on my laptop, or who knows. It’s just a temporary situation and git is distributed revision control, this should be easy!

So I made a little git plugin called git-hostd. You can find it at its project page on GitHub.

Installation

~$ go get github.com/jtolds/gitserve/cmd/git-hostd

Usage

Server computer:

~$ mkdir -p myrepo && cd myrepo
~/myrepo$ git init
Initialized empty Git repository in /home/jt/myrepo/.git/
~/myrepo$ touch newfile1
~/myrepo$ git add .
~/myrepo$ git commit -m 'first commit!'
[master (root-commit) 2266e76] first commit!
 0 files changed
 create mode 100644 newfile1
~/myrepo$ git hostd
2014/08/16 02:11:07 NOTE - listening on [::]:7022

Client computer:

~$ git clone ssh://localhost:7022/ myrepo2
Cloning into 'myrepo2'...
Welcome to the gitserve git-hostd code hosting tool!
Please see https://github.com/jtolds/gitserve for more info.

remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
~$ cd myrepo2
~/myrepo2$ touch newfile2
~/myrepo2$ git add newfile2
~/myrepo2$ git commit -m 'second commit!'
[master 043fcab] second commit!
 0 files changed
 create mode 100644 newfile2
~/myrepo2$ git push origin HEAD:refs/heads/mybranch
Welcome to the gitserve git-hostd code hosting tool!
Please see https://github.com/jtolds/gitserve for more info.

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 230 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To ssh://localhost:7022/
 * [new branch]      HEAD -> mybranch
~/myrepo2$

History

The project originally started as a library for building automatic coding competition systems hosted via git, so the git-submitd tool allows for pushes of code along with running checks. Less useful to most people.

Project links