⚘ use your pds as a git remote if you want to ⚘
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

updated readme

notplants 898e7eec 0caa8bae

+43 -4
+43 -4
README.md
··· 1 1 # pds-git-remote 2 2 3 - A git remote helper that stores repositories on an [AT Protocol](https://atproto.com) Personal Data Server (PDS). Push, clone, and fetch git repos using `pds://` URLs — your code lives alongside your Bluesky data. 3 + This is not the most efficient way to do git, 4 + and is not meant as a replacement for [tangled](https://tangled.org/), 5 + or for anything really. 6 + 7 + However it seems to work, and it can be used by anyone with a PDS or a bluesky account, 8 + without installing anything additionally on their server. 9 + 10 + Tangled currently requires the use of a [knot server](https://tangled.org/tangled.org/core/blob/8dd9e59b99e83e757bcadf11a4bda31fc78e6732/docs/knot-hosting.md) 11 + as well as the use of ssh keys for git access 12 + (although from talking with the developers, there is some discussion of 13 + changing things in the future to allow authentication without ssh keys). 14 + 15 + pds-git-remote is a git remote helper that stores repositories on an [AT Protocol](https://atproto.com) Personal Data Server (PDS) directly. 16 + ```bash 17 + # log in to your PDS 18 + git-remote-pds auth login --pds-url https://your-pds.example.com --handle alice.example.com 19 + 20 + # push an existing repo 21 + cd my-project 22 + git remote add pds pds://alice.example.com/my-project 23 + git push pds main 24 + 25 + # clone it elsewhere 26 + git clone pds://alice.example.com/my-project 27 + ``` 4 28 5 29 Repositories are stored as chains of incremental [git bundles](https://git-scm.com/docs/git-bundle) uploaded as PDS blobs, tracked by a mutable state record. 6 30 7 - ## Quick start 31 + ## wip 32 + 33 + - I have done basic tests to confirm that it works, 34 + - the design and code could be reviewed 35 + - haven't done any benchmarking 36 + 37 + This was actually created as a subtask for a mostly unrelated project (more soon). 38 + 39 + ## git-ssb <3 40 + 41 + primary inspiration was git-ssb. another tool that may 42 + not have been the most efficient way to do git, 43 + but I really loved for multiple reasons ([link](https://scuttlebot.io/apis/community/git-ssb.html)) 44 + 45 + 46 + ## quickstart 8 47 9 48 ```bash 10 49 # build ··· 25 64 git clone pds://alice.example.com/my-project 26 65 ``` 27 66 28 - ## How it works 67 + ## how it works 29 68 30 69 Git invokes `git-remote-pds` automatically when it sees a `pds://` URL. The remote helper speaks git's [remote helper protocol](https://git-scm.com/docs/gitremote-helpers) over stdin/stdout. 31 70 ··· 93 132 # unit and integration tests (no PDS required) 94 133 cargo test 95 134 96 - # e2e tests (requires a running PDS — see below) 135 + # e2e tests (used via scripts with docker, see below) 97 136 cargo test --features e2e 98 137 ``` 99 138