DELETED .dockerignore Index: .dockerignore ================================================================== --- .dockerignore +++ /dev/null @@ -1,26 +0,0 @@ -_FOSSIL_ -.fslckout -ajax -art -autosetup -bld -compat -debian -fossil -fossil.exe -setup -src -test -tools -win -wbld -win -www -*.a -*.lib -*.log -*.manifest -*.o -*.obj -*.pdb -*.res DELETED .fossil-settings/clean-glob Index: .fossil-settings/clean-glob ================================================================== --- .fossil-settings/clean-glob +++ /dev/null @@ -1,17 +0,0 @@ -*.a -*.lib -*.manifest -*.o -*.obj -*.pdb -*.res -Makefile -bld/* -wbld/* -win/*.c -win/*.h -win/*.exe -win/headers -win/linkopts -autoconfig.h -config.log DELETED .fossil-settings/encoding-glob Index: .fossil-settings/encoding-glob ================================================================== --- .fossil-settings/encoding-glob +++ /dev/null @@ -1,2 +0,0 @@ -compat/zlib/contrib/dotzlib/DotZLib/*.cs -win/fossil.rc DELETED .fossil-settings/ignore-glob Index: .fossil-settings/ignore-glob ================================================================== --- .fossil-settings/ignore-glob +++ /dev/null @@ -1,5 +0,0 @@ -compat/openssl* -compat/tcl* -fossil -fossil.exe -win/fossil.exe Index: BUILD.txt ================================================================== --- BUILD.txt +++ BUILD.txt @@ -22,11 +22,11 @@ cd win; nmake /f Makefile.msc If you have trouble, or you want to do something fancy, just look at Makefile.classic. There are 6 configuration options that are all well -commented. Instead of editing the Makefile.classic, consider copying +commented. Instead of editing the Makefile.classic, consider copying Makefile.classic to an alternative name such as "GNUMakefile", "BSDMakefile", or "makefile" and editing the copy. BUILDING OUTSIDE THE SOURCE TREE @@ -61,11 +61,11 @@ Do not edit src/main.mk directly. Update src/makemake.tcl and then rerun it. * The *.h header files are automatically generated using a program called "makeheaders". Source code to the makeheaders program is - found in src/makeheaders.c. Documentation is found in + found in src/makeheaders.c. Documentation is found in src/makeheaders.html. * Most *.c source files are preprocessed using a program called "translate". The sources to translate are found in src/translate.c. A header comment in src/translate.c explains in detail what it does. Index: COPYRIGHT-BSD2.txt ================================================================== --- COPYRIGHT-BSD2.txt +++ COPYRIGHT-BSD2.txt @@ -1,31 +1,31 @@ Copyright 2007 D. Richard Hipp. All rights reserved. -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above - copyright notice, this list of conditions and the + copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -The views and conclusions contained in the software and documentation -are those of the authors and contributors and should not be interpreted +The views and conclusions contained in the software and documentation +are those of the authors and contributors and should not be interpreted as representing official policies, either expressed or implied, of anybody else. DELETED Dockerfile Index: Dockerfile ================================================================== --- Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -### -# Dockerfile for Fossil -### -FROM fedora:23 - -### Now install some additional parts we will need for the build -RUN dnf update -y && dnf install -y gcc make zlib-devel openssl-devel tar && dnf clean all && groupadd -r fossil -g 433 && useradd -u 431 -r -g fossil -d /opt/fossil -s /sbin/nologin -c "Fossil user" fossil - -### If you want to build "trunk", change the next line accordingly. -ENV FOSSIL_INSTALL_VERSION release - -RUN curl "http://core.tcl.tk/tcl/tarball/tcl-src.tar.gz?name=tcl-src&uuid=release" | tar zx -RUN cd tcl-src/unix && ./configure --prefix=/usr --disable-load && make && make install -RUN curl "http://www.fossil-scm.org/index.html/tarball/fossil-src.tar.gz?name=fossil-src&uuid=${FOSSIL_INSTALL_VERSION}" | tar zx -RUN cd fossil-src && ./configure --disable-fusefs --json --with-th1-docs --with-th1-hooks --with-tcl --with-tcl-stubs --with-tcl-private-stubs -RUN cd fossil-src/src && mv main.c main.c.orig && sed s/\"now\"/0/ main.c -RUN cd fossil-src && make && strip fossil && cp fossil /usr/bin && cd .. && rm -rf fossil-src && chmod a+rx /usr/bin/fossil && mkdir -p /opt/fossil && chown fossil:fossil /opt/fossil - -### Build is done, remove modules no longer needed -RUN dnf remove -y gcc make zlib-devel openssl-devel tar && dnf clean all - -USER fossil - -ENV HOME /opt/fossil - -EXPOSE 8080 - -CMD ["/usr/bin/fossil", "server", "--create", "--user", "admin", "/opt/fossil/repository.fossil"] Index: Makefile.classic ================================================================== --- Makefile.classic +++ Makefile.classic @@ -25,42 +25,30 @@ #### The suffix to add to final executable file. When cross-compiling # to windows, make this ".exe". Otherwise leave it blank. # E = -#### C Compile and options for use in building executables that +#### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. This C compiler builds # the finished binary for fossil. The BCC compiler above is used # for building intermediate code-generator tools. # #TCC = gcc -O6 #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage TCC = gcc -g -Os -Wall -# To use the included miniz library -# FOSSIL_ENABLE_MINIZ = 1 -# TCC += -DFOSSIL_ENABLE_MINIZ - # To add support for HTTPS TCC += -DFOSSIL_ENABLE_SSL -#### We sometimes add the -static option here so that we can build a -# static executable that will run in a chroot jail. -#LIB = -static -TCC += -DFOSSIL_DYNAMIC_BUILD=1 - #### Extra arguments for linking the finished binary. Fossil needs -# to link against the Z-Lib compression library unless the miniz -# library in the source tree is being used. There are no other -# required dependencies. -ZLIB_LIB.0 = -lz -ZLIB_LIB.1 = -ZLIB_LIB. = $(ZLIB_LIB.0) - -# If using zlib: -LIB += $(ZLIB_LIB.$(FOSSIL_ENABLE_MINIZ)) $(LDFLAGS) +# to link against the Z-Lib compression library. There are no +# other dependencies. We sometimes add the -static option here +# so that we can build a static executable that will run in a +# chroot jail. +# +LIB = -lz $(LDFLAGS) # If using HTTPS: LIB += -lcrypto -lssl #### Tcl shell for use in running the fossil testsuite. If you do not Index: Makefile.in ================================================================== --- Makefile.in +++ Makefile.in @@ -37,14 +37,15 @@ # care about testing the end result, this can be blank. # TCLSH = tclsh LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@ -TCCFLAGS = @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H +TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H INSTALLDIR = $(DESTDIR)@prefix@/bin USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@ -FOSSIL_ENABLE_MINIZ = @FOSSIL_ENABLE_MINIZ@ +FOSSIL_ENABLE_TCL = @FOSSIL_ENABLE_TCL@ +FOSSIL_ENABLE_TCL_STUBS = @FOSSIL_ENABLE_TCL_STUBS@ include $(SRCDIR)/main.mk distclean: clean rm -f autoconfig.h config.log Makefile Index: VERSION ================================================================== --- VERSION +++ VERSION @@ -1,1 +1,1 @@ -1.35 +1.25 Index: ajax/i-test/rhino-test.js ================================================================== --- ajax/i-test/rhino-test.js +++ ajax/i-test/rhino-test.js @@ -42,11 +42,11 @@ }; cb.onResponse = function(resp,req){ if(!TestApp.verbose) return; print("GOT RESPONSE: "+(('string'===typeof resp) ? resp : WhAjaj.stringify(resp))); }; - + })(); /** Throws an exception of cond is a falsy value. */ @@ -127,11 +127,11 @@ function testIAmNobody(){ TestApp.fossil.whoami('/json/whoami'); assert('nobody' === TestApp.fossil.auth.name, 'User == nobody.' ); assert(!TestApp.fossil.auth.authToken, 'authToken is not set.' ); - + } testIAmNobody.description = 'Ensure that current user is "nobody".'; function testAnonymousLogin(){ @@ -183,11 +183,11 @@ onResponse:function(resp,req){ rs = resp; } }); assertResponseOK(rs); - assert(3 == rs.payload.parents.length, 'Got 3 parent artifacts.'); + assert(3 == rs.payload.artifact.parents.length, 'Got 3 parent artifacts.'); } testFetchCheckinArtifact.description = '/json/artifact/CHECKIN'; function testAnonLogout(){ var rs; @@ -221,11 +221,11 @@ req = json = outs = osr = osb = undefined; var ins = p.getInputStream(); var isr = new java.io.InputStreamReader(ins); var br = new java.io.BufferedReader(isr); var line; - + while( null !== (line=br.readLine())){ print(line); } br.close(); isr.close(); Index: ajax/index.html ================================================================== --- ajax/index.html +++ ajax/index.html @@ -3,18 +3,18 @@ Fossil/JSON raw request sending - + - - * Example - 100 most recent check-ins. - - * Example - All changes to the src/file.c source file. - - * Example - All check-ins using a particular version of the src/file.c - source file. - - * Example - Check-ins proximate to an historical point in time (2014-01-01). - - * Example - The previous example augmented with file changes. - - * Example - First 25 check-ins after 1970-01-01. (The first 25 check-ins of - the project.) - - * Example - All check-ins of the "svn-import" branch together with check-ins - that merge with that branch. - - * Example - All check-ins of the "svn-import" branch only. - - * Example - 100 most recent check-ins color coded by committer rather than by branch. - - * Example - All check-ins on the most direct path from - version-1.27 to version-1.28 - - * Example - Show check-ins that contain file name changes - - * Example - Show check-ins circa 2014-01-08 by user "drh". - - (Hint: In the pages above, click the graph nodes - for any two check-ins or files to see a diff.) - - - * Example - Full-text search for "interesting pages". - - * Example - All files for a particular check-in (daff9d20621480) - - * Example - All files for the latest check-in on a branch (trunk) sorted by - last modification time. - - * Example - Age of all files in the latest checking for branch "svn-import". - - * Example - Table of branches. (Click on column headers to sort.) - - * Example - Overall repository status. - - * Example - Number of check-ins per committer. - - * Example - Number of check-ins for each source file. - (Click on column headers to sort.) - - * - Example - Most recent change to each line of a particular source file in a - particular check-in. - - * Example - List of tags on check-ins. - - * Example - The largest objects in the repository. - - * Example - SHA1 prefix collisions Index: www/webui.wiki ================================================================== --- www/webui.wiki +++ www/webui.wiki @@ -8,19 +8,19 @@ * [./wikitheory.wiki | Wiki] * [./embeddeddoc.wiki | On-line documentation] * Status information * Timelines * Graphs of revision and branching history - * [./event.wiki | Technical notes] + * [./event.wiki | Blogs, News, and Announcements] * File and version lists and differences * Download historical versions as ZIP archives * Historical change data - * Add and remove tags on check-ins - * Move check-ins between branches - * Revise check-in comments + * Add and remove tags on checkins + * Move checkins between branches + * Revise checkin comments * Manage user credentials and access permissions - * And so forth... (some [./webpage-ex.md|examples]) + * And so forth... You get all of this, and more, for free when you use Fossil. There are no extra programs to install or setup. Everything you need is already pre-configured and built into the self-contained, stand-alone Fossil executable. @@ -61,18 +61,17 @@ fossil ui The latter case is a very useful short-cut when you are working on a Fossil project and you want to quickly do some work with the web interface. Notice that Fossil automatically finds an unused TCP port to run the -server on and automatically points your web browser to the correct +server own and automatically points your web browser to the correct URL. So there is never any fumbling around trying to find an open port or to type arcane strings into your browser URL entry box. The interface just pops right up, ready to run. The Fossil web interface is also very easy to setup and run on a -network server, as either a CGI program or from inetd, or as an -SCGI server. Details on how +network server, as either a CGI program or from inetd. Details on how to do that are described further below.

Things To Do Using The Web Interface

You can view timelines of changes to the project. The default @@ -104,16 +103,16 @@ of time learning a new markup language. And, as with tickets, all of your edits will automatically merge with those of your co-workers when your repository synchronizes. You can view summary reports of branches in the -check-in graph by visiting the "Branches" link on the +check-in graph by visiting the "Branche" links on the menu bar. From those pages you can follow hyperlinks to get additional details. These screens allow you to easily keep track of what is going on with separate subteams within your project team. -The "Files" link on the menu allows you to browse through the file +The "Files" link on the menu allows you to browse though the file hierarchy of the project and to view complete changes histories on individual files, with hyperlinks to the check-ins that made those changes, and with diffs and annotated diffs between versions. The web interface supports [./embeddeddoc.wiki | embedded documentation]. @@ -136,12 +135,11 @@

Installing On A Network Server

When you create a new Fossil project and after you have configured it like you want it using the web interface, you can make the project available to a distributed team by simply copying the single -repository file up to a web server that supports CGI or SCGI. To -run Fossil as CGI, just put the +repository file up to a web server that supports CGI. Just put the sample-project.fossil file in a directory where CGI scripts have both read and write permission on the file and the directory that contains the file, then add a CGI script that looks something like this: @@ -153,15 +151,11 @@ of course, and also make sure the Fossil binary is installed on the server. But that is all you have to do. You now have everything you need to host a distributed software development project in less than five minutes using a two-line CGI script. -Instructions for setting up an SCGI server are -[./scgi.wiki | available separately]. - -You don't have a CGI- or SCGI-capable web server running on your -server machine? +You don't have a CGI-capable web server running on your server machine? Not a problem. The Fossil interface can also be launched via inetd or xinetd. An inetd configuration line sufficient to launch the Fossil web interface looks like this: Index: www/wikitheory.wiki ================================================================== --- www/wikitheory.wiki +++ www/wikitheory.wiki @@ -5,12 +5,12 @@ * Stand-alone wiki pages. * Description and comments in [./bugtheory.wiki | bug reports]. * Check-in comments. * [./embeddeddoc.wiki | Embedded documentation] files whose - name ends in ".wiki". - * [./event.wiki | Technical notes]. + name ends in "wiki". + * [./event.wiki | Event descriptions]. The [/wiki_rules | formatting rules] for fossil wiki are designed to be simple and intuitive. The idea is that wiki provides paragraph breaks, numbered and bulleted lists, and hyperlinking for simple documents together with a safe subset of HTML for more complex @@ -31,14 +31,10 @@ 3. Where the fossil wiki markup language is insufficient, HTML is used. HTML is a standard language familiar to most programmers so there is nothing new to learn. And, though cumbersome, the HTML does not need to be used very often so is not a burden. -UPDATE: Since 2012, Fossil also contains a [/md_rules | Markdown] -rendering engine. Markdown can optionally be used to format -[./embeddeddoc.wiki | embedded documents], wiki pages, -[./event.wiki | technical notes], and bug report text.

Stand-alone Wiki Pages

Each wiki page has its own revision history which is independent of the sequence of check-ins (check-ins). Wiki pages can branch and merge DELETED www/xkcd-git.gif Index: www/xkcd-git.gif ================================================================== --- www/xkcd-git.gif +++ /dev/null cannot compute difference between binary files