# # # patch "wiki/SelfHostingInfo.mdwn" # from [0f3fae0504c66506fff8b088bcf6f3403bde78a9] # to [84bfa714c8e2ef2d8425b79b63f69e2604ea9f23] # ============================================================ --- wiki/SelfHostingInfo.mdwn 0f3fae0504c66506fff8b088bcf6f3403bde78a9 +++ wiki/SelfHostingInfo.mdwn 84bfa714c8e2ef2d8425b79b63f69e2604ea9f23 @@ -1,76 +1,104 @@ [[!tag migration-done]] # Self Hosting -Monotone development is self-hosting. This means that once you have a copy of monotone, you can use it to track the development of monotone from your own machine, rather than using CVS. +Monotone development is self-hosting. This means that once you have a +copy of monotone, you can use it to track the development of monotone +from your own machine, rather than using CVS. ## Using my netsync server -I have set up a netsync server (a copy of monotone serving the netsync protocol) which I will store my own versions of monotone in, including releases and merges from other people and whatnot. This can be read by anyone, but only I (and, well, perhaps a couple other people if they ask nicely) can add things to it, since it's mine. If you want to develop monotone yourself, you should try to make your own server for hosting your own changes (see later on). Setting yourself up to read from my server is pretty simple. Just follow these three steps: +I have set up a netsync server (a copy of monotone serving the +netsync protocol) which I will store my own versions of monotone in, +including releases and merges from other people and whatnot. This can +be read by anyone, but only I (and, well, perhaps a couple other +people if they ask nicely) can add things to it, since it's mine. If +you want to develop monotone yourself, you should try to make your own +server for hosting your own changes (see later on). Setting yourself +up to read from my server is pretty simple. Just follow these three +steps: 1. Get or build a copy of the most recent monotone release. - 1. Initialize a database, which is just a regular file you'll store versions and certificates into. -
-$ mtn --db=mtn.db db init
-  
- 1. Run this command, you should get something similar to these results: -
-$ mtn --db=mtn.db pull monotone.ca "net.venge.monotone*"
-mtn: setting default server to monotone.ca
-mtn: setting default branch include pattern to 'net.venge.monotone*'
-mtn: setting default branch exclude pattern to ''
-mtn: doing anonymous pull; use -kKEYNAME if you need authentication
-mtn: connecting to monotone.ca
-mtn: first time connecting to server monotone.ca
-mtn: I'll assume it's really them, but you might want to double-check
-mtn: their key's fingerprint: 3e6f5225bc2fffacbc20c9de37ff2dae1e20892e
-mtn: warning: saving public key for address@hidden to database
-mtn: finding items to synchronize:
-mtn: bytes in | bytes out | certs in | revs in
-mtn:   36.1 k |       480 |        0 |       0
-mtn: bytes in | bytes out |    certs in |     revs in
-mtn:   86.4 M |       528 | 50445/50445 | 12557/12557
-mtn: successful exchange with monotone.ca
-  
+ 1. Initialize a database, which is just a regular file you'll store + versions and certificates into. - Note the key fingerprint in that output; you may wish to verify that it really is `3e6f5225bc2fffacbc20c9de37ff2dae1e20892e`. + $ mtn --db=mtn.db db init - /!\ In case monotone.ca is down, you could try one of these alternative servers that sync to each other regularly: + 1. Run this command, you should get something similar to these + results: + + $ mtn --db=mtn.db pull monotone.ca "net.venge.monotone*" + mtn: setting default server to monotone.ca + mtn: setting default branch include pattern to 'net.venge.monotone*' + mtn: setting default branch exclude pattern to '' + mtn: doing anonymous pull; use -kKEYNAME if you need authentication + mtn: connecting to monotone.ca + mtn: first time connecting to server monotone.ca + mtn: I'll assume it's really them, but you might want to double-check + mtn: their key's fingerprint: 3e6f5225bc2fffacbc20c9de37ff2dae1e20892e + mtn: warning: saving public key for address@hidden to database + mtn: finding items to synchronize: + mtn: bytes in | bytes out | certs in | revs in + mtn: 36.1 k | 480 | 0 | 0 + mtn: bytes in | bytes out | certs in | revs in + mtn: 86.4 M | 528 | 50445/50445 | 12557/12557 + mtn: successful exchange with monotone.ca + + Note the key fingerprint in that output; you may wish to verify that + it really is `3e6f5225bc2fffacbc20c9de37ff2dae1e20892e`. + + /!\ In case monotone.ca is down, you could try one of these + alternative servers that sync to each other regularly: + [[!table data=""" server|fingerprint monotone.mtn-host.prjek.net|`a52f85615cb2445989f525bf17a603250381a751` 204.152.190.23|`fee080c8906fc3a9a601587807df0a5088a3fdd8`"""]] - This is your initial pull so it will take a bit of time, as it has to transfer a few megabytes of history to you. Subsequent pulls will be much faster. When you're done pulling you can take a look at the heads of the branch you picked up. You should get something like this (though with a different head version, different author, etc.): -
-$ mtn --db=mtn.db --branch=net.venge.monotone heads
-mtn: branch 'net.venge.monotone' is currently merged:
-d947ac9f47d3c3e61af60822cbf0491ae69b2bef address@hidden 2006-08-14 T12:29:35
-  
+ This is your initial pull so it will take a bit of time, as it has + to transfer a few megabytes of history to you. Subsequent pulls will + be much faster. When you're done pulling you can take a look at the + heads of the branch you picked up. You should get something like + this (though with a different head version, different author, etc.): - You can now look at the certs on a particular version; we will use the version tagged as monotone-0.28: -
-    $ mtn --db=mtn.db ls certs t:monotone-0.28
-    mtn: expanding selection 't:monotone-0.28'
-    mtn: expanded to '8c6ce7cb2ccd21290b435e042c2be4554ec6a048'
-    ...
-  
+ $ mtn --db=mtn.db --branch=net.venge.monotone heads + mtn: branch 'net.venge.monotone' is currently merged: + d947ac9f47d3c3e61af60822cbf0491ae69b2bef address@hidden 2006-08-14 T12:29:35 + + You can now look at the certs on a particular version; we will use + the version tagged as monotone-0.28: + + $ mtn --db=mtn.db ls certs t:monotone-0.28 + mtn: expanding selection 't:monotone-0.28' + mtn: expanded to '8c6ce7cb2ccd21290b435e042c2be4554ec6a048' + ... + And you can also check out that version: -
-$ mtn --db=mtn.db checkout -r t:monotone-0.28 monotone
-mtn: expanding selection 't:monotone-0.28'
-mtn: expanded to '8c6ce7cb2ccd21290b435e042c2be4554ec6a048'
-  
- 1. That's it, you're done! You will now find yourself with a checked out working copy in the directory monotone, which you can edit, merge, commit, etc. In the future, you can pull new versions from my server and update your working copy from your database using this pair of commands: -
-$ cd monotone ...
-$ mtn pull ...
-$ mtn update ...
-  
+ $ mtn --db=mtn.db checkout -r t:monotone-0.28 monotone + mtn: expanding selection 't:monotone-0.28' + mtn: expanded to '8c6ce7cb2ccd21290b435e042c2be4554ec6a048' + 1. That's it, you're done! You will now find yourself with a checked + out working copy in the directory monotone, which you can edit, + merge, commit, etc. In the future, you can pull new versions from my + server and update your working copy from your database using this + pair of commands: + + $ cd monotone ... + $ mtn pull ... + $ mtn update ... + ## Making your own server -Setting up your own server is covered in the [[Network_Service_Revisted|monotone.html#Network-Service-Revisited]] section of the documentation. Once you have your own server running, if you want me to fetch changes directly from it (and merge them with my monotone versions) you should send an email with your server's host name, collection name, and public key, to the mailing list. +Setting up your own server is covered in the +[[Network_Service_Revisted|monotone.html#Network-Service-Revisited]] +section of the documentation. Once you have your own server running, +if you want me to fetch changes directly from it (and merge them with +my monotone versions) you should send an email with your server's host +name, collection name, and public key, to the mailing list. +If you have difficulty setting up a server, or are feeling lazy and +would like us to host one for you, send an email to the list. For +projects of a reasonable size, or if you just want to play around, +we'd be happy to host an extra server for you. -If you have difficulty setting up a server, or are feeling lazy and would like us to host one for you, send an email to the list. For projects of a reasonable size, or if you just want to play around, we'd be happy to host an extra server for you.