| author | haftmann | 
| Wed, 11 Mar 2009 15:56:50 +0100 | |
| changeset 30448 | 0c7e1578036c | 
| parent 30182 | db768c888dfa | 
| child 32361 | 141e5151b918 | 
| permissions | -rw-r--r-- | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
1  | 
Important notes on Mercurial repository access for Isabelle  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
2  | 
===========================================================  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
3  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
4  | 
Preamble  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
5  | 
--------  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
6  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
7  | 
Mercurial http://www.selenic.com/mercurial belongs to a new generation  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
8  | 
of source code management systems, following the paradigm of  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
9  | 
"distributed version control". Compared to the old centralized model  | 
| 28913 | 10  | 
of CVS or SVN, this gives considerable more power and freedom in  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
11  | 
organizing the flow of changes, both between individual developers and  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
12  | 
designated pull/push areas that are shared with others.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
13  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
14  | 
More power for the user also means more responsibility! Due to its  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
15  | 
decentralized nature, changesets that have been published once,  | 
| 28913 | 16  | 
e.g. via "push" to a shared repository that is visible on the net,  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
17  | 
cannot be easily retracted from the public again. Regular Mercurial  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
18  | 
operations are strictly monotonic, where changset transactions are  | 
| 28913 | 19  | 
only added, but never deleted. There are special tools to manipulate  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
20  | 
individual repositories via non-monotonic actions, but this does not  | 
| 28913 | 21  | 
yet retrieve any changesets that have escaped into the public by  | 
22  | 
accident.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
23  | 
|
| 28918 | 24  | 
Only global operations like "pull" and "push" fall into this critical  | 
25  | 
category. Note that "incoming" / "outgoing" allow to inspect  | 
|
26  | 
changesets before exchanging them globally. Anything else in  | 
|
27  | 
Mercurial is local to the user's repository clone (including "commit",  | 
|
28  | 
"update", "merge" etc.) and is in fact much simpler and safer to use  | 
|
29  | 
than the corresponding operations of CVS or SVN.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
30  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
31  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
32  | 
Initial configuration  | 
| 29481 | 33  | 
---------------------  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
34  | 
|
| 30182 | 35  | 
Always use Mercurial versions from the 1.0 or 1.1 branch, or later.  | 
| 28913 | 36  | 
The old 0.9.x versions do not work in a multi-user environment with  | 
| 30182 | 37  | 
shared file spaces!  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
38  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
39  | 
|
| 28913 | 40  | 
The official Isabelle repository can be cloned like this:  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
41  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
42  | 
hg clone http://isabelle.in.tum.de/repos/isabelle  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
43  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
44  | 
This will create a local directory "isabelle", unless an alternative  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
45  | 
name is specified. The full repository meta-data and history of  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
46  | 
changes is in isabelle/.hg; local configuration for this clone can be  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
47  | 
added to isabelle/.hg/hgrc, but note that hgrc files are never copied  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
48  | 
by another clone operation!  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
49  | 
|
| 28917 | 50  | 
|
| 28913 | 51  | 
There is also $HOME/.hgrc for per-user Mercurial configuration. The  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
52  | 
initial configuration should include at least an entry to identify  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
53  | 
yourself. For example, something like this in /home/wenzelm/.hgrc:  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
54  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
55  | 
[ui]  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
56  | 
username = wenzelm  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
57  | 
|
| 28917 | 58  | 
Of course, the user identity can be also configured in  | 
| 28918 | 59  | 
isabelle/.hg/hgrc on per-repository basis. Failing to specify the  | 
| 28917 | 60  | 
username correctly makes the system invent funny machine names that  | 
61  | 
may persist indefinitely in the public flow of changesets.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
62  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
63  | 
In principle, user names can be chosen freely, but for longterm  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
64  | 
committers of the Isabelle repository the obvious choice is to keep  | 
| 30182 | 65  | 
with the old CVS naming scheme. Others should use their regular "full  | 
66  | 
name"; including an email address is optional.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
67  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
68  | 
|
| 28913 | 69  | 
There are other useful configuration to go into $HOME/.hgrc,  | 
70  | 
e.g. defaults for common commands:  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
71  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
72  | 
[defaults]  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
73  | 
log = -l 10  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
74  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
75  | 
The next example shows how to install some Mercurial extension:  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
76  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
77  | 
[extensions]  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
78  | 
hgext.graphlog =  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
79  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
80  | 
Now the additional glog command will be available.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
81  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
82  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
83  | 
See also the fine documentation for further details, especially the  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
84  | 
book http://hgbook.red-bean.com/  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
85  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
86  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
87  | 
Shared pull/push access  | 
| 29481 | 88  | 
-----------------------  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
89  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
90  | 
The entry point http://isabelle.in.tum.de/repos/isabelle is world  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
91  | 
readable, both via plain web browsing and the hg client as described  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
92  | 
above. Anybody can produce a clone, change it arbitrarily, and then  | 
| 28913 | 93  | 
use regular mechanisms of Mercurial to report changes upstream, say  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
94  | 
via e-mail to someone with write access to that file space. It is  | 
| 28913 | 95  | 
also quite easy to publish changed clones again on the web, using the  | 
96  | 
adhoc command "hg serve -v", or the hgweb.cgi or hgwebdir.cgi scripts  | 
|
97  | 
that are included in the Mercurial distribution.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
98  | 
|
| 28913 | 99  | 
The downstream/upstream mode of operation is quite common in the  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
100  | 
distributed version control community, and works well for occasional  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
101  | 
changes produced by anybody out there. Of course, upstream  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
102  | 
maintainers need to review and moderate changes being proposed, before  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
103  | 
pushing anything onto the official Isabelle repository at TUM.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
104  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
105  | 
|
| 28913 | 106  | 
Write access to the Isabelle repository requires an account at TUM,  | 
107  | 
with properly configured ssh access to the local machines  | 
|
108  | 
(e.g. macbroy20, atbroy100). You also need to be a member of the  | 
|
109  | 
"isabelle" Unix group.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
110  | 
|
| 28913 | 111  | 
Sharing a locally modified clone then works as follows, using your  | 
112  | 
user name instead of "wenzelm":  | 
|
113  | 
||
114  | 
hg out ssh://wenzelm@atbroy100//home/isabelle-repository/repos/isabelle  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
115  | 
|
| 28913 | 116  | 
In fact, the "out" or "outgoing" command performs only a dry run: it  | 
117  | 
displays the changesets that would get published. An actual "push",  | 
|
118  | 
with a lasting effect on the Isabelle repository, works like this:  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
119  | 
|
| 28913 | 120  | 
hg push ssh://wenzelm@atbroy100//home/isabelle-repository/repos/isabelle  | 
121  | 
||
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
122  | 
|
| 28913 | 123  | 
Default paths for push and pull can be configure in isabelle/.hg/hgrc,  | 
124  | 
for example:  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
125  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
126  | 
[paths]  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
127  | 
default = ssh://wenzelm@atbroy100//home/isabelle-repository/repos/isabelle  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
128  | 
|
| 28913 | 129  | 
Now "hg pull" or "hg push" will use that shared file space, unless a  | 
130  | 
different URL is specified explicitly.  | 
|
131  | 
||
132  | 
When cloning a repository, the default path is set to the initial  | 
|
133  | 
source URL. So we could have cloned via that ssh URL in the first  | 
|
134  | 
place, to get exactly to the same point:  | 
|
135  | 
||
136  | 
hg clone ssh://wenzelm@atbroy100//home/isabelle-repository/repos/isabelle  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
137  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
138  | 
|
| 30182 | 139  | 
Simplified merges  | 
140  | 
-----------------  | 
|
141  | 
||
142  | 
The main idea of Mercurial is to let individual users produce  | 
|
143  | 
independent branches of development first, but merge with others  | 
|
144  | 
frequently. The basic hg merge operation is more general than  | 
|
145  | 
required for the mode of operation with a shared pull/push area. The  | 
|
146  | 
hg fetch extension accommodates this case nicely, automating trivial  | 
|
147  | 
merges and requiring manual intervention for actual conflicts only.  | 
|
148  | 
||
149  | 
The fetch extension can be configured via the user's ~/.hgrc like  | 
|
150  | 
this:  | 
|
151  | 
||
152  | 
[extensions]  | 
|
153  | 
hgext.fetch =  | 
|
154  | 
||
155  | 
[defaults]  | 
|
156  | 
fetch = -m "merged"  | 
|
157  | 
||
158  | 
Note that the potential for merge conflicts can be greatly reduced by  | 
|
159  | 
doing "hg fetch" before any starting local changes!  | 
|
160  | 
||
161  | 
||
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
162  | 
Content discipline  | 
| 29481 | 163  | 
------------------  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
164  | 
|
| 28913 | 165  | 
Old-style centralized version control is occasionally compared to "a  | 
166  | 
library where everybody scribbles into the books". Or seen the other  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
167  | 
way round, the centralized model discourages individual  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
168  | 
experimentation (with local branches etc.), because everything is  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
169  | 
forced to happen on a shared file space. With Mercurial, arbitrary  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
170  | 
variations on local clones are no problem, but care is required again  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
171  | 
when publishing changes eventually.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
172  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
173  | 
The following principles should be kept in mind when producing  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
174  | 
changesets that might become public at some point.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
175  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
176  | 
* The author of changes should be properly identified, using  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
177  | 
ui/username configuration as described above.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
178  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
179  | 
While Mercurial also provides means for signed changesets, we want  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
180  | 
to keep things simple and trust that users specify their identity  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
181  | 
correctly.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
182  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
183  | 
* The history of sources is an integral part of the sources  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
184  | 
themselves. This means that private experiments and branches  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
185  | 
should not be published, unless they are really meant to become  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
186  | 
universally available.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
187  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
188  | 
Note that exchanging local experiments with some other users can  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
189  | 
be done directly on peer-to-peer basis, without affecting the  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
190  | 
central pull/push area.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
191  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
192  | 
* Log messages are an integral part of the history of sources.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
193  | 
Other users will have to look there eventually, to understand why  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
194  | 
things have been done in a certain way at some point.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
195  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
196  | 
Mercurial provides nice web presentation of incoming changes with  | 
| 28908 | 197  | 
a digest of log entries; this also includes RSS/Atom news feeds.  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
198  | 
Users should be aware that others will actually read what is  | 
| 30182 | 199  | 
written into log messages. There are also add-on browsers,  | 
200  | 
notably hgtk that is part of the TortoiseHg distribution and works  | 
|
201  | 
for generic Python/GTk platforms.  | 
|
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
202  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
203  | 
The usual changelog presentation style for the Isabelle repository  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
204  | 
admits log entries that consist of several lines, but without the  | 
| 28913 | 205  | 
special headline that is used in Mercurial projects elsewhere.  | 
| 
28907
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
206  | 
Since some display styles strip newlines from text, it is  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
207  | 
advisable to separate lines via punctuation, and not rely on  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
208  | 
two-dimensional presentation too much.  | 
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
209  | 
|
| 
 
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
 
wenzelm 
parents:  
diff
changeset
 | 
210  | 
|
| 28908 | 211  | 
Building Isabelle from the repository version  | 
| 29481 | 212  | 
---------------------------------------------  | 
| 28908 | 213  | 
|
| 28910 | 214  | 
Compared to a proper distribution or development snapshot, a  | 
| 28913 | 215  | 
repository version of Isabelle lacks textual version identifiers in  | 
216  | 
some sources and scripts, and various components produced by  | 
|
217  | 
Admin/build are missing. After applying that script with suitable  | 
|
218  | 
arguments, the regular user instructions for building and running  | 
|
219  | 
Isabelle from sources apply.  | 
|
| 28908 | 220  | 
|
| 28913 | 221  | 
Needless to say, the results from the build process must not be added  | 
222  | 
to the repository!  |