public
Fork of ddollar/git-db
Description: CouchDB-based git server
Homepage: http://github.com/ddollar/git-db
Clone URL: git://github.com/schacon/git-db.git
git-db /
name age message
file .document Sat Sep 12 10:19:12 -0700 2009 Initial commit to git-db. [David Dollar]
file .gitignore Sat Sep 12 10:19:12 -0700 2009 Initial commit to git-db. [David Dollar]
file LICENSE Sat Sep 12 10:19:12 -0700 2009 Initial commit to git-db. [David Dollar]
file README.rdoc Mon Sep 14 08:41:04 -0700 2009 clarify setup docs [ddollar]
file Rakefile Mon Sep 14 09:09:42 -0700 2009 update dependencies [David Dollar]
file VERSION Mon Sep 14 11:37:46 -0700 2009 Version bump to 0.2.0 [David Dollar]
directory bin/ Mon Sep 14 09:17:21 -0700 2009 get rid of static testing noise [David Dollar]
file git-db.gemspec Mon Sep 14 11:37:47 -0700 2009 Regenerated gemspec for version 0.2.0 [David Dollar]
directory lib/ Mon Sep 14 11:37:35 -0700 2009 specs for protocol [David Dollar]
directory spec/ Mon Sep 14 11:37:35 -0700 2009 specs for protocol [David Dollar]
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.