Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

CouchDB-based git server

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION
Octocat-spinner-32 git-db.gemspec
README.rdoc

git-db

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

Installation

  • 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

http://127.0.0.1:5984/_utils/database.html?gitdb-my-repo
  • 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.

Links

TODO

  • 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

Copyright © 2009 David Dollar. See LICENSE for details.

Something went wrong with that request. Please try again.