The Official FVWM Homepage - CVS Procedures
Overview
Fvwm2 development uses a CVS server.
To know what is going in with the source tree you should be reading
mail on the Fvwm Workers List. See the Mailing List Info page for more
information.
Development Source Code Download
To just download development source code, you can use the "anonymous" login.
Of course, you need the cvs client software on your local machine.
First you must login:
cvs -z3 -d :pserver:anonymous@cvs.hpc.uh.edu:/home/cvs/fvwm login
(The password is 'guest'). If you see no reaction to this command
that indicates it worked.
Then you can checkout the latest source code with:
cvs -z3 -d :pserver:anonymous@cvs.hpc.uh.edu:/home/cvs/fvwm checkout fvwm
This creates a "fvwm" directory in your current directory. Under the
"fvwm" directory you will find the current main branch source code.
Note: the state of this code fluctuates wildly. It will
contain bugs, maybe ones that crash the program; it may not even
compile for you. Consider it alpha-quality code.
Branches
You can see branches off the main branch by using the "status -v" command:
cd fvwm
cvs status -v README
(Once you "cd" into the source directory, you no longer have to type in
the whole "-d" argument, its stored inside the source tree.)
The "status -v" command should be issued against a file that has been in the source
tree from the very beginning. The "README" file is always a good bet.
To retrieve a branch, you can do the "checkout" shown above with the "-r branch_name"
argument:
cvs -z3 -d :pserver:anonymous@cvs.hpc.uh.edu:/home/cvs/fvwm checkout -r branch_name fvwm
Getting Updates
If you have an existing tree, and you just want to update it:
cd fvwm
cvs update (-r branch_name)
The "update" command can be used to go to any branch in the tree, it
doesn't matter whether it is an earlier or later branch. "Update"
without an argument makes the tree current based on the branch it was
last on.
Getting Update Access
Using the procedures described above, and being on the workers list
are a pre-requisite to gaining update access. We expect to have heard
from you more than once on the fvwm-workers list so that we have some
idea who you are.
Doing some testing, submitting some patches, and getting involved
in the discussions will help us know about you.
After you have been involved for a while,
if we don't suggest it, then ask.
The fvwm2 development team is not a closed environment, we welcome new
members. There are no required duties, all work is strictly voluntary.
If there is agreement on the list that you should be given update access,
you will need to choose a CVS user ID and provide an encrypted password.
The latter can be obtained with the following Perl snippet:
perl -e 'print crypt("yourpass",join("",((a..z,A..Z,0..9)[rand(62),rand(62)]))), "\n"'
Change 'yourpass' to whatever you want your password to be.
Once you have update access, re-do the "login" command above using your
CVS user ID in place of 'anonymous', and your password in place of
'guest', and you are on your way.
Starting a Project
Discuss your ideas on the workers list before you start.
Someone may be working on the same thing you have in mind.
If you just have a small patch you want to make, you may just commit it
to the main branch. If the change is large, and lots of other work
is going on, you may want to do your changes on a "side branch" which
will get merged into the main branch later on.
Creating a Branch
Branches are assigned names. We prefer branch names consisting
of 2 fully spelled out words connected by an underscore.
The first branch was "animate_icons" which should set the pattern
for future branch names.
Assuming you have a checked out source tree, you create a branch
called new_branch:
cd fvwm
cvs rtag new_branch_start fvwm
cvs rtag -b -r new_branch_start new_branch fvwm
Every branch must have a start tag. The "-r new_branch_start"
puts the branch "new_branch" on the "new_branch_start"
branch.
The "-b" makes the branch a branch off the main branch.
Adding Directories and Files
First create the new directories and modules. Then, assuming
the new directory is named "newdir" and the new module is
"newmod.c":
cd fvwm
cvs add -m "New directory for ..." newdir
cd newdir
cvs add -m "New module for ..." newmod.c
Committing Changes
When you commit, you can commit from a sub-directory, or from
the top of the tree. If you don't indicate the file to commit,
everything you have added (with add), changed or deleted (with remove)
is committed from the current directory down.
cd fvwm
cvs commit (-r branch_name) (files)