Monotone is a distributed version control system with tightly integrated cryptographic integrity and authenticity checks. This howto is not meant to be an exhaustive set of documentation on monotone (see their huge set of manuals and wiki for that), but merely a means to bootstrap Syndie developers.
If your primary goal is to pull the latest development code, there is little to no setup required:
mtn db init --db=./syndie.mtn
mtn genkey arbitrary@name
mtn --db=./syndie.mtn pull mtn.i2p-projekt.de "i2p.syndie"
mtn --db=./syndie.mtn checkout --branch="i2p.syndie" syndie
./syndie/
Whenever you want to pull any more changes, run step 4 again, and then go into
your monotone workspace (./syndie/
) and run mtn update
If you will be contributing to the codebase repeatedly you'll want to get
commit priviledges on the mtn.i2p-projekt.de
repository directly.
mtn genkey yournick@mail.i2p
mtn genkey yournick-transport@mail.i2p
cat >> ~/.monotone/monotonerc function get_branch_key (branchname) return "yournick@mail.i2p" end ^D
cat >> ~/.monotone/monotonerc function get_passphrase (keypair_id) if ("yournick@mail.i2p" == keypair_id) then return "the_author_passphrase" elseif ("yournick-transport@mail.i2p" == keypair_id) then return "the_transport_passphrase" else return false end end ^D
mtn pubkey yournick@mail.i2p > keys.txt ; mtn pubkey yournick-transport@mail.i2p >>keys.txt
Once the keys are authorized the transient nym will be granted write
permission to the mtn.i2p-projekt.de
repository.
Monotone development cheatsheet:
mtn sync mtn.i2p-projekt.de --branch="i2p.syndie"
mtn commit
CHANGES
file with a bullet point for each
substantial change above the most recent release. On the other hand,
if you are making a new release, include a date and version line in
CHANGES
, update VERSION
, as well as the version
numbers in doc/web/download.html
.mtn status
mtn diff
mtn add $filename
mtn drop $filename
mtn revert $path
mtn update
mtn log $filename
mtn heads
mtn tag $revision $tagname
mtn tag a8af872 syndie-0.912b
"). note that the revision
can be a short substring of the full revision id -
"a8af872" instead of "a8af872ccdc00b5995dd1c05f15d8912804bba99"mtn db kill_tag_locally $tagname
cvs tag -F
)