Fossil SCM

fossil-scm / www / faq.tcl
Source Blame History 181 lines
627de3b… drh 1 #!/usr/bin/tclsh
627de3b… drh 2 #
627de3b… drh 3 # Run this to generate the FAQ
627de3b… drh 4 #
627de3b… drh 5 set cnt 1
627de3b… drh 6 proc faq {question answer} {
627de3b… drh 7 set ::faq($::cnt) [list [string trim $question] [string trim $answer]]
627de3b… drh 8 incr ::cnt
627de3b… drh 9 }
627de3b… drh 10
627de3b… drh 11 faq {
627de3b… drh 12 What GUIs are available for fossil?
627de3b… drh 13 } {
20b2767… drh 14 The fossil executable comes with a [./webui.wiki | web-based GUI] built in.
20b2767… drh 15 Just run:
627de3b… drh 16
8a1ba49… wyoung 17 <pre>
20b2767… drh 18 <b>fossil [/help/ui|ui]</b> <i>REPOSITORY-FILENAME</i>
8a1ba49… wyoung 19 </pre>
627de3b… drh 20
627de3b… drh 21 And your default web browser should pop up and automatically point to
627de3b… drh 22 the fossil interface. (Hint: You can omit the <i>REPOSITORY-FILENAME</i>
627de3b… drh 23 if you are within an open check-out.)
627de3b… drh 24 }
627de3b… drh 25
627de3b… drh 26 faq {
627de3b… drh 27 What is the difference between a "branch" and a "fork"?
627de3b… drh 28 } {
627de3b… drh 29 This is a big question - too big to answer in a FAQ. Please
627de3b… drh 30 read the <a href="branching.wiki">Branching, Forking, Merging,
627de3b… drh 31 and Tagging</a> document.
627de3b… drh 32 }
627de3b… drh 33
627de3b… drh 34
627de3b… drh 35 faq {
20b2767… drh 36 How do I create a new branch?
627de3b… drh 37 } {
627de3b… drh 38 There are lots of ways:
627de3b… drh 39
20b2767… drh 40 When you are checking in a new change using the <b>[/help/commit|commit]</b>
627de3b… drh 41 command, you can add the option "--branch <i>BRANCH-NAME</i>" to
e94bef2… drh 42 make the new check-in be the first check-in for a new branch.
627de3b… drh 43
20b2767… drh 44 If you want to create a new branch whose initial content is the
627de3b… drh 45 same as an existing check-in, use this command:
627de3b… drh 46
8a1ba49… wyoung 47 <pre>
20b2767… drh 48 <b>fossil [/help/branch|branch] new</b> <i>BRANCH-NAME BASIS</i>
8a1ba49… wyoung 49 </pre>
627de3b… drh 50
627de3b… drh 51 The <i>BRANCH-NAME</i> argument is the name of the new branch and the
627de3b… drh 52 <i>BASIS</i> argument is the name of the check-in that the branch splits
627de3b… drh 53 off from.
627de3b… drh 54
627de3b… drh 55 If you already have a fork in your check-in tree and you want to convert
627de3b… drh 56 that fork to a branch, you can do this from the web interface.
627de3b… drh 57 First locate the check-in that you want to be
20b2767… drh 58 the initial check-in of your branch on the timeline and click on its
627de3b… drh 59 link so that you are on the <b>ci</b> page. Then find the "<b>edit</b>"
34820b4… jan.nijtmans 60 link (near the "Commands:" label) and click on that. On the
34820b4… jan.nijtmans 61 "Edit Check-in" page, check the box beside "Branching:" and fill in
627de3b… drh 62 the name of your new branch to the right and press the "Apply Changes"
627de3b… drh 63 button.
20b2767… drh 64 }
20b2767… drh 65
20b2767… drh 66 faq {
20b2767… drh 67 How do I tag a check-in?
20b2767… drh 68 } {
20b2767… drh 69 There are several ways:
20b2767… drh 70
20b2767… drh 71 When you are checking in a new change using the <b>[/help/commit|commit]</b>
20b2767… drh 72 command, you can add a tag to that check-in using the
e94bef2… drh 73 "--tag <i>TAGNAME</i>" command-line option. You can repeat the --tag
e94bef2… drh 74 option to give a check-in multiple tags. Tags need not be unique. So,
e94bef2… drh 75 for example, it is common to give every released version a "release" tag.
20b2767… drh 76
382a61e… stephan 77 If you want to add a tag to an existing check-in, you can use the
20b2767… drh 78 <b>[/help/tag|tag]</b> command. For example:
20b2767… drh 79
8a1ba49… wyoung 80 <pre>
20b2767… drh 81 <b>fossil [/help/branch|tag] add</b> <i>TAGNAME</i> <i>CHECK-IN</i>
8a1ba49… wyoung 82 </pre>
20b2767… drh 83
20b2767… drh 84 The CHECK-IN in the previous line can be any
20b2767… drh 85 [./checkin_names.wiki | valid check-in name format].
20b2767… drh 86
20b2767… drh 87 You can also add (and remove) tags from a check-in using the
34820b4… jan.nijtmans 88 [./webui.wiki | web interface]. First locate the check-in that you
382a61e… stephan 89 want to tag on the timeline, then click on the link to go the detailed
20b2767… drh 90 information page for that check-in. Then find the "<b>edit</b>"
20b2767… drh 91 link (near the "Commands:" label) and click on that. There are
20b2767… drh 92 controls on the edit page that allow new tags to be added and existing
20b2767… drh 93 tags to be removed.
34820b4… jan.nijtmans 94 }
627de3b… drh 95
627de3b… drh 96 faq {
627de3b… drh 97 How do I create a private branch that won't get pushed back to the
627de3b… drh 98 main repository.
627de3b… drh 99 } {
34820b4… jan.nijtmans 100 Use the <b>--private</b> command-line option on the
382a61e… stephan 101 <b>commit</b> command. The result will be a check-in which exists in
34820b4… jan.nijtmans 102 your local repository only and is never pushed to other repositories.
fe38a76… drh 103 All descendants of a private check-in are also private.
34820b4… jan.nijtmans 104
d6b8b5b… drh 105 Unless you specify something different using the <b>--branch</b> and/or
d6b8b5b… drh 106 <b>--bgcolor</b> options, the new private check-in will be put on a branch
d6b8b5b… drh 107 named "private" with an orange background color.
34820b4… jan.nijtmans 108
d6b8b5b… drh 109 You can merge from the trunk into your private branch in order to keep
d6b8b5b… drh 110 your private branch in sync with the latest changes on the trunk. Once
d6b8b5b… drh 111 you have everything in your private branch the way you want it, you can
d6b8b5b… drh 112 then merge your private branch back into the trunk and push. Only the
d6b8b5b… drh 113 final merge operation will appear in other repositories. It will seem
d6b8b5b… drh 114 as if all the changes that occurred on your private branch occurred in
d6b8b5b… drh 115 a single check-in.
d6b8b5b… drh 116 Of course, you can also keep your branch private forever simply
d6b8b5b… drh 117 by not merging the changes in the private branch back into the trunk.
c97c6aa… drh 118
c97c6aa… drh 119 [./private.wiki | Additional information]
d6b8b5b… drh 120 }
d6b8b5b… drh 121
d6b8b5b… drh 122 faq {
d6b8b5b… drh 123 How can I delete inappropriate content from my fossil repository?
d6b8b5b… drh 124 } {
d6b8b5b… drh 125 See the article on [./shunning.wiki | "shunning"] for details.
d6b8b5b… drh 126 }
d6b8b5b… drh 127
68b73eb… drh 128 faq {
68b73eb… drh 129 How do I make a clone of the fossil self-hosting repository?
68b73eb… drh 130 } {
68b73eb… drh 131 Any of the following commands should work:
8a1ba49… wyoung 132
8a1ba49… wyoung 133 <pre>
143f1db… wyoung 134 fossil [/help/clone|clone] https://fossil-scm.org/ fossil.fossil
143f1db… wyoung 135 fossil [/help/clone|clone] https://www2.fossil-scm.org/ fossil.fossil
143f1db… wyoung 136 fossil [/help/clone|clone] https://www3.fossil-scm.org/site.cgi fossil.fossil
8a1ba49… wyoung 137 </pre>
8a1ba49… wyoung 138
68b73eb… drh 139 Once you have the repository cloned, you can open a local check-out
68b73eb… drh 140 as follows:
8a1ba49… wyoung 141
8a1ba49… wyoung 142 <pre>
20b2767… drh 143 mkdir src; cd src; fossil [/help/open|open] ../fossil.fossil
8a1ba49… wyoung 144 </pre>
8a1ba49… wyoung 145
68b73eb… drh 146 Thereafter you should be able to keep your local check-out up to date
713b8be… drh 147 with the latest code in the public repository by typing:
8a1ba49… wyoung 148
8a1ba49… wyoung 149 <pre>
20b2767… drh 150 fossil [/help/update|update]
8a1ba49… wyoung 151 </pre>
20b2767… drh 152 }
20b2767… drh 153
20b2767… drh 154 faq {
20b2767… drh 155 How do I import or export content from and to other version control systems?
20b2767… drh 156 } {
20b2767… drh 157 Please see [./inout.wiki | Import And Export]
68b73eb… drh 158 }
20b2767… drh 159
20b2767… drh 160
627de3b… drh 161
627de3b… drh 162 #############################################################################
627de3b… drh 163 # Code to actually generate the FAQ
627de3b… drh 164 #
8a1ba49… wyoung 165 puts "<title>Fossil FAQ</title>\n"
1fd407f… wyoung 166 puts "Note: See also <a href=\"qandc.wiki\">Questions and Criticisms</a>.\n"
627de3b… drh 167
627de3b… drh 168 puts {<ol>}
627de3b… drh 169 for {set i 1} {$i<$cnt} {incr i} {
627de3b… drh 170 puts "<li><a href=\"#q$i\">[lindex $faq($i) 0]</a></li>"
627de3b… drh 171 }
627de3b… drh 172 puts {</ol>}
627de3b… drh 173 puts {<hr>}
627de3b… drh 174
627de3b… drh 175 for {set i 1} {$i<$cnt} {incr i} {
93cee1f… wyoung 176 puts "<p id=\"q$i\"><b>($i) [lindex $faq($i) 0]</b></p>\n"
627de3b… drh 177 set body [lindex $faq($i) 1]
627de3b… drh 178 regsub -all "\n *" [string trim $body] "\n" body
8a1ba49… wyoung 179 puts "$body</li>\n"
627de3b… drh 180 }
627de3b… drh 181 puts {</ol>}

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button