History of bitweaverCVS
Version 57
bitweaverCVS
Developer Management of bitweaver Source Code
Our CVS is hosted at SourceForge
Check out our groovy CVS Stats
Information on usage of SourceForge CVS is in Section F of the SourceForge Docs page.
to get a reliable list of all available modules and things that are available in CVS, please check out CVSROOT and view the modules file. there you can find the various modules and what virtual modules we have available and what exaclty they contain.
To get code for ReleaseOne, you want to check out the code from Sourceforge.
Developer Access: If you are you a member of the bitweaver project then you should (NOTE!! Make sure you "export CVS_RSH=ssh" in your /etc/profile or CVS shell first):
General Access: If not, you can get anonymous access. Note this method users a mirrored CVS and has a 24+ code delay with the :ext: method indicated above.
To get the latest and greatest code from cvs HEAD ( currently ReleaseTwo ), don't use any tags at all:
_adodb - the latest import and merge of the adodb library supported by bitweaver
_smarty - the latest import and merge of the smarty library supported by bitweaver
Fixes in STABLE get merged into TESTING as needed.
Fixes in TESTING, including those from STABLE, get merged into HEAD as needed.
Several tags are maintained on DEVELOPMENT, TESTING, and STABLE to manage the merge process. In general you should simple checkout the latest version of the brach you are working on. See ReleaseProcess for what should be done where.
Format:
e.g.: cvs rtag -b R1 _bit_calendar
NOTE about the -kk option: There is one major caveat with using `-kk' on merges. Namely, it overrides whatever keyword expansion mode CVS would normally have used. In particular, this is a problem if the mode had been `-kb' for a binary file. Therefore, if your repository contains binary files, you will need to deal with the conflicts rather than using `-kk'
Fedora Core: # yum -y install meld
and then get R1 and HEAD into seperate directories:
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co -d biteaver_R1 -r R1 bitweaver
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co -d biteaver_HEAD bitweaver
open meld, activate the CVS text filter in the preferences window, click on the new icon and select the 2 dirs:
in the compare directories tab select bitweaver_R1 as the Mine directory and the bitweaver_HEAD directory as the Original directory.
merge the two, and commit to CVS
i don't think any tags are needed in CVS if this method is used, but i might be mistaken.
Check out our groovy CVS Stats
CVS Introduction
An introduction to CVS use on SourceForge is Basic Introduction to CVS and SourceForge.net Project CVS Services.Information on usage of SourceForge CVS is in Section F of the SourceForge Docs page.
Setting up Tortoise
- right click on your desktop (or your html root directory) and select
CVS checkout... - in the CVSROOT line, type:
:pserver:anonymous@cvs.sf.net:/cvsroot/bitweaver - in the Module line, type:
bitweaver (or the module you want to get) - select the appropriate revision from the corresponding tab. this will usually be R plus the appropriate release version. e.g.:
R1
How is the bitweaverCVS organized
Modules
Our CVS tree has a cvs module for each package. However, a virtual CVS module is use to create our two primary distributions: bitweaver, bitweaverdev and bitweavercore. Every bitweaverRoadMap has a CVS branch named after it. The branch is create AFTER we have gone into schema freeze for the project.CVS Modules
- bitweaver
- Release material. these are the packages that are ready for general distribution.
- bitweaverdev
- all bitweaver packages that are currently available in CVS. contains dangerously explosive stuff and some packages are in serious flux and are not considered ready for general consumption. gives you an idea of what great stuff is going to be available in the near future!
- bitweavercore
- contains all core modules without any clutter. basically the minimum required to get a fully working version of bitweaver without any additional functionality.
CVS Branches
- R#
- R1 is equivalent to Release 1 and symbolises a stable release branch that will not undergo any API changes or database schema changes.
- HEAD
- No guarantees for stability provided. might break at any time and no real support provided. please only use this if you are a developer and know what you are doing.
to get a reliable list of all available modules and things that are available in CVS, please check out CVSROOT and view the modules file. there you can find the various modules and what virtual modules we have available and what exaclty they contain.
To get code for ReleaseOne, you want to check out the code from Sourceforge.
Developer Access: If you are you a member of the bitweaver project then you should (NOTE!! Make sure you "export CVS_RSH=ssh" in your /etc/profile or CVS shell first):
cvs -d :ext:yourusername@cvs.sf.net:/cvsroot/bitweaver co -r R1 bitweaver
General Access: If not, you can get anonymous access. Note this method users a mirrored CVS and has a 24+ code delay with the :ext: method indicated above.
cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/bitweaver co -r R1 bitweaver
To get the latest and greatest code from cvs HEAD ( currently ReleaseTwo ), don't use any tags at all:
cvs -d :ext:yourusername@cvs.sf.net:/cvsroot/bitweaver co bitweaver
Other modules:
_adodb - the latest import and merge of the adodb library supported by bitweaver
_smarty - the latest import and merge of the smarty library supported by bitweaver
Branches
As discussed in ReleaseProcess there are three active branches in cvs: STABLE, TESTING, and DEVELOPMENT. See ReleaseProcess for which branch is currently in which state.Development/HEAD
DEVELOPMENT is the cvs trunk also known as HEAD.Fixes in STABLE get merged into TESTING as needed.
Fixes in TESTING, including those from STABLE, get merged into HEAD as needed.
Several tags are maintained on DEVELOPMENT, TESTING, and STABLE to manage the merge process. In general you should simple checkout the latest version of the brach you are working on. See ReleaseProcess for what should be done where.
Format:
- Branch - Comment
- Tag - Comment
- Tag - Comment
Add a package to Rx
cvs rtag -b Rx <package>e.g.: cvs rtag -b R1 _bit_calendar
HEAD - Current Mainline
This is the leading edge of development.ReleaseOne R1
This is the version running on serveral sites and is considered stable. no database changes are made to this version and we try and maintain a stable environment.Version Merging
How merge to HEAD is done:
In R1/bitweaver directory:
cvs update -dP
cvs tag -cF R1_NEXTMERGE
In merge/HEAD directory:
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co bitweaver
cd bitweaver
cvs update -j R1_LASTMERGE -j R1_NEXTMERGE
cvs commit -m "Merge recent changes from R1 into HEAD"
cd ..
rm -rf bitweaver
Back in R1/bitweaver directory:
cvs tag -r R1_NEXTMERGE -F R1_LASTMERGE
In R1/bitweaver directory:
cvs update -dP
cvs tag -cF R1_NEXTMERGE
In merge/HEAD directory:
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co bitweaver
cd bitweaver
cvs update -j R1_LASTMERGE -j R1_NEXTMERGE
cvs commit -m "Merge recent changes from R1 into HEAD"
cd ..
rm -rf bitweaver
Back in R1/bitweaver directory:
cvs tag -r R1_NEXTMERGE -F R1_LASTMERGE
NOTE about the -kk option: There is one major caveat with using `-kk' on merges. Namely, it overrides whatever keyword expansion mode CVS would normally have used. In particular, this is a problem if the mode had been `-kb' for a binary file. Therefore, if your repository contains binary files, you will need to deal with the conflicts rather than using `-kk'
Merging using Meld
make sure you have Meld installed:Fedora Core: # yum -y install meld
and then get R1 and HEAD into seperate directories:
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co -d biteaver_R1 -r R1 bitweaver
cvs -d :ext:btodoroff@cvs.sourceforge.net:/cvsroot/bitweaver co -d biteaver_HEAD bitweaver
open meld, activate the CVS text filter in the preferences window, click on the new icon and select the 2 dirs:
in the compare directories tab select bitweaver_R1 as the Mine directory and the bitweaver_HEAD directory as the Original directory.
merge the two, and commit to CVS
i don't think any tags are needed in CVS if this method is used, but i might be mistaken.
How a release branch is created
In <release> directory:
cvs -d:ext:..... co bitweaver
In <release>/bitweaver directory:
cvs update -dP
cvs rtag -b -D <today date="" plus="" year:="" yyyy-mm-dd=""><release> bitweaver
cvs rtag -r <release><release>_LASTMERGE bitweaver
In <release> directory:
cvs -d:ext:..... co bitweaver
In <release>/bitweaver directory:
cvs update -dP
cvs rtag -b -D <today date="" plus="" year:="" yyyy-mm-dd=""><release> bitweaver
cvs rtag -r <release><release>_LASTMERGE bitweaver
Including 3rd party code in CVS
Is this the same stuff from UsingLibrariesInCVS? - wolff_borgHow merge to HEAD is done:
Let's say we want to import the excellent database abstraction layer
ADOdb version 4.60 into our CVS repository:
Now, we're going to check it out from CVS and fix a bug we found:
Now, we want to upgrade to version 4.62:
This command completed successfully, but reported the following:
1 conflicts created by this import.
Use the following command to help the merge:
So, let's delete the imported directory:
And checkout as instructed above.
Manually resolve any conflicts that were reported.
Now, let's commit our 4.60 changes into 4.62:
And finally remove our directory:
(Source: http://tikiwiki.org/tiki-index.php?page=UsingLibrariesInCVS)
Let's say we want to import the excellent database abstraction layer
ADOdb version 4.60 into our CVS repository:
$ wget http://phplens.com/lens/dl/adodb360.tgz
$ tar xvzf adodb360.tgz
$ rm adodb360.tgz
$ cd adodb
$ cvs import -m 'Imported ADOdb 4.60' _adodb PHPLENS_COM R4_60
$ cd ..
$ rm -fr adodb
Now, we're going to check it out from CVS and fix a bug we found:
$ cvs checkout _adodb
$ cd _adodb
...hack, chop, whittle...
$ cvs commit -m "Fixed bug #12345: Replace doesn't use native REPLACE command, if available"
$ cd ..
$ rm -fr _adodb
Now, we want to upgrade to version 4.62:
$ wget http://phplens.com/lens/dl/adodb462.tgz
$ tar xvzf adodb462.tgz
$ rm adodb462.tgz
$ cd adodb
$ cvs import -m 'Imported ADOdb 4.62' _adodb PHPLENS_COM R4_62
This command completed successfully, but reported the following:
1 conflicts created by this import.
Use the following command to help the merge:
cvs checkout -j -jR4_62 _adodb
So, let's delete the imported directory:
$ cd ..
$ rm -fr adodb
And checkout as instructed above.
$ cvs checkout -jR4_60 -jR4_62 _adodb
Manually resolve any conflicts that were reported.
Now, let's commit our 4.60 changes into 4.62:
$ cvs commit -m 'Merged our 4.60 changes into 4.62'
And finally remove our directory:
$ rm -fr _adodb
(Source: http://tikiwiki.org/tiki-index.php?page=UsingLibrariesInCVS)
Importing New Packages into CVS Modules
- If you are importing a module from TikiPro, firstly delete all CVS directories from the package.
- cd into the package directory you wish to import.
- Use the following to import the package {CODE()}$ cvs -qz5 -d:ext:bitweaver@cvs.sf.net:/cvsroot/bitweaver import -m'IMPORT TikiPro CLYDE FINAL' _bit_sample BITWEAVER HEAD{CODE}
- Add the module and alias to CVSROOT/modules and append to modules alias bitweaverdev
Changing Branch for specific CVS modules
needed to move a package from HEAD into release module.- modify CVSROOT/modules that the package is in the release module bitweaver
- cd to the module for which you want to change the branch tag
- cvs tag -R -b <branch>
- cvs up -r <branch>
- cvs commit
- to make sure it worked, you can remove the package dir and checkout the package again:
- cvs co -r <branch><cvs module="" /></branch></branch></branch></release></release></release></today></release></release></package>