| author | blanchet | 
| Thu, 20 Sep 2012 02:42:48 +0200 | |
| changeset 49451 | 7a28d22c33c6 | 
| 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: 
30182diff
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: 
30182diff
changeset | 256 | ----------------------------------------- | 
| 28908 | 257 | |
| 48986 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 258 | This first requires to resolve add-on components first, including the | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 259 | ML system. Some extra configuration is required to approximate some | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 260 | of the system integration of official Isabelle releases from a | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 261 | bare-bones repository snapshot. The special directory Admin/ -- which | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
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: 
47449diff
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: 
47449diff
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: 
47449diff
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: 
48855diff
changeset | 287 | |
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 288 | The Isabelle build process is managed as follows: | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 289 | |
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 290 | * regular "isabelle build" to build session images, e.g. HOL; | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 291 | |
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 292 | * administrative "isabelle build_doc" to populate the doc/ | 
| 
037d32448e29
update on "isabelle build" and "isabelle build_doc";
 wenzelm parents: 
48855diff
changeset | 293 | directory, such that "isabelle doc" will find the results. |