Mercurial > hg > orthanc-book
annotate Sphinx/source/developers/repositories.rst @ 366:12f88a12d146
hostfingerprints
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 01 Apr 2020 08:49:06 +0200 |
parents | 022d59428ea3 |
children | 32d0a95bee7e |
rev | line source |
---|---|
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 .. _repositories: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 Accessing code repositories |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 =========================== |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 .. contents:: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 Context |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 ------- |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 The Orthanc server and most of its plugins are versioned using |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 `Mercurial <https://en.wikipedia.org/wiki/Mercurial>`__ on a |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 `self-hosted server <https://hg.orthanc-server.com/>`__. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 The Orthanc project started back in 2011, back in a time where |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 Mercurial and `Git <https://en.wikipedia.org/wiki/Git>`__ were equally |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 popular. Sébastien Jodogne, the original author of Orthanc, decided to |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 use Mercurial given the higher simplicity of its set of commands, and |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 given the fact it is safer to use for less experienced users. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 As pointed out on `Wikipedia |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 <https://en.wikipedia.org/wiki/Mercurial>`__, the *"Git vs. Mercurial |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 [debate] has become one of the holy wars of hacker culture."* We |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 certainly don't want to endure this debate in the context of the |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 Orthanc ecosystem. The fact is that a distributed revision-control |
340 | 27 was needed for Orthanc, and that both Git and Mercurial have a similar |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 set of features. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 If Orthanc were started in 2020, maybe we would have used Git, or |
340 | 31 maybe not. But the Orthanc ecosystem is not at all about versioning |
32 systems. We want to be entirely dedicated to lowering barriers to | |
33 entry in the field of medical imaging. As a consequence, the choice of | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 Mercurial should be considered as a part of the history, and we simply |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 ask people to accept it as a fact. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
37 Regarding the reason behind self-hosting, Orthanc was hosted on |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 `Google Code |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 <https://en.wikipedia.org/wiki/Google_Developers#Google_Code>`__ |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 between 2012 and 2015, until it was shutdown. In July 2015, Orthanc |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 was moved to `Bitbucket by Atlassian |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
42 <https://en.wikipedia.org/wiki/Bitbucket>`__. Unfortunately, in July |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 2019, Bitbucket announced that `Mercurial support would be dropped on |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 June 2020 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 <https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket>`__, |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 forcing us to deal with another migration. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 We are of course grateful to Google and Atlassian for having hosted |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 Orthanc during 8 years. However, we cannot afford the cost of |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 periodically coping with hosting migrations. We prefer to have a |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 simpler environment, yet under our full control. As a consequence, |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 starting Q2 2020, Orthanc is hosted using the official ``hg serve`` |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 tool. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 Accessing Mercurial |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 ------------------- |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 |
340 | 59 .. _hg-clone: |
60 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 Read-only access |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 ^^^^^^^^^^^^^^^^ |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 Anybody has full read-only access to all of the Orthanc official |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 repositories, on our `self-hosted server |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 <https://hg.orthanc-server.com/>`__. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 .. highlight:: bash |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 Locally cloning one of those Mercurial repositories (say, the main |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 ``orthanc`` repository) is as simple as typing:: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 |
362 | 73 $ hg clone https://hg.orthanc-server.com/orthanc/ |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 |
340 | 75 You can then use separate tools such as `TortoiseHg |
76 <https://en.wikipedia.org/wiki/TortoiseHg>`__ to browse the code with | |
77 richer features than the Web interface. | |
78 | |
366 | 79 .. highlight:: text |
80 | |
81 You might have to set up a host fingerprint in the Mercurial | |
82 configuration. Add the following lines to your ``~/.hgrc`` file:: | |
83 | |
84 [hostfingerprints] | |
85 hg.orthanc-server.com = fc:45:10:18:69:4d:a6:2b:22:fa:c0:81:f4:ee:eb:8e:ba:ae:54:90 | |
86 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 |
344 | 88 Note for Microsoft Windows |
89 .......................... | |
90 | |
91 .. highlight:: text | |
92 | |
93 On Microsoft Windows, while cloning the repository, you might face an | |
94 error similar to:: | |
95 | |
96 abort: error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661) | |
97 | |
98 In such a case, you must explicitly add the cryptographic fingerprint | |
99 of our code server. To this end, edit the `configuration file | |
100 <https://www.mercurial-scm.org/doc/hgrc.5.html#files>`__ of Mercurial | |
101 (by default, ``%USERPROFILE%\Mercurial.ini``), and add the following | |
102 lines:: | |
103 | |
104 [hostsecurity] | |
105 hg.orthanc-server.com:fingerprints=sha256:A1:75:3A:3F:20:74:C1:A6:C3:16:DD:EC:4C:67:74:C4:70:BE:E8:35:0A:0A:C7:2E:36:1F:49:8B:E2:60:61:73 | |
106 | |
107 .. highlight:: bash | |
108 | |
109 For reference, here is the command that was used to generate this | |
110 fingerprint (`click here for more information | |
111 <https://stackoverflow.com/a/56579497/881731>`__):: | |
112 | |
113 $ openssl s_client -connect hg.orthanc-server.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin | |
114 | |
115 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 Write access |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 ^^^^^^^^^^^^ |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 Only the core developers of Orthanc have direct write access to the |
342 | 120 Orthanc repositories (through SSH). Core developers can clone a |
121 repository with write access as follows:: | |
122 | |
362 | 123 $ hg clone ssh://hg@hg.orthanc-server.com/public/orthanc/ |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 |
340 | 126 .. _hg-contributing: |
127 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 Submitting code |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 ^^^^^^^^^^^^^^^ |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 We will of course be extremely grateful for receiving external code |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 contributions to the Orthanc repositories! |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 However, one of the weaknesses of our self-hosted infrastructure is |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 that is does not support automation for `pull requests |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 <https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests>`__. |
340 | 137 This section explains the `two accepted ways for communicating |
138 contributions | |
139 <https://www.mercurial-scm.org/wiki/CommunicatingChanges>`__: by | |
140 submitting a patch, or by exchanging a bundle. | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 Importantly, before any contribution can be accepted into the Orthanc |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 repositories, its author must sign a :ref:`CLA <cla>`. This allows |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 both the University Hospital of Liège and the Osimis company to act as |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 the official guardians of the whole Orthanc ecosystem. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 |
361 | 147 Also, make sure to read our :ref:`FAQ if submitting code |
148 <submitting_code>`. | |
149 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 |
340 | 151 .. _hg-patch: |
152 | |
153 Simple patch (import/export) | |
154 ............................ | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 .. highlight:: bash |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 If you want to propose a simple contribution, the most direct way of |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 passing it on the Orthanc community is by creating a **simple patch**. |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 First make sure to pull the latest version of the code repository, |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 then work on your modification in the ``default`` branch (i.e. in the |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 mainline code):: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 $ hg pull |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 $ hg up -c default |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 [...make your modifications...] |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 Once your contribution is done, here is how to export a patch:: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 $ hg export -r default > /tmp/contribution.patch |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 Once the patch is ready, you can send the ``/tmp/contribution.patch`` |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 file to the Orthanc community, e.g. by submitting it onto our official |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 `discussion group |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 <https://groups.google.com/forum/#!forum/orthanc-users>`__. The core |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 developers would reintegrate such a patch by typing the following |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
178 command on their side:: |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
179 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
180 $ hg pull |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
181 $ hg up -c default |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
182 $ hg import /tmp/contribution.patch |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
184 |
340 | 185 .. _hg-bundle: |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
186 |
340 | 187 Exchanging a bundle |
188 ................... | |
189 | |
190 .. highlight:: bash | |
191 | |
192 If your contribution is made of several changesets (commits), you | |
193 should work in a dedicated branch, then submit a Mercurial bundle for | |
194 this branch. | |
195 | |
196 First make sure to pull the latest version of the code repository, | |
197 then create a branch, say ``my-user/my-fix``, that derives from the | |
198 ``default`` branch (which corresponds to the mainline code):: | |
199 | |
200 $ hg pull | |
201 $ hg up -c default | |
202 $ hg branch my-user/my-fix | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
203 |
340 | 204 WARNING: Please chose an unique, explicit name for your branch, and |
205 make sure that your username is included within for traceability! The | |
206 name ``my-user/my-fix`` is only here for the purpose of the example. | |
207 | |
208 You can then do all the modifications as required (including ``hg | |
209 add``, ``hg rm``, and ``hg commit``) in the branch | |
210 ``my-user/my-fix``. When you're done, create a Mercurial bundle that | |
211 gathers all your changes against the source repository as follows:: | |
212 | |
213 $ hg commit -m 'submitting my fix' | |
214 $ hg bundle /tmp/contribution.bundle https://hg.orthanc-server.com/orthanc | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 |
340 | 216 Obviously, make sure to replace |
217 ``https://hg.orthanc-server.com/orthanc`` by the location of the | |
218 source repository. | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 |
340 | 220 Finally, you can submit the file ``/tmp/contribution.bundle`` to the |
221 community, just like for simple patches. Note that this procedure | |
222 inherently corresponds to the manual creation of a pull request. | |
223 | |
224 The core developers would reintegrate such a bundle into the mainline | |
225 by typing the following commands on their side:: | |
226 | |
227 $ cd /tmp | |
362 | 228 $ hg clone https://hg.orthanc-server.com/orthanc/ |
340 | 229 $ cd /tmp/orthanc |
230 $ hg unbundle /tmp/contribution.bundle | |
231 $ hg up -c default | |
232 $ hg merge my-user/my-fix | |
233 | |
339
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
234 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
235 Issue tracker |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
236 ------------- |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
237 |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
238 This is work-in-progress. Orthanc will most probably move to the |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
239 `Roundup issue tracker |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
240 <https://en.wikipedia.org/wiki/Roundup_(issue_tracker)>`__ that is |
c0a3cd1cabff
Accessing code repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 notably used by the Python community. |