Git Access for Gforth

Gforth is now version-controlled with git, and you can access it through the Gforth Git repository. Among other things, you can view the log or the files of the master branch.

All the versions that were in CVS are in the git Repository (if the conversion tool worked correctly). So the following is obsolete for all ordinary purposes.

Public CVS access for Gforth (obsolete)

To download all of the sources, use anonymous pserver access. For browsing a few files or patches, you might prefer the Web-based access.

Web-based access

We offer two services: Which one is better? I don't know. Try one, and if you don't like it, try the other.

Anonymous cvs pserver access

For this access method, you need to have cvs installed. Then you can get the Gforth sources with
cvs -d :pserver:anonymous@c1.complang.tuwien.ac.at:/nfs/unsafe/cvs-repository/src-master co gforth

In order to build Gforth, you need to have a moderately recent version of Gforth installed (e.g., from one of the distribution packages). Then you can type

./BUILD-FROM-SCRATCH
and ideally, this will build a bleeding-edge version of Gforth. At the time of this writing, this fails (by hanging in an invocation of Gforth), but you can work around this problem by killing the gforth process (e.g., with killall gforth on Linux systems) and then continuing with
make

Developer CVS access (obsolete)

The previous access method provides read-only access. If you ever want to become a Gforth developer, you need write access (but nowadays to git, so the following is totally obsolete); you will get an account on one of our machines, and can then get the Gforth sources with
export CVS_RSH=ssh
cvs -d :ext:user@mips.complang.tuwien.ac.at:/nfs/unsafe/cvs-repository/src-master co gforth
(where user is your account name on the machine mips).

If you have already done changes to the directory tree you created with the pserver method, and want to check them in, a good way to do it is to change all the CVS/Root files from :pserver:anonymous@c1.complang.tuwien.ac.at:/nfs/unsafe/cvs-repository/src-master to :ext:user@mips.complang.tuwien.ac.at:/nfs/unsafe/cvs-repository/src-master, e.g., like this:

cd .../gforth
for i in `find . -name Root -print|grep CVS/Root`
do
 echo ':ext:user@mips.complang.tuwien.ac.at:/nfs/unsafe/cvs-repository/src-master' >$i
done

Note that it is a bad idea to separate a file from its CVS directory (e.g., by copying it from the pserver tree to the write-enabled ext tree), because this can lead to inconsistencies (e.g., commiting something derived from an outdated version, thus undoing the changes in between). Yes, I have seen this happen in practice, and the results were unpleasant.


Anton Ertl