[parisc-linux] CVS palinux 2.4/2.5/workarounds proposal

Paul Bame bame@fc.hp.com
Thu, 12 Jul 2001 15:58:51 -0600

Due to CVS bugs and the upcoming extra demands as we cope with both
2.4 and 2.5 linux, I propose the following architecture including
a sketch for how to transition.

In futureworld, we will have 4 branches:

What				Branch Name

upstream 2.4 sources		linus23 (also called linus24)
2.4 parisc development		devel23 (also called devel24)

upstream 2.5/2.6 sources	linus25 (also called linus26 later)
2.5/2.6 parisc development	devel25 (also called devel26 later)

The default branch which comes from CVS if you merely do a 'cvs co linux'
will be the devel23 branch.  Revision numbers in the devel23 branch
will be 2.3.X.X and in the devel25 branch, 2.5.X.X.  The HEAD/trunk
will contain no files and never be used again.  Note that the CVS features
for making this as convenient as today's development model are simple
and will not in general incur extra work.

Transition sketch:

    Populate the linus23 upstream branch:
	# The current Linus upstream branch is called 'linus', or 1.1.1,
	# which we'll just re-use under a new name(s)
	cvs co -rlinus linux
	# Add the alias 'linus23'
	cvs admin -nlinus23:linus
	# Add the alias 'linus24'
	cvs admin -nlinus24:linus

    Populate the devel23 branch:
        cvs up -RAPd
	cvs commit -r2.3
	cvs rtag -r2.3 -b devel23 linux
	cvs admin -ndevel24:devel23
	cvs up -rdevel23 -RPd
	# do not use commit -Rf -- doesn't work
	cvs commit -f -m'moved from HEAD' -R

    Make devel23 the default:
    	cvs admin -b2.3.2 (or cvs admin -bdevel23 if that works)

    Nuke the current trunk:
	cvs up -RAPd
        find . | fgrep -v CVS | xargs cvs rm -f
	cvs commit -m'moved everything to the devel23 branch'
	cvs up -RAPd # should be empty directory now

    	the /cvs CGI

    Populate linus25 when 2.5 is released (trickery):
	cvs rtag -r1.1 -b linus25 linux
	cvs up -r1.1		# yes, this is required :-(
        cvs up -rlinus25
	Turn these files into linux 2.5 bits (cvs rm, cvs add, etc...)
	cvs commit -f -m 'import 2.5' -R

    Populate devel25 (more trickery):
	cvs up -RPd -r2.5	# should be EMPTY
	# bring in 2.3 devel
	cvs up -jdevel23 -RPd
	# Merge 2.4->2.5 changes
	cvs up -jlinus23 -jlinus25 -RPd
	cvs commit -f -R -m 'populate devel25 step 1'
	cvs rtag -r2.5 -b devel25 linux
	cvs up -rdevel25 -RPd
	cvs admin -ndevel26:devel25