| | @@ -12,12 +12,13 @@ |
| 12 | 12 | which Fossil is built. |
| 13 | 13 | </p> |
| 14 | 14 | |
| 15 | 15 | <ul> |
| 16 | 16 | <li><p>A project consists of source files, wiki pages, and |
| 17 | | -trouble tickets. All historical copies of all these |
| 18 | | -entities are saved. The project maintains an audit |
| 17 | +trouble tickets, and control files (collectively "artifacts"). |
| 18 | +All historical copies of all artifacts |
| 19 | +are saved. The project maintains an audit |
| 19 | 20 | trail.</p></li> |
| 20 | 21 | |
| 21 | 22 | <li><p>A project resides in one or more repositories. Each |
| 22 | 23 | repository is administered and operates independently |
| 23 | 24 | of the others.</p></li> |
| | @@ -30,49 +31,49 @@ |
| 30 | 31 | The global state represents the content of the project. |
| 31 | 32 | The local state identifies the authorized users and |
| 32 | 33 | access policies for a particular repository.</p></li> |
| 33 | 34 | |
| 34 | 35 | <li><p>The global state of a repository is an unordered |
| 35 | | -collection of files. Each file is named by |
| 36 | | -its SHA1 hash encoded in hexadecimal. |
| 36 | +collection of artifacts. Each artifact is named by |
| 37 | +its SHA1 hash encoded in lowercase hexadecimal. |
| 37 | 38 | In many contexts, the name can be |
| 38 | 39 | abbreviated to a unique prefix. A five- or six-character |
| 39 | 40 | prefix usually suffices to uniquely identify a file.</p></li> |
| 40 | 41 | |
| 41 | | -<li><p>Because files are named by their SHA1 hash, all files |
| 42 | | -are immutable. Any change to the content of a file also |
| 43 | | -changes the hash that forms the files name, thus |
| 44 | | -creating a new file. Both the old original version of the |
| 45 | | -file and the new change are preserved under different names.</p></li> |
| 42 | +<li><p>Because artifacts are named by their SHA1 hash, all artifacts |
| 43 | +are immutable. Any change to the content of a artifact also |
| 44 | +changes the hash that forms the artifacts name, thus |
| 45 | +creating a new artifact. Both the old original version of the |
| 46 | +artifact and the new change are preserved under different names.</p></li> |
| 46 | 47 | |
| 47 | | -<li><p>It is theoretically possible for two files with different |
| 48 | +<li><p>It is theoretically possible for two artifacts with different |
| 48 | 49 | content to share the same hash. But finding two such |
| 49 | | -files is so incredibly difficult and unlikely that we |
| 50 | +artifacts is so incredibly difficult and unlikely that we |
| 50 | 51 | consider it to be an impossibility.</p></li> |
| 51 | 52 | |
| 52 | | -<li><p>The signature of a file is the SHA1 hash of the |
| 53 | | -file itself, exactly as it appears on disk. No prefix |
| 54 | | -or meta-information about the file is added before computing |
| 53 | +<li><p>The signature of an artifact is the SHA1 hash of the |
| 54 | +artifact itself, exactly as it would appear in a disk file. No prefix |
| 55 | +or meta-information about the artifact is added before computing |
| 55 | 56 | the hash. So you can |
| 56 | 57 | always find the SHA1 signature of a file by using the |
| 57 | 58 | "sha1sum" command-line utility.</p></li> |
| 58 | 59 | |
| 59 | | -<li><p>The files that comprise the global state of a repository |
| 60 | +<li><p>The artifacts that comprise the global state of a repository |
| 60 | 61 | are the complete global state of that repository. The SQLite |
| 61 | 62 | database that holds the repository contains additional information |
| 62 | | -about linkages between files, but all of that added information |
| 63 | +about linkages between artifacts, but all of that added information |
| 63 | 64 | can be discarded and reconstructed by rescanning the content |
| 64 | | -files.</p></li> |
| 65 | +artifacts.</p></li> |
| 65 | 66 | |
| 66 | 67 | <li><p>Two repositories for the same project can synchronize |
| 67 | | -their global states simply by sharing files. The local |
| 68 | +their global states simply by sharing artifacts. The local |
| 68 | 69 | state of repositories is not normally synchronized or |
| 69 | 70 | shared.</p></li> |
| 70 | 71 | |
| 71 | | -<li><p>Every repository has a special file at the top-level |
| 72 | +<li><p>Every baseline has a special file at the top-level |
| 72 | 73 | named "manifest" which is an index of all other files in |
| 73 | | -the system. The manifest is automatically created and |
| 74 | +that baseline. The manifest is automatically created and |
| 74 | 75 | maintained by the system.</p></li> |
| 75 | 76 | |
| 76 | 77 | <li><p>The <a href="fileformat.html">file formats</a> |
| 77 | 78 | used by Fossil are all very simple so that with access |
| 78 | 79 | to the original content files, one can easily reconstruct |
| 79 | 80 | |