public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] Keeping 2.0 source tree up to date
@ 2003-09-22 14:44 Grant Edwards
  2003-09-22 15:17 ` Andrew Lunn
  0 siblings, 1 reply; 12+ messages in thread
From: Grant Edwards @ 2003-09-22 14:44 UTC (permalink / raw)
  To: eCos Discussion


Whats the recommended way to keep a 2.0 source tree up to date
with bug fixes?

Do I need to try to get BOFH to allow access to the CVS tree?

Is there an official archive of approved patches somewhere that
can be downloaded?

-- 
Grant Edwards
grante@visi.com

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [ECOS] Keeping 2.0 source tree up to date
@ 2003-09-23 11:03 Reinhard JESSICH
  2003-09-29 15:50 ` Roland Caßebohm
  0 siblings, 1 reply; 12+ messages in thread
From: Reinhard JESSICH @ 2003-09-23 11:03 UTC (permalink / raw)
  To: gary, grante; +Cc: ecos-discuss

>>> Grant Edwards <grante@visi.com> 09/22/03 09:34pm >>>
> On Mon, Sep 22, 2003 at 01:29:28PM -0600, Gary Thomas wrote:
> > What I do is have my own CVS server (repository).  Then, at
> > certain times such as starting a new project, I merge the
> > public CVS to the trunk of my local tree.  I then tag it and
> > work from there - all local. That way, I have an exact copy of
> > the public tree I started from, as well as any changes I needed
> > to make for the project.  If/when it makes sense, I can then
> > also push my local changes back to the public tree.

> That's definitely the right way to do it.  I've just been
> reading up on CVS "vendor" tags" which appear to be designed
> for just such situations.

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).

BR
   Reinhard

-- 
 Ing. Reinhard Jessich                Phone: +43/1/81150/2395
 Software Design                      Fax: +43/1/81150/3169
 Frequentis Nachrichtentechnik GmbH   A-1120 Wien, Spittelbreitengasse 34
 http://www.frequentis.com            eMail: reinhard.jessich@frequentis.com


--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [ECOS] Keeping 2.0 source tree up to date
@ 2003-09-23 11:32 David Vrabel
  0 siblings, 0 replies; 12+ messages in thread
From: David Vrabel @ 2003-09-23 11:32 UTC (permalink / raw)
  To: ecos-discuss

[-- Attachment #1: Type: text/plain, Size: 2371 bytes --]

[Oops.  Sent this too the wrong list.]

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
________________________________________________________________________

[-- Attachment #2: edk-ecos-commit-merge --]
[-- Type: text/plain, Size: 800 bytes --]

#! /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


[-- Attachment #3: edk-ecos-import-upstream --]
[-- Type: text/plain, Size: 1174 bytes --]

#! /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}'."



[-- Attachment #4: Type: text/plain, Size: 146 bytes --]

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 12+ messages in thread
[parent not found: <sf787ac4.077@mail.frequentis.com>]
* Re: [ECOS] Keeping 2.0 source tree up to date
@ 2003-09-30  3:16 Reinhard JESSICH
  0 siblings, 0 replies; 12+ messages in thread
From: Reinhard JESSICH @ 2003-09-30  3:16 UTC (permalink / raw)
  To: gary, grante, roland.cassebohm; +Cc: ecos-discuss

>>> Roland Caßebohm <roland.cassebohm@visionsystems.de> 09/29/03 05:50pm >>>

<snip>

> > 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.

> Is vendor-tag everytime the same, or do I have to rename it everytime I call
> cvs import?
> With release-tag I will do somthing like release-yyyy_mm_dd, but I'm not 
> sure what to do with the vendor-tag.

The vendor-tag have to be the same for several imports.
We use "ecos-2-0-repo" and "ecos-ddmmyy" for the release-tag.
If there will be an ecos-3.0 version in the future, we will use "ecos-3-0-repo" as
vendor-tag. But then we have to import it to an other branch. So you will need the
-b option for cvs import. cvs import uses -b 1.1.1 as the default. If you will not use
-b 1.1.2 for the new branch, cvs will import it to the 1.1.1 branch, which is
"ecos-2-0-repo". Using -b is necessary, because cvs doesn't use the vendor-tag to find the
right branch.

BR
   Reinhard


-- 
 Ing. Reinhard Jessich                Phone: +43/1/81150/2395
 Software Design                      Fax: +43/1/81150/3169
 Frequentis Nachrichtentechnik GmbH   A-1120 Wien, Spittelbreitengasse 34
 http://www.frequentis.com            eMail: reinhard.jessich@frequentis.com


--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2003-09-30  3:16 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-22 14:44 [ECOS] Keeping 2.0 source tree up to date Grant Edwards
2003-09-22 15:17 ` Andrew Lunn
2003-09-22 18:59   ` Grant Edwards
2003-09-22 19:11     ` Gary Thomas
2003-09-22 19:20       ` Grant Edwards
2003-09-22 19:29         ` Gary Thomas
2003-09-22 19:34           ` Grant Edwards
2003-09-23 11:03 Reinhard JESSICH
2003-09-29 15:50 ` Roland Caßebohm
2003-09-23 11:32 David Vrabel
     [not found] <sf787ac4.077@mail.frequentis.com>
2003-09-29 16:37 ` Roland Caßebohm
2003-09-30  3:16 Reinhard JESSICH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).