Fossil

Check-in [68b73eb9]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the FAQ to describe how to make a clone of the self-hosting fossil repository.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 68b73eb9b9db6028b83b576cd426fb5184a481ec
User & Date: drh 2009-08-28 21:36:58
Context
2009-08-28
22:59
Deleted some obsolete "todo" files. Updated the FAQ. Modified the the "vinfo" page to show check-in differences and made "vinfo" the default display for check-ins instead of "vdiff". check-in: 713b8be8 user: drh tags: trunk
21:36
Update the FAQ to describe how to make a clone of the self-hosting fossil repository. check-in: 68b73eb9 user: drh tags: trunk
17:58
Show the date and time on checkouts in the "info" command. check-in: 76630dd9 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Deleted todo.txt.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Bugs:

 *  When doing an update, if a file is not found that should be there
    then the update aborts, only after it has written several files. It
    does not update your checked out version, thus when doing a fossil
    changes, you see everything that has come over from your update
    command. Steps to reproduce:
    
    $ rm src/main.c
    $ fossil update 9b30
    UPDATE ... etc ...
    fossil: no such file: src/main.c
    $ fossil info
    (shows version you were on prior to update)
    $ fossil changes
    EDITED ... many ...
    
 *  Bug: If the server closes the socket unexpectedly, the
    fwrite() in http.c:103 throws a signal and kills the child
    process.  fwrite() is not suppose to do this.  Need to figure
    out what is going wrong.

 *  Bug: Make sure merge and other commands (check-out) do not try
    to use a phantom.

 *  Bug: When clone use incorrect http URL, local repo file is still created.

Things to work on:

 *  Use the wiki_convert() routine to render comments and other text
    on web pages.

 *  If the server does not have write permission on the database
    file, or on the directory containing the database file (and 
    it is thus unable to update the database because it cannot create
    a rollback journal) then it currently fails silently on a push.
    It needs to return a helpful error.

 *  If the server returns an error (for example if the outbound /xfer
    message exceeds the maximum POST size of the server) the client
    does not report this error back to the user as it should.

 *  The ipaddr field of the rcvfrom table is not being set.  This
    field should be the IP address from which information is received
    for the local repository.  So when somebody does a push of new
    files we record the ipaddr.  Or when we do a pull, we record
    the ipaddr.  (I think this has been fixed.  Need to test.)

 *  Additional information displayed for the "vinfo" page:

     +  All leaves of this version that are not included in the
        descendant list.  With date, user, comment, and hyperlink.
        Leaves in the descendant table should be marked as such.
        See the compute_leaves() function to see how to find all
        leaves.
     +  Add file diff links to the file change list.

 *  Enhancements to the diff and tkdiff commands in the cli.
    Allow the entire tree or a subtree to be diffed, not just a 
    single file.  Allow diffs against any two arbitrary versions,
    not just diffs against the current check-out.

 *  Ticketing interface (expand this bullet)

     +  Create new tickets as files in the file hierarchy
     +  Append remarks to a ticket
     +  Add attachments to a ticket
     +  Change attributes of a ticket
     +  Delete tickets that are no longer current.  (The old
        content is still accessible, the ticket is just not in
        the current check-out.)
     +  Server setup to define the allowed attributes and
        attribute values for tickets
     +  Permanently remove malicious edits and/or attachments
        such as wiki-spam or warez.  (Content is no longer accessible.)
     +  View a history of all changes to a ticket
     +  Generate reports over all tickets
     +  Generate reports over all tickets as they existed for
        a chosen point in time and space.
     +  Do full text search against the text in any single ticket or
        across the current versions of all tickets, or across all current
        and historical versions of all tickets.

 *  Wiki interface (expand this bullet)

     +  Create new wiki pages
     +  Designate a single wiki page as the home page for the www interface
     +  Designate wiki pages as read-only, append-only, or read/write.
     +  Append comments to a wiki page
     +  Add attachments (such as GIF images) to a wiki page
     +  Change the content of a wiki page
     +  Delete obsolete wiki pages.  (Old content is still accessible,
        the page is just not on the current list of pages.)
     +  Permanently remove malicious edits and/or attachments
        such as wiki-spam or warez.  (Old content is no longer accessible.)
     +  Add nofollow on external links added by unprivileged
        users when the link is less than N hours old.
     +  Show the complete history of a single wiki page
     +  Provide the ability to diff two versions of a wiki page
     +  Show a listing of all wiki pages, both current and deleted
     +  Do a full-text search against current versions of all wiki pages
     +  Do a full-text search against all historical versions of a single
        wiki page
     +  Do a full-text search against all historical versions of all
        wiki pages

 *  Full-text search against check-in comments and diffs of each
    check-in.

 *  Add a "revert" command that will undo all changes to a file
    or files in the current check-out - restoring the files back
    to their original check-out state.

 *  Add an "annotate" command in both the cli and the www interface
    that will show line-by-line the most recent changes to every line
    in the file.

 *  Browse the file hierarchy, similar to the "Browse" feature in
    CVSTrac.

 *  Add the ability to override check-in comments.  It is not possible
    to change the comment in the check-in itself due to the cryptographic
    hash.  But you can add a new record to the repository that overloads
    a check-in comment with a new comment.  Comment changes should be
    GPG clearsigned at the very least.  Comment changes only apply if
    the user who made the change has the right permissions.

 *  Make the interface to fossil look pretty and be customizable so
    that other people will be attracted to it, will take over maintenance
    of it, and we can eventually move on to other things.
    
    This has begun, but I wonder if we need to use a templating system for
    full customization. If the CSS is done correctly, you can change 99.9%
    of everything. See: http://www.csszengarden.com/
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<












































































































































































































































































Deleted win32.txt.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Fossil on Win32
======================================================================

Setting up the build environment:
----------------------------------------------------------------------

  Install:
    MinGW 5.1.3
    MSYS  1.0.10
  
  Download/compile/install zlib (configure --prefix=/mingw)
  Download/compile/install tclsh (configure --prefix=/) (for tests)
  
  Installing zlib and tclsh was done in the MSYS shell so I could
  easily use the configure scripts. Tcl is only required to run the
  tests. You could install a binary distribution of Tcl/Tk and use
  that to run the tests, or you could opt to simply trust that 
  everything worked and not run the tests.
  
  There is a contributed zlib package on the MinGW site. 
  
  Downloading and installing a binary Tcl/Tk package and the 
  contributed zlib package would remove the requirement of MSYS.
  

Building on Windows:
----------------------------------------------------------------------

  Ensure you have read "Setting up the build environment" first.
  
  Building is as simple as one command:
  
      C:\fossil-src> make -f Makefile.w32


Outstanding Issues:
----------------------------------------------------------------------

* server is totally non-functional - #if/#end'd out of the code


Commands status:
----------------------------------------------------------------------

add               OK
cgi               Not tested
changes           OK
checkout          BAD #1
clean             OK
clone             OK
close             OK
commit            OK
config            OK
deconstruct       OK
del               OK
descendants       OK
diff              OK
extra             OK
help              OK
http              Not Tested
info              OK
leaves            OK
ls                OK
merge             OK
new               OK
open              OK
pull              OK
push              OK
rebuild           OK
redo              BAD #3
rm                OK
server            BAD #4
status            OK
sync              OK
timeline          OK
tkdiff            OK
undo              OK
update            OK
user capabilities OK
user default      OK
user list         OK
user new          OK
user password     OK

#1 Have a repo where I removed a file. I did a fossil checkout 123abc,
   which is the last version that had the file. The file does not
   appear. fossil checkout --force 123abc does things, but still the
   file does not appear.
   
   Make a new dir, fossil open ../repo.fsl && fossil checkout 123abc and
   the file appears.
   
   Is that normal operation?

#3 In test1/ I edited a file, test2/ I updated, type file.txt changes
   were there. I then did fossil undo file.txt. The changes were gone
   and fossil status said I had edited file.txt. A fossil redo did not
   print anything to the screen and the changes for file.txt are not
   in the file. fossil status still reports that the file was edited.
   There was no commit/update or any other command inbetween these
   actions.

#4 There were various difficulties in this function beyond simple socket
   problems. The major one being fork. This will probably be the last
   command to be functional in fossil on windows.
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


















































































































































































































Changes to www/faq.tcl.

89
90
91
92
93
94
95





















96
97
98
99
100
101
102
}

faq {
  How can I delete inappropriate content from my fossil repository?
} {
  See the article on [./shunning.wiki | "shunning"] for details.
}
























#############################################################################
# Code to actually generate the FAQ
#
puts "<title>Fossil FAQ</title>"







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
}

faq {
  How can I delete inappropriate content from my fossil repository?
} {
  See the article on [./shunning.wiki | "shunning"] for details.
}

faq {
  How do I make a clone of the fossil self-hosting repository?
} {
  Any of the following commands should work:
  <blockquote><pre>
  fossil  clone  http://www.fossil-scm.org/  fossil.fossil<br>
  fossil  clone  http://www2.fossil-scm.org/  fossil.fossil<br>
  fossil  clone  http://www.hwaci.com/cgi-bin/fossil  fossil.fossil
  </pre></blockquote>
  Once you have the repository cloned, you can open a local check-out
  as follows:
  <blockquote><pre>
  mkdir fossil; cd fossil; fossil open ../fossil.fossil
  </pre></blockquote>
  Thereafter you should be able to keep your local check-out up to date
  with the latest code in the public repository simply by typing:
  <blockquote><pre>
  fossil update
  </pre></blockquote>
}



#############################################################################
# Code to actually generate the FAQ
#
puts "<title>Fossil FAQ</title>"

Changes to www/faq.wiki.

6
7
8
9
10
11
12

13
14
15
16
17
18
19
..
88
89
90
91
92
93
94




















95
<ol>
<li><a href="#q1">What GUIs are available for fossil?</a></li>
<li><a href="#q2">What is the difference between a "branch" and a "fork"?</a></li>
<li><a href="#q3">How do I create a new branch in fossil?</a></li>
<li><a href="#q4">How do I create a private branch that won't get pushed back to the
  main repository.</a></li>
<li><a href="#q5">How can I delete inappropriate content from my fossil repository?</a></li>

</ol>
<hr>
<a name="q1"></a>
<p><b>(1) What GUIs are available for fossil?</b></p>

<blockquote>The fossil executable comes with a web-based GUI built in.  Just run:

................................................................................
by not merging the changes in the private branch back into the trunk.</blockquote></li>

<a name="q5"></a>
<p><b>(5) How can I delete inappropriate content from my fossil repository?</b></p>

<blockquote>See the article on [./shunning.wiki | "shunning"] for details.</blockquote></li>





















</ol>







>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
..
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<ol>
<li><a href="#q1">What GUIs are available for fossil?</a></li>
<li><a href="#q2">What is the difference between a "branch" and a "fork"?</a></li>
<li><a href="#q3">How do I create a new branch in fossil?</a></li>
<li><a href="#q4">How do I create a private branch that won't get pushed back to the
  main repository.</a></li>
<li><a href="#q5">How can I delete inappropriate content from my fossil repository?</a></li>
<li><a href="#q6">How do I make a clone of the fossil self-hosting repository?</a></li>
</ol>
<hr>
<a name="q1"></a>
<p><b>(1) What GUIs are available for fossil?</b></p>

<blockquote>The fossil executable comes with a web-based GUI built in.  Just run:

................................................................................
by not merging the changes in the private branch back into the trunk.</blockquote></li>

<a name="q5"></a>
<p><b>(5) How can I delete inappropriate content from my fossil repository?</b></p>

<blockquote>See the article on [./shunning.wiki | "shunning"] for details.</blockquote></li>

<a name="q6"></a>
<p><b>(6) How do I make a clone of the fossil self-hosting repository?</b></p>

<blockquote>Any of the following commands should work:
<blockquote><pre>
fossil  clone  http://www.fossil-scm.org/  fossil.fossil<br>
fossil  clone  http://www2.fossil-scm.org/  fossil.fossil<br>
fossil  clone  http://www.hwaci.com/cgi-bin/fossil  fossil.fossil
</pre></blockquote>
Once you have the repository cloned, you can open a local check-out
as follows:
<blockquote><pre>
mkdir fossil; cd fossil; fossil open ../fossil.fossil
</pre></blockquote>
Thereafter you should be able to keep your local check-out up to date
with the latest code in the public repository simply by typing:
<blockquote><pre>
fossil update
</pre></blockquote></blockquote></li>

</ol>