author | wenzelm |
Fri, 28 Sep 2012 23:02:39 +0200 | |
changeset 49651 | c7585f8addc2 |
parent 49443 | 75633efcc70d |
child 50281 | cbba16084784 |
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 |
|
49348 | 4 |
Quick start in 20min |
5 |
-------------------- |
|
6 |
||
49443 | 7 |
1. Ensure that "hg" (Mercurial) is installed; see also |
8 |
http://www.selenic.com/mercurial |
|
49348 | 9 |
|
10 |
2. Create file $HOME/.isabelle/etc/settings and insert the following |
|
11 |
line near its beginning: |
|
12 |
||
13 |
init_components "$HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/main" |
|
14 |
||
15 |
3. Execute shell commands as follows: |
|
16 |
||
17 |
hg clone http://isabelle.in.tum.de/repos/isabelle |
|
18 |
||
19 |
./isabelle/bin/isabelle components -a |
|
20 |
||
21 |
./isabelle/bin/isabelle build -b HOL |
|
22 |
||
23 |
./isabelle/bin/isabelle jedit |
|
24 |
||
25 |
||
40601 | 26 |
Introduction |
27 |
------------ |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
28 |
|
40601 | 29 |
Mercurial http://www.selenic.com/mercurial belongs to the current |
30 |
generation of source code management systems that follow the so-called |
|
31 |
paradigm of "distributed version control". This is a terrific name |
|
32 |
for plain revision control without the legacy of CVS or SVN. See also |
|
33 |
http://hginit.com/ for an introduction to the main ideas. The |
|
34 |
Mercurial book http://hgbook.red-bean.com/ explains many more details. |
|
35 |
||
36 |
Mercurial offers great flexibility in organizing the flow of changes, |
|
37 |
both between individual developers and designated pull/push areas that |
|
38 |
are shared with others. This additional power demands some additional |
|
39 |
responsibility to maintain a certain development process that fits to |
|
40 |
a particular project. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
41 |
|
40601 | 42 |
Regular Mercurial operations are strictly monotonic, where changeset |
43 |
transactions are only added, but never deleted. There are special |
|
44 |
tools to manipulate repositories via non-monotonic actions (such as |
|
45 |
"rollback" or "strip"), but recovering from gross mistakes that have |
|
46 |
escaped into the public can be hard and embarrassing. It is much |
|
47 |
easier to inspect and amend changesets routinely before pushing. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
48 |
|
40601 | 49 |
The effect of the critical "pull" / "push" operations can be tested in |
50 |
a dry run via "incoming" / "outgoing". The "fetch" extension includes |
|
51 |
useful sanity checks beyond raw "pull" / "update" / "merge". Most |
|
52 |
other operations are local to the user's repository clone. This gives |
|
53 |
some freedom for experimentation without affecting anybody else. |
|
54 |
||
55 |
Mercurial provides nice web presentation of incoming changes with a |
|
56 |
digest of log entries; this also includes RSS/Atom news feeds. There |
|
47449 | 57 |
are add-on history browsers such as "hg view" and TortoiseHg. Unlike |
58 |
the default web view, some of these tools help to inspect the semantic |
|
59 |
content of non-trivial merge nodes. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
60 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
61 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
62 |
Initial configuration |
29481 | 63 |
--------------------- |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
64 |
|
28913 | 65 |
The official Isabelle repository can be cloned like this: |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
66 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
67 |
hg clone http://isabelle.in.tum.de/repos/isabelle |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
68 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
69 |
This will create a local directory "isabelle", unless an alternative |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
70 |
name is specified. The full repository meta-data and history of |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
71 |
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
|
72 |
added to isabelle/.hg/hgrc, but note that hgrc files are never copied |
40601 | 73 |
by another clone operation. |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
74 |
|
28917 | 75 |
|
28913 | 76 |
There is also $HOME/.hgrc for per-user Mercurial configuration. The |
40601 | 77 |
initial configuration requires at least an entry to identify yourself |
78 |
as follows: |
|
28907
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 |
[ui] |
40601 | 81 |
username = XXX |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
82 |
|
40601 | 83 |
Isabelle contributors are free to choose either a short "login name" |
84 |
(for accounts at TU Munich) or a "full name" -- with or without mail |
|
85 |
address. It is important to stick to this choice once and for all. |
|
86 |
The machine default that Mercurial produces for unspecified |
|
87 |
[ui]username is not appropriate. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
88 |
|
40601 | 89 |
Such configuration can be given in $HOME/.hgrc (for each home |
90 |
directory on each machine) or in .hg/hgrc (for each repository clone). |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
91 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
92 |
|
40601 | 93 |
Here are some further examples for hgrc. This is how to provide |
94 |
default options for common commands: |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
95 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
96 |
[defaults] |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
97 |
log = -l 10 |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
98 |
|
40601 | 99 |
This is how to configure some extension, which is called "graphlog" |
100 |
and provides the "glog" command: |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
101 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
102 |
[extensions] |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
103 |
hgext.graphlog = |
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 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
106 |
Shared pull/push access |
29481 | 107 |
----------------------- |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
108 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
109 |
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
|
110 |
readable, both via plain web browsing and the hg client as described |
40601 | 111 |
above. Anybody can produce a clone, change it locally, and then use |
112 |
regular mechanisms of Mercurial to report changes upstream, say via |
|
113 |
mail to someone with write access to that file space. It is also |
|
114 |
quite easy to publish changed clones again on the web, using the |
|
115 |
ad-hoc command "hg serve -v", or the hgweb.cgi or hgwebdir.cgi scripts |
|
116 |
that are included in the Mercurial distribution, and send a "pull |
|
117 |
request" to someone else. There are also public hosting services for |
|
118 |
Mercurial repositories. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
119 |
|
28913 | 120 |
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
|
121 |
distributed version control community, and works well for occasional |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
122 |
changes produced by anybody out there. Of course, upstream |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
123 |
maintainers need to review and moderate changes being proposed, before |
40601 | 124 |
pushing anything onto the official Isabelle repository at TUM. Direct |
125 |
pushes are also reviewed routinely in a post-hoc fashion; everybody |
|
126 |
hooked on the main repository is called to keep an eye on incoming |
|
127 |
changes. In any case, changesets need to be understandable, at the |
|
128 |
time of writing and many years later. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
129 |
|
40601 | 130 |
Push access to the Isabelle repository requires an account at TUM, |
47449 | 131 |
with properly configured ssh to the local machines (e.g. macbroy20 .. |
132 |
macbroy29). You also need to be a member of the "isabelle" Unix |
|
40601 | 133 |
group. |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
134 |
|
28913 | 135 |
Sharing a locally modified clone then works as follows, using your |
136 |
user name instead of "wenzelm": |
|
137 |
||
47449 | 138 |
hg out ssh://wenzelm@macbroy20//home/isabelle-repository/repos/isabelle |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
139 |
|
28913 | 140 |
In fact, the "out" or "outgoing" command performs only a dry run: it |
141 |
displays the changesets that would get published. An actual "push", |
|
142 |
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
|
143 |
|
47449 | 144 |
hg push ssh://wenzelm@macbroy20//home/isabelle-repository/repos/isabelle |
28913 | 145 |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
146 |
|
40601 | 147 |
Default paths for push and pull can be configured in |
148 |
isabelle/.hg/hgrc, for example: |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
149 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
150 |
[paths] |
47449 | 151 |
default = ssh://wenzelm@macbroy20//home/isabelle-repository/repos/isabelle |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
152 |
|
28913 | 153 |
Now "hg pull" or "hg push" will use that shared file space, unless a |
154 |
different URL is specified explicitly. |
|
155 |
||
156 |
When cloning a repository, the default path is set to the initial |
|
157 |
source URL. So we could have cloned via that ssh URL in the first |
|
158 |
place, to get exactly to the same point: |
|
159 |
||
47449 | 160 |
hg clone ssh://wenzelm@macbroy20//home/isabelle-repository/repos/isabelle |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
161 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
162 |
|
40601 | 163 |
Simple merges |
164 |
------------- |
|
30182 | 165 |
|
166 |
The main idea of Mercurial is to let individual users produce |
|
167 |
independent branches of development first, but merge with others |
|
168 |
frequently. The basic hg merge operation is more general than |
|
169 |
required for the mode of operation with a shared pull/push area. The |
|
40601 | 170 |
"fetch" extension accommodates this case nicely, automating trivial |
30182 | 171 |
merges and requiring manual intervention for actual conflicts only. |
172 |
||
40601 | 173 |
The fetch extension can be configured via $HOME/.hgrc like this: |
30182 | 174 |
|
175 |
[extensions] |
|
176 |
hgext.fetch = |
|
177 |
||
178 |
[defaults] |
|
179 |
fetch = -m "merged" |
|
180 |
||
40601 | 181 |
To keep merges semantically trivial and prevent genuine merge |
182 |
conflicts or lost updates, it is essential to observe to following |
|
183 |
general discipline wrt. the public Isabelle push area: |
|
184 |
||
185 |
* Before editing, pull or fetch the latest version. |
|
186 |
||
187 |
* Accumulate private commits for a maximum of 1-3 days. |
|
188 |
||
189 |
* Start publishing again by pull or fetch, which normally produces |
|
190 |
local merges. |
|
191 |
||
192 |
* Test the merged result as usual and push back in real time. |
|
193 |
||
194 |
Piling private changes and public merges longer than 0.5-2 hours is |
|
195 |
apt to produce some mess when pushing eventually! |
|
30182 | 196 |
|
197 |
||
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
198 |
Content discipline |
29481 | 199 |
------------------ |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
200 |
|
40601 | 201 |
The following principles should be kept in mind when producing |
202 |
changesets that are meant to be published at some point. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
203 |
|
40601 | 204 |
* The author of changes needs to be properly identified, using |
205 |
[ui]username configuration as described above. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
206 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
207 |
While Mercurial also provides means for signed changesets, we want |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
208 |
to keep things simple and trust that users specify their identity |
40601 | 209 |
correctly (and uniquely). |
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
210 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
211 |
* The history of sources is an integral part of the sources |
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
212 |
themselves. This means that private experiments and branches |
40601 | 213 |
should not be published by accident. Named branches are not |
214 |
allowed on the public version. Note that old SVN-style branching |
|
215 |
is replaced by regular repository clones in Mercurial. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
216 |
|
40601 | 217 |
Exchanging local experiments with some other users can be done |
218 |
directly on peer-to-peer basis, without affecting the central |
|
219 |
pull/push area. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
220 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
221 |
* Log messages are an integral part of the history of sources. |
40601 | 222 |
Other people will have to inspect them routinely, to understand |
223 |
why things have been done in a certain way at some point. |
|
224 |
||
225 |
Authors of log entries should be aware that published changes are |
|
226 |
actually read. The main point is not to announce novelties, but |
|
227 |
to describe faithfully what has been done, and provide some clues |
|
228 |
about the motivation behind it. The main recipient is someone who |
|
229 |
needs to understand the change in the distant future to isolate |
|
230 |
problems. Sometimes it is helpful to reference past changes via |
|
231 |
changeset ids in the log entry. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
232 |
|
40601 | 233 |
* The standard changelog entry format of the Isabelle repository |
234 |
admits several (vaguely related) items to be rolled into one |
|
235 |
changeset. Each item is then described on a separate line that |
|
236 |
may become longer as screen line and is terminated by punctuation. |
|
237 |
These lines are roughly ordered by importance. |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
238 |
|
40601 | 239 |
This format conforms to established Isabelle tradition. In |
240 |
contrast, the default of Mercurial prefers a single headline |
|
241 |
followed by a long body text. The reason for that is a somewhat |
|
242 |
different development model of typical "distributed" projects, |
|
243 |
where external changes pass through a hierarchy of reviewers and |
|
244 |
maintainers, until they end up in some authoritative repository. |
|
245 |
Isabelle changesets can be more spontaneous, growing from the |
|
246 |
bottom-up. |
|
247 |
||
248 |
The web style of http://isabelle.in.tum.de/repos/isabelle/ |
|
249 |
accommodates the Isabelle changelog format. Note that multiple |
|
250 |
lines will sometimes display as a single paragraph in HTML, so |
|
251 |
some terminating punctuation is required. Do not squeeze multiple |
|
252 |
items on the same line in the original text! |
|
28907
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
253 |
|
1a470f95ef18
Important notes on Mercurial repository access for Isabelle.
wenzelm
parents:
diff
changeset
|
254 |
|
32361
141e5151b918
clarified situation about unidentified repository versions -- in a distributed setting there is not "the" repository;
wenzelm
parents:
30182
diff
changeset
|
255 |
Building a repository version of Isabelle |
141e5151b918
clarified situation about unidentified repository versions -- in a distributed setting there is not "the" repository;
wenzelm
parents:
30182
diff
changeset
|
256 |
----------------------------------------- |
28908 | 257 |
|
48986
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
258 |
This first requires to resolve add-on components first, including the |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
259 |
ML system. Some extra configuration is required to approximate some |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
260 |
of the system integration of official Isabelle releases from a |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
261 |
bare-bones repository snapshot. The special directory Admin/ -- which |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
262 |
is absent in official releases -- might provide some further clues. |
48497
ba61aceaa18a
some updates on "Building a repository version of Isabelle";
wenzelm
parents:
47449
diff
changeset
|
263 |
|
48844 | 264 |
Here is a reasonably easy way to include important Isabelle components |
265 |
on the spot: |
|
266 |
||
48854 | 267 |
(1) The bash script ISABELLE_HOME_USER/etc/settings is augmented by |
48844 | 268 |
some shell function invocations like this: |
28908 | 269 |
|
48844 | 270 |
init_components "$HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/main" |
271 |
init_components "$HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/optional" |
|
272 |
||
273 |
This uses some central place "$HOME/.isabelle/contrib" to keep |
|
274 |
component directories that are shared by all Isabelle versions. |
|
275 |
||
276 |
(2) Missing components are resolved on the command line like this: |
|
48497
ba61aceaa18a
some updates on "Building a repository version of Isabelle";
wenzelm
parents:
47449
diff
changeset
|
277 |
|
48844 | 278 |
isabelle components -a |
279 |
||
280 |
This will saturate the "$HOME/.isabelle/contrib" directory structure |
|
48855 | 281 |
according to $ISABELLE_COMPONENT_REPOSITORY. |
48497
ba61aceaa18a
some updates on "Building a repository version of Isabelle";
wenzelm
parents:
47449
diff
changeset
|
282 |
|
48844 | 283 |
Since the given component catalogs in $ISABELLE_HOME/Admin/components |
284 |
are subject to the Mercurial history, it is possible to bisect over a |
|
285 |
range of Isabelle versions while references to the contributing |
|
286 |
components change accordingly. |
|
48986
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
287 |
|
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
288 |
The Isabelle build process is managed as follows: |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
289 |
|
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
290 |
* regular "isabelle build" to build session images, e.g. HOL; |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
291 |
|
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
292 |
* administrative "isabelle build_doc" to populate the doc/ |
037d32448e29
update on "isabelle build" and "isabelle build_doc";
wenzelm
parents:
48855
diff
changeset
|
293 |
directory, such that "isabelle doc" will find the results. |