Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | More documentation tweaks and refinements. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
e94bef2dec75ae74267d7e93207d3ec8 |
| User & Date: | drh 2013-07-19 19:40:08.175 |
Context
|
2013-07-20
| ||
| 03:18 | Add some documentation to help programmers get started hacking the Fossil sources. check-in: 018a983046 user: drh tags: trunk | |
|
2013-07-19
| ||
| 19:40 | More documentation tweaks and refinements. check-in: e94bef2dec user: drh tags: trunk | |
| 18:18 | Fix typos in the quick-start guide. check-in: 47dd7f36f7 user: drh tags: trunk | |
Changes
Changes to www/build.wiki.
| ︙ | ︙ | |||
120 121 122 123 124 125 126 127 128 129 130 131 132 133 | <li><p> If the makefiles that come with Fossil do not work for you, or for some other reason you want to know how to build Fossil manually, then refer to the [./makefile.wiki | Fossil Build Process] document which describes in detail what the makefiles do behind the scenes. <li><p> To build on older Macs (circa 2002, MacOS 10.2) edit the Makefile generated by configure to add the following lines: <blockquote><pre> TCC += -DSQLITE_WITHOUT_ZONEMALLOC TCC += -DWITHOUT_ICONV TCC += -Dsocketlen_t=int | > > > > > > > | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | <li><p> If the makefiles that come with Fossil do not work for you, or for some other reason you want to know how to build Fossil manually, then refer to the [./makefile.wiki | Fossil Build Process] document which describes in detail what the makefiles do behind the scenes. <li><p> The fossil executable is self-contained and stand-alone and usually requires no special libraries or other software to be installed. However, the "--tk" option to the [/help/diff|diff command] requires that Tcl/Tk be installed on the local machine. You can get Tcl/Tk from [http://www.activestate.com/activetcl|ActiveState]. <li><p> To build on older Macs (circa 2002, MacOS 10.2) edit the Makefile generated by configure to add the following lines: <blockquote><pre> TCC += -DSQLITE_WITHOUT_ZONEMALLOC TCC += -DWITHOUT_ICONV TCC += -Dsocketlen_t=int |
| ︙ | ︙ |
Changes to www/faq.tcl.
| ︙ | ︙ | |||
35 36 37 38 39 40 41 |
faq {
How do I create a new branch?
} {
There are lots of ways:
When you are checking in a new change using the <b>[/help/commit|commit]</b>
command, you can add the option "--branch <i>BRANCH-NAME</i>" to
| | < < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
faq {
How do I create a new branch?
} {
There are lots of ways:
When you are checking in a new change using the <b>[/help/commit|commit]</b>
command, you can add the option "--branch <i>BRANCH-NAME</i>" to
make the new check-in be the first check-in for a new branch.
If you want to create a new branch whose initial content is the
same as an existing check-in, use this command:
<blockquote>
<b>fossil [/help/branch|branch] new</b> <i>BRANCH-NAME BASIS</i>
</blockquote>
|
| ︙ | ︙ | |||
68 69 70 71 72 73 74 |
faq {
How do I tag a check-in?
} {
There are several ways:
When you are checking in a new change using the <b>[/help/commit|commit]</b>
command, you can add a tag to that check-in using the
| | > > | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
faq {
How do I tag a check-in?
} {
There are several ways:
When you are checking in a new change using the <b>[/help/commit|commit]</b>
command, you can add a tag to that check-in using the
"--tag <i>TAGNAME</i>" command-line option. You can repeat the --tag
option to give a check-in multiple tags. Tags need not be unique. So,
for example, it is common to give every released version a "release" tag.
If you want add a tag to an existing check-in, you can use the
<b>[/help/tag|tag]</b> command. For example:
<blockquote>
<b>fossil [/help/branch|tag] add</b> <i>TAGNAME</i> <i>CHECK-IN</i>
</blockquote>
|
| ︙ | ︙ |
Changes to www/faq.wiki.
| ︙ | ︙ | |||
39 40 41 42 43 44 45 | <a name="q3"></a> <p><b>(3) How do I create a new branch?</b></p> <blockquote>There are lots of ways: When you are checking in a new change using the <b>[/help/commit|commit]</b> command, you can add the option "--branch <i>BRANCH-NAME</i>" to | | < < | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <a name="q3"></a> <p><b>(3) How do I create a new branch?</b></p> <blockquote>There are lots of ways: When you are checking in a new change using the <b>[/help/commit|commit]</b> command, you can add the option "--branch <i>BRANCH-NAME</i>" to make the new check-in be the first check-in for a new branch. If you want to create a new branch whose initial content is the same as an existing check-in, use this command: <blockquote> <b>fossil [/help/branch|branch] new</b> <i>BRANCH-NAME BASIS</i> </blockquote> |
| ︙ | ︙ | |||
71 72 73 74 75 76 77 | <a name="q4"></a> <p><b>(4) How do I tag a check-in?</b></p> <blockquote>There are several ways: When you are checking in a new change using the <b>[/help/commit|commit]</b> command, you can add a tag to that check-in using the | | > > | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | <a name="q4"></a> <p><b>(4) How do I tag a check-in?</b></p> <blockquote>There are several ways: When you are checking in a new change using the <b>[/help/commit|commit]</b> command, you can add a tag to that check-in using the "--tag <i>TAGNAME</i>" command-line option. You can repeat the --tag option to give a check-in multiple tags. Tags need not be unique. So, for example, it is common to give every released version a "release" tag. If you want add a tag to an existing check-in, you can use the <b>[/help/tag|tag]</b> command. For example: <blockquote> <b>fossil [/help/branch|tag] add</b> <i>TAGNAME</i> <i>CHECK-IN</i> </blockquote> |
| ︙ | ︙ |
Changes to www/hints.wiki.
1 2 | <title>Fossil Tips And Usage Hints</title> | | | | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<title>Fossil Tips And Usage Hints</title>
1. Click on nodes of any timeline graph to see diffs between the two
selected versions.
2. Add the "--tk" option to "[/help?cmd=diff | fossil diff]" commands
to get a pop-up
window containing a complete side-by-side diff. (NB: The pop-up
window is run as a separate Tcl/Tk process, so you will need to
have Tcl/Tk installed on your machine for this to work. Visit
[http://www.activestate.com/activetcl] to for a quick download of
Tcl/Tk if you do not already have it on your system.)
3. The "[/help?cmd=clean | fossil clean -f]" command makes a great
alternative to "make clean".
4. Use "[/help?cmd=all | fossil all changes]" to look for any uncommitted
edits in any of your Fossil projects. Use
"[/help?cmd=all | fossil all pull]" on your laptop
prior to going off network (for example, on a long plane ride)
to make sure you have all the latest content locally. Then run
"[/help/all|fossil all push]" when you get back online to upload
your changes.
5. Sub-menu options on Timelines lets you select either 20 or 200
records. But you can manual edit the "n=" query parameter in the
URL to get any number of records you desire. To see a complete
timeline graph, set n to some ridiculously large value like 10000000.
6. You can manually add a "c=CHECKIN" query parameter to the timeline
|
| ︙ | ︙ |
Changes to www/quickstart.wiki.
| ︙ | ︙ | |||
171 172 173 174 175 176 177 178 179 |
<blockquote>
<b>[/help/commit | fossil commit]</b>
</blockquote>
<p>You will be prompted for check-in comments using whatever editor
is specified by your VISUAL or EDITOR environment variable.</p>
<h2>Sharing Changes</h2>
| > > > > > > > > | | 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
<blockquote>
<b>[/help/commit | fossil commit]</b>
</blockquote>
<p>You will be prompted for check-in comments using whatever editor
is specified by your VISUAL or EDITOR environment variable.</p>
In the default configuration, the [/help/commit|commit]
command will also automatically [/help/push|push] your changes, but that
feature can be disabled. (More information about
[./concepts.wiki#workflow|autosync] and how to disable it.)
Remember that your coworkers can not see your changes until you
commit and push them.</p>
<h2>Sharing Changes</h2>
<p>When [./concepts.wiki#workflow|autosync] is turned off,
the changes you [/help/commit | commit] are only
on your local repository.
To share those changes with other repositories, do:</p>
<blockquote>
<b>[/help/push | fossil push]</b> <i>URL</i>
</blockquote>
|
| ︙ | ︙ | |||
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
abbreviation to the 40-character
artifact identifier for a particular check-in, or it can be a
date/time stamp. ([./checkin_names.wiki | more info])
If you omit
the <i>VERSION</i>, then fossil moves you to the
latest version of the branch your are currently on.</p>
<h2>Branching And Merging</h2>
<p>Use the --branch option to the [/help/commit | commit] command
to start a new branch. Note that in Fossil, branches are normally
created when you commit, not before you start editing. You can
use the [/help/branch | branch new] command to create a new branch
before you start editing, if you want, but most people just wait
until they are ready to commit.
To merge two branches back together, first
| > > > > > > > | | > > > | > > | | < < < < < < < < < | | | > | | | > > > > | > > > > > > | 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 |
abbreviation to the 40-character
artifact identifier for a particular check-in, or it can be a
date/time stamp. ([./checkin_names.wiki | more info])
If you omit
the <i>VERSION</i>, then fossil moves you to the
latest version of the branch your are currently on.</p>
<p>The default behaviors is for [./concepts.wiki#workflow|autosync] to
be turned on. That means that a [/help/pull|pull] automatically occurs
when you run [/help/update|update] and a [/help/push|push] happens
automatically after you [/help/commit|commit]. So in normal practice,
the push, pull, and sync commands are rarely used. But it is important
to know about them, all the same.</p>
<h2>Branching And Merging</h2>
<p>Use the --branch option to the [/help/commit | commit] command
to start a new branch. Note that in Fossil, branches are normally
created when you commit, not before you start editing. You can
use the [/help/branch | branch new] command to create a new branch
before you start editing, if you want, but most people just wait
until they are ready to commit.
To merge two branches back together, first
[/help/update | update] to the branch you want to merge into.
Then do a [/help/merge|merge] another branch that you want to incorporate
the changes from. For example, to merge "featureX" changes into "trunk"
do this:</p>
<blockquote>
<b>fossil [/help/update|update] trunk</b><br>
<b>fossil [/help/merge|merge] featureX</b><br>
<i># make sure the merge didn't break anything...</i><br>
<b>fossil [/help/commit|commit]
</blockquote>
<p>The argument to the [/help/merge|merge] command can be any of the
version identifier forms that work for [/help/update|update].
([./checkin_names.wiki|more info].)
The merge command has options to cherrypick individual
changes, or to back out individual changes, if you don't want to
do a full merge.</p>
The merge command puts all changes in your working check-out.
No changes are made to the repository.
You must run [/help/commit|commit] separately
to add the merge changes into your repository to make them persistent
and so that your coworkers can see them.
But before you do that, you will normally want to run a few tests
to verify that the merge didn't cause logic breaks in your code.
The same branch can be merged multiple times without trouble. Fossil
automatically keeps up with things and avoids conflicts when doing
multiple merges. So even if you have merged the featureX branch
into trunk previously, you can do so again and Fossil will automatically
know to pull in only those changes that have occurred since the previous
merge.
<p>If a merge or update doesn't work out (perhaps something breaks or
there are many merge conflicts) then you back up using:</p>
<blockquote>
<b>[/help/undo | fossil undo]</b>
</blockquote>
|
| ︙ | ︙ | |||
367 368 369 370 371 372 373 |
<blockquote>
<b>fossil sync http://192.168.1.36:8080/ --proxy off</b>
</blockquote>
<h2>More Hints</h2>
| | > > > | 389 390 391 392 393 394 395 396 397 398 399 400 401 |
<blockquote>
<b>fossil sync http://192.168.1.36:8080/ --proxy off</b>
</blockquote>
<h2>More Hints</h2>
<p>A [/help | complete list of commands] is available, as is the
[./hints.wiki|helpful hints] document. See the
[./permutedindex.wiki#pindex|permuted index] for additional
documentation.
<p>Explore and have fun!</p>
|
Changes to www/server.wiki.
| ︙ | ︙ | |||
105 106 107 108 109 110 111 | </blockquote> <h2>Various security concerns with hosted repositories</h2><blockquote> <p> There are two main concerns relating to usage of Fossil for sharing sensitive information (source or any other data): <ul> <li>Interception of the Fossil synchronization stream, thereby capturing data, and | | > | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | </blockquote> <h2>Various security concerns with hosted repositories</h2><blockquote> <p> There are two main concerns relating to usage of Fossil for sharing sensitive information (source or any other data): <ul> <li>Interception of the Fossil synchronization stream, thereby capturing data, and <li>Direct access to the Fossil repository on the server </ul> </p> <p> Regarding the first, it is adequate to secure the server using SSL, and disallowing any non-SSL access. The data stream will be encrypted by the HTTPS protocol, rendering the data reasonably secure. The truly paranoid may wish to deploy <i>ssh</i> encrypted tunnels, but that is quite a bit more difficult and cumbersome to set up (particularly for a larger number of users). </p> <p> As far as direct access to the repository, the same steps must be taken as for any other internet-facing data-store. Access passwords to any disk-accessing accounts should be strong (and preferably changed from time to time). However, the data in the repository itself are <i>not</i> encrypted (unless you save encrypted data yourself), and so the system administrators of your server will be able to access your data (as with any hosting service setup). The only workaround in this case is to host the server yourself, in which case you will need to allocate resources to deal with administration issues. </p> |
| ︙ | ︙ |