Trac is being migrated to new services! Issues can be found in our new
YouTrack instance and WIKI pages can be found on our
website.
- Timestamp:
-
Jul 6, 2012, 9:35:05 PM (12 years ago)
- Author:
-
datallah
- Comment:
-
Further tweaks - remove the explicit ssh based cloning instructions because it's better for people to clone over http.
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v11
|
v12
|
|
27 | 27 | {{{ |
28 | 28 | [diff] |
29 | | git = 1 |
| 29 | git = True |
30 | 30 | |
31 | 31 | [defaults] |
… |
… |
|
44 | 44 | |
45 | 45 | === SSH-based Push/Pull === |
46 | | You can get your initial checkouts from Mercurial by: |
47 | | * With SSH config above: `hg clone ssh://hg.pidgin.im/path/to/repo` |
48 | | * Without SSH config above: `hg clone ssh://hg@hg.pidgin.im/path/to/repo` |
| 46 | You can get your initial checkouts from Mercurial using the [wiki:"UsingPidginMercurial#PublicRead-onlyAccess" Public Read-only Access] instructions. |
49 | 47 | |
50 | | Once initial clones are done, pulls are a simple matter of running `hg pull` within your working copy. You may optionally add `-u` to have your checkout automatically updated if possible. |
51 | | |
52 | | Alternatively, you can clone the repository via http and add a `default-push` line to the `[paths]` section of the repository's `.hg/hgrc` file (you'll need to use the `hg@` prefix if you haven't set it via the SSH config): |
| 48 | The configuration of the server is such that pushes can only be performed via SSH, so you'll want to add a `default-push` line to the `[paths]` section of the repository's `.hg/hgrc` file (you'll need to use the `hg@` prefix if you haven't set it via the SSH config): |
53 | 49 | {{{ |
| 50 | [paths] |
54 | 51 | default-push = ssh://hg.pidgin.im/path/to/repo |
55 | 52 | }}} |
56 | 53 | |
57 | | Pushes are a simple matter of `hg push` within your working copy. If you need to push a new repository, you must clone: |
58 | | * With SSH config above: `hg clone . ssh://hg.pidgin.im/path/to/repo` in working copy |
59 | | * Without SSH config above: `hg clone . ssh://hg@hg.pidgin.im/path/to/repo` in working copy |
| 54 | Once initial clones are done, pulls are a simple matter of running `hg pull` within your working copy. You may optionally use `hg pull -u` to have your checkout automatically updated if possible. |
| 55 | |
| 56 | Alternatively, you can clone the repository via ssh using the URI in the `default-push` settings above if http access is problematic for some reason |
| 57 | |
| 58 | Pushes to existing repositories are a simple matter of `hg push` within your working copy. |
| 59 | Creating a new repository on the server must be done using `hg clone`: |
| 60 | * `hg clone . ssh://hg.pidgin.im/path/to/repo` in working copy |
| 61 | * (you'll need to use the `hg@` prefix if you haven't set it via the SSH config) |
60 | 62 | |
61 | 63 | == Administration == |
62 | 64 | |
63 | 65 | === Access Control === |
64 | | Access control on Pidgin's Mercurial server is strict. The repositories are structured like so (developers/CPW's listed here are for the purpose of example): |
| 66 | Access control on Pidgin's Mercurial server is such that repositories. The repositories are structured like so (developers/CPW's listed here are for the purpose of example): |
65 | 67 | |
66 | 68 | {{{ |
67 | 69 | hg.pidgin.im # Mercurial server |
68 | 70 | + pidgin # "Official" Pidgin and libpurple repositories |
69 | | | + main # replaced im.pidgin.pidgin in Monotone |
70 | | | + 2_x_y # replaced im.pidgin.pidgin.2.x.y in Monotone |
| 71 | | + main # replaced im.pidgin.pidgin, im.pidgin.pidgin.2.x.y in Monotone |
71 | 72 | + dev # Developers' repositories |
72 | 73 | | + darkrain # for all repositories darkrain wishes to create |
… |
… |
|
96 | 97 | * Crazy Patch Writers can create and modify repositories in `cpw/$NICKNAME/*` |
97 | 98 | * Summer of Code students can create and modify repositories in `soc/$YEAR/$NICKNAME/*` |
98 | | * All of the above have read access to any repository on the server. |
| 99 | * Public Read-only access is available for any repository on the server. |
99 | 100 | * Those people with "root" access can do anything to any repository. This access is strictly controlled. |
100 | 101 | |
… |
… |
|
117 | 118 | As indicated above, people who have "root" access to mercurial-server have the ability to configure the server via the `hgadmin` repo. They also have the ability to bypass all ACL's, and thus can write to any repository, including developers', CPWs', and SoC students' repositories. |
118 | 119 | |
119 | | Additionally, there is a safety net built into the mercurial-server configuration. In `/etc/mercurial-server` on rock.pidgin.im is a default ACL (`access.conf`) and a `keys` directory structure. This default ACL is what grants "root" users their privileges, and the `keys` directory structure contains two keys in the `keys/root` directory. These two keys belong to rekkanoryo and lschiere. These keys are located here in the server's filesystem instead of in the hgadmin repository as a safety net. When building the files used by mercurial-server, the tools ''always'' read from `/etc/mercurial-server` ''before'' reading from `hgadmin`; this allows rekkanoryo and lschiere to always be able to access the hgadmin repo in the event that it is damaged either through accidental or intentional means. This safety net means that at least two people will ''always'' have access to our repositories. |
| 120 | Additionally, there is a safety net built into the mercurial-server configuration. In `/etc/mercurial-server` on rock.pidgin.im is a default ACL (`access.conf`) and a `keys` directory structure. This default ACL is what grants "root" users their privileges, and the `keys` directory structure contains the relevant keys in the `keys/root` directory. These keys are located here in the server's filesystem instead of in the hgadmin repository as a safety net. When building the files used by mercurial-server, the tools ''always'' read from `/etc/mercurial-server` ''before'' reading from `hgadmin`; this allows access to the hgadmin repo in the event that it is damaged either through accidental or intentional means. This safety net means that at least two people will ''always'' have access to our repositories. |
120 | 121 | |
121 | 122 | == Hooks / Extensions == |
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!