Please see http://wiki.squid-cache.org/CvsInstructions for CVS repository access or http://wiki.squid-cache.org/Squid3VCS for current versioning system access
Module | Description |
---|---|
website | Web site on devel.squid-cache.org |
squid3 | Squid HTTP proxy Version 3 (read-only mirror) |
squid | Squid HTTP proxy Version 2 |
tag | Description | |
---|---|---|
HEAD / none | Squid-3 HEAD mirrored from cvs.squid-cache.org | |
Z-* | Temporary tags used by automated update tools. |
tag | Description | |
---|---|---|
HEAD / none | Squid-2 HEAD mirrored from cvs.squid-cache.org | |
s2_5 | Squid-2.5 mirrored from cvs.squid-cache.org | |
s2_4 | Squid-2.4 mirrored from cvs.squid-cache.org | |
s2_3 | Squid-2.3 mirrored from cvs.squid-cache.org | |
s2_2 | Squid-2.2 mirrored from cvs.squid-cache.org | |
Z-* | Temporary tags used by automated update tools. |
To ease the maintenance of this development CVS repository we use a set of scripts to create and maintain our branches within the CVS tree. All developers creating or maintaining branches of Squid is expected to use these scripts as suitable and the procedures outlined below.
cvsmkbranch newbranchname
" to create the new branch, where newbranchname is the name of the new branch. See the rules for naming convention. This creates the branch, initializes tags used in later branch merging and checks out a working source directory for you.
cvs -d user@cvs.devel.squid-cache.org:/cvsroot/squid co squid3
" to get a copy of the HEAD revision of Squid
cd squid3
"
cvsmkbranch your_new_branch
" to create your branch
cd ../your_new_branch
cvs commit
" to save your changes
If you need to merge another branch into yours, as might happen when you need another unrelated change to continue your work, then use the following procedure
cvsmergeinit otherbranch its_base_branch
" to set up branch tracing between your branch and the other branch.
cvsmerge otherbranch
" to merge the changes of other branch into yours.
After this you can move your branchpoint to "otherbranch
" if you like. If so then please delete the old tracking tags by running
cvs tag -d Z-yourbranch_merge_oldbasebranch
"
cvs rag -d Z-yourbranch_merge-new_oldbasebranch
"
Alternatively use the cvsmovebranch to move your branch in one operation (equivalent to cvsmergeinit followed by delete of old tracking tags)
To generate a diff with all changes in your branch the following CVS command can be used:
"cvs rdiff -r Z-branchname_merge_basetag -r branchname diff -u
"
To simplify the above and correct some cosmetic issues with CVS diff files I have written two scripts: cvsmkpatch
, and it's supporting cleanpatch
script.
If you need to freeze a patch release then use the cvsmkpatch script with a additional argument for the release name (usually todays date). This is suitably done when you are to submit a patch for inclusion into the main Squid source tree.
cvsmkpatch basebranch revision >../your_branch-revision.patch
This will create CVS tags to allow recreation of the exact patch file, or to check out the exact sources from either your branch or the base branch at the time of the patch.
Warning: Not working properly due to limitations in current CVS versions
When a branch is finished and integraded into Squid then the branch should be closed. Closing a branch is done by running the cvsclosebranch script.
The script verifies that the branch is empty before removing. If not emtpy then it can optionally create a patch tag on the remains before removing the branch. (the branch won't get removed if there is any remains and no patch tag name has been selected)
Closing a branch is also suitable when a branch is to be merged in full into the main sources, but only do this if you are sure there won't need to be any bugfixes before it is merged. This is probably best done by the core developer member who merges your branch into the main Squid sources.
Checklist/requirements when you want to get your changes committed to the main Squid release are covered in the Squid Wiki under MergeProcedure.
Change logs in this developer CVS tree are automatically mailed to the squid-cvs mailing list. Subscribe to this list if you want to be notified on changes to the developer CVS repository.