Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

CouchDB-based git server

branch: master


latest commit 55e73082a8
David Dollar authored September 15, 2009
Octocat-spinner-32 bin get rid of static testing noise September 14, 2009
Octocat-spinner-32 lib
Octocat-spinner-32 spec specs for protocol September 14, 2009
Octocat-spinner-32 .document Initial commit to git-db. September 12, 2009
Octocat-spinner-32 .gitignore Initial commit to git-db. September 12, 2009
Octocat-spinner-32 LICENSE Initial commit to git-db. September 12, 2009
Octocat-spinner-32 README.rdoc clarify setup docs September 14, 2009
Octocat-spinner-32 Rakefile update dependencies September 14, 2009
Octocat-spinner-32 VERSION Version bump to 0.2.0 September 14, 2009
Octocat-spinner-32 git-db.gemspec Regenerated gemspec for version 0.2.0 September 14, 2009


CouchDB-based git server, avoids the filesystem. (VERY ALPHA)


  • Install CouchDB on localhost, and start it up.

  • Install the gem

$ gem install ddollar-git-db
  • Create a git user. (Name can be whatever you like)

  • Set a home directory for the user.

  • Set up the git user's authorized_keys2 file: (modify the command to match your gem particulars)

# $HOME/git/.ssh/authorized_keys2
command="/usr/bin/git-db",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <your ssh public key>
  • Add your localhost as a remote to an existing project and push

$ git remote add test-git-db git@localhost:my-repo.git
$ git push test-git-db master
  • Go look at the data in CouchDB
  • Clone your repository somewhere else and examine it

$ git clone git@localhost:my-repo.git /tmp/my-repo
  • Please report any problems on the issue tracker.



  • Tests

  • Refactor and clean up (experimenting with binary protocols can make things a bit messy)

  • Authentication tie-in

  • Never look at a raw git pack file again

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history.

  • Send me a pull request. Bonus points for topic branches.


Copyright © 2009 David Dollar. See LICENSE for details.

Something went wrong with that request. Please try again.