This is the mail archive of the ecos-devel@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ECOS] Keeping 2.0 source tree up to date


Reinhard JESSICH wrote:

I would *not suggest* using the vendor branch feature of CVS directly on the main branch, as you might end up with an inconsistent state (at least temporarily).

Here is what we are doing:

We checked out a local copy from the annon CVS. Then we imported
it to our CVS main branch with the "cvs import" command. After that we created a branch
and started our own developments on this branch.

We have a cron job running, which will update the local copy of the annon CVS weekly and
generate a diff report about the ChangeLog files. This report is checked by the developers
and if there is an interesting change, we import from the local copy of the annon CVS to our
main branch "cvs import vendor-tag release-tag". We do this at least once in two months,
to keep track of the ongoing development.

As a final step we incorporate the changes on the main branch (same as annon CVS) into
our development branch. This is now very simple. Use:
"cvs update -j last-release -j new-release". This command will update our development with
only those changes, which were made between the two releases. last-release and new-release
are the release tags which were defined with "cvs import".

Note, that it is important to work on an development branch, because the "cvs import"
command automatically merges and commits. If you work directly on the main
branch you are not really happy about this (I know it from experience).

Er. This sounds like using a vendor branch only you're using the main branch as the vendor branch and your development branch as the main branch.


FWIW, find two scripts attached that we use.

David Vrabel
--
David Vrabel, Design Engineer

Arcom                         Tel: +44 (0)1223 411200 ext. 3233
Clifton Road                  Fax: +44 (0)1223 403400
Cambridge CB1 7EA             E-mail: dvrabel@arcom.com
UK                            Web: http://www.arcom.com/


________________________________________________________________________ This email has been scanned for all viruses by the MessageLabs Email Security System. For more information on a proactive email security service working around the clock, around the globe, visit http://www.messagelabs.com ________________________________________________________________________
#! /bin/sh
# edk-ecos-commit-merge -- commits the latest merge of upstream eCos with
# the local ecos repository.
#
# Instructions:
# 1. Run
#    $ edk-ecos-import-upstream <directory>
# 2. Manually fix conflicts in <directory>/ecos-merged
# 3. Run
#    $ edk-ecos-import-upstream <directory>

set -e

if [ -z "$1" ]; then
    echo "Usage:"
    echo "  $(basename $0) <directory>"
    exit 1
fi

TOPDIR=$1

LATEST_IMPORT_TAG=ECOS_LATEST_IMPORT
TAG_DATE=$(date "+%Y%m%d")
HUMAN_DATE=$(date)

if [ ! -d ${TOPDIR}/ecos-merged ]; then
    echo "$(basename $0): \`${TOPDIR}' doesn't contain the merged ecos tree"
    exit 1
fi

cd ${TOPDIR}/ecos-merged
cvs commit -m "Merged from upstream CVS (${HUMAN_DATE})."

# Move the ECOS_LATEST_IMPORT tag
cvs rtag -F -r ECOS_${TAG_DATE} ${LATEST_IMPORT_TAG} ecos
#! /bin/sh
# edk-ecos-import-upstream -- imports the latest eCos from upstream CVS into
# the local ecos repository.
#
# Instructions:
# 1. Run
#    $ edk-ecos-import-upstream <directory>
# 2. Manually fix conflicts in <directory>/ecos-merged
# 3. Run
#    $ edk-ecos-import-upstream <directory>


set -e

if [ -z "$1" ]; then
    echo "Usage:"
    echo "  $(basename $0) <directory>"
    exit 1
fi

TOPDIR=$1

LATEST_IMPORT_TAG=ECOS_LATEST_IMPORT
TAG_DATE=$(date "+%Y%m%d")
HUMAN_DATE=$(date)

if [ -e ${TOPDIR}/ecos -o -e ${TOPDIR}/ecos-merged ]; then
    echo "$(basename $0): \`${TOPDIR}' contains a possible ecos repository already"
    exit 1
fi

# Grab the latest eCos upstream...
cd $TOPDIR
cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/ecos login
cvs -z3 -d :pserver:anoncvs@sources.redhat.com:/cvs/ecos co -P ecos
cd ecos
find -type d -a -name CVS |  xargs rm -r
cvs import -m "Imported from upstream CVS (${HUMAN_DATE})." ecos upstream ECOS_${TAG_DATE}

cd $TOPDIR
cvs co -j$LATEST_IMPORT_TAG -jECOS_${TAG_DATE} -d ecos-merged ecos

echo -e "\n*\n* Manually fix conflicts in \`${TOPDIR}/ecos-merged'.\n*\n"
echo "Then run \`edk-ecos-commit-merge ${TOPDIR}'."

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]