Re: Howto solve this in cvs ?

2001-10-12 Thread Gerhard Ahuis

On Thu, 11 Oct 2001, Greg A. Woods wrote:

 [ On Monday, October 1, 2001 at 09:12:24 (+), Gerhard Ahuis wrote: ]
  Subject: Re: Howto solve this in cvs ?
 
  Greg A. Woods [EMAIL PROTECTED] wrote:
  
   For many of the same reasons it's literally impossible to ever have true
   multi-vendor support too -- all the benefits of cvs import are
   completely impossible to achieve with multiple vendor branches.  You can
   do multi-vendor tracking manually, but it's one hell of a lot more work
   (more work even than managing several variant branches in a locally
   initiated project)!
 
  There are not many files, so if you can give me some hints to let a second
  vendor branch showup on a normal cvs branch and not on the main, I will be
  very thankfull.

 Well, it's really quite straight forward.  You simply have to create
 normal branches for each vendor, and corresponding working directories
 for each, and then manually commit and tag each new release on each
 release.


It is already done now with 2 vendor branches.. Moving the branch tag to
the corresponding vendor version does the job.. I tested commiting of
files on the two branches and it all seems to work fine..

Cheers,

Gerhard.

-- 
Gerhard Ahuis
  [EMAIL PROTECTED]

Unsolicited advertisements subject to $1000 consulting fee.


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Howto solve this in cvs ?

2001-10-12 Thread Greg A. Woods

[ On Friday, October 12, 2001 at 10:35:16 (+0200), Gerhard Ahuis wrote: ]
 Subject: Re: Howto solve this in cvs ?

 It is already done now with 2 vendor branches.. Moving the branch tag to
 the corresponding vendor version does the job.. I tested commiting of
 files on the two branches and it all seems to work fine..

You will encounter problems with multiple vendor branches, not the least
of which is that you no longer have correctly working conflict detection
on cvs import.

I thought you also wanted to create normal branches from your local
trunk version too.  That won't work (well) with even one vendor branch.

-- 
Greg A. Woods

+1 416 218-0098  VE3TCP  [EMAIL PROTECTED] [EMAIL PROTECTED]
Planix, Inc. [EMAIL PROTECTED];   Secrets of the Weird [EMAIL PROTECTED]

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Howto solve this in cvs ?

2001-10-11 Thread Greg A. Woods

[ On Monday, October 1, 2001 at 09:12:24 (+), Gerhard Ahuis wrote: ]
 Subject: Re: Howto solve this in cvs ?

 Greg A. Woods [EMAIL PROTECTED] wrote:
  
  For many of the same reasons it's literally impossible to ever have true
  multi-vendor support too -- all the benefits of cvs import are
  completely impossible to achieve with multiple vendor branches.  You can
  do multi-vendor tracking manually, but it's one hell of a lot more work
  (more work even than managing several variant branches in a locally
  initiated project)!
 
 There are not many files, so if you can give me some hints to let a second
 vendor branch showup on a normal cvs branch and not on the main, I will be 
 very thankfull.

Well, it's really quite straight forward.  You simply have to create
normal branches for each vendor, and corresponding working directories
for each, and then manually commit and tag each new release on each
release.

-- 
Greg A. Woods

+1 416 218-0098  VE3TCP  [EMAIL PROTECTED] [EMAIL PROTECTED]
Planix, Inc. [EMAIL PROTECTED];   Secrets of the Weird [EMAIL PROTECTED]

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Howto solve this in cvs ?

2001-10-01 Thread Gerhard Ahuis

Greg A. Woods [EMAIL PROTECTED] wrote:

 What is not working well ? I didn't have any problem until this problem 
 arrises.

 Does it really matter when the problem raises its ugly head?

 Don't try to use normal branches with vendor branched modules unless you
 want to invite trouble!  (This is unrelated to the following issue too!)

 It's really not that hard to figure out where the problems arise if you
 look in detail at how CVS creates branches and how cvs import works.

 For many of the same reasons it's literally impossible to ever have true
 multi-vendor support too -- all the benefits of cvs import are
 completely impossible to achieve with multiple vendor branches.  You can
 do multi-vendor tracking manually, but it's one hell of a lot more work
 (more work even than managing several variant branches in a locally
 initiated project)!

There are not many files, so if you can give me some hints to let a second
vendor branch showup on a normal cvs branch and not on the main, I will be 
very thankfull.

  Your best approach is to start fresh with the 3.x release in a new 
  module.
 
 That is not the way a version control system should work I think.

 Huh?

 What do you expect?  Black magic?  Miracles?

No, but it is lot easier for us to find problems if we can easy show the
differences between the different vendor releases and our local changes.
I don't care if this gives some manual admin work to import it all in the 
right way.

 This is CVS we're talking about and while there is some undocumented
 magic in it, it sure as heck can't pull off miracles for you.  The
 vendor branch support is a simple hack that only really works well in
 the simplest of cases.

 When a vendor drastically re-arranges code and files in a new release it
 is _always_ better to start a new module and to manually carry over ones
 changes from any old module (if indeed they are still appropriate and
 necessary).  This is probably even documented somewhere (but I'm too
 lazy to search for you).

There are also a lot of files that have minor changes.

 It's irrelevant whether or not you think this is how a version control
 system should work -- it _is_ the way CVS works (or doesn't, as the case
 may be).

 The way CVS handles file hierarchy changes and renames requires
 out-of-band information about the programmer's intent be recorded in the
 commit logs to facilitate subsequent understanding of the change.  It is
 impossible for CVS to guess what this information is in a cvs import,
 and it's unlikely that even a human could get it right without going to
 a great deal of trouble (and if you're going to go to that amount of
 trouble then you should simply avoid cvs import entirely and manage
 your repository as is you were the vendor, not the consumer).

CVS merges most files without conflicts im my situation. There are only
a few files that require manual intervention.

 Perhaps you should try to think about _why_ you are tracking local
 changes to some vendor code and try to figure out what benefit you gain
 from using CVS to assist you with this task.  Contrast all of this with
 the more traditional way of managing local changes by creating local
 patch sets and applying them to new releases, and with schemes which
 automate this kind of patching, such as the *bsd ports or pkgsrc
 systems.

Easy trouble shooting of sources, check which vendor files are in our
released version 2.1 for example. Browsing through cvsweb gives a lot of
information.


Gerhard.

-- 
Gerhard Ahuis
  [EMAIL PROTECTED]

Unsolicited advertisements subject to $1000 consulting fee.

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Howto solve this in cvs ?

2001-09-30 Thread Greg A. Woods

[ On Saturday, September 29, 2001 at 23:40:46 (+), Gerhard Ahuis wrote: ]
 Subject: Re: Howto solve this in cvs ?

 What is not working well ? I didn't have any problem until this problem 
 arrises.

Does it really matter when the problem raises its ugly head?

Don't try to use normal branches with vendor branched modules unless you
want to invite trouble!  (This is unrelated to the following issue too!)

It's really not that hard to figure out where the problems arise if you
look in detail at how CVS creates branches and how cvs import works.

For many of the same reasons it's literally impossible to ever have true
multi-vendor support too -- all the benefits of cvs import are
completely impossible to achieve with multiple vendor branches.  You can
do multi-vendor tracking manually, but it's one hell of a lot more work
(more work even than managing several variant branches in a locally
initiated project)!


  Your best approach is to start fresh with the 3.x release in a new module.
 
 That is not the way a version control system should work I think.

Huh?

What do you expect?  Black magic?  Miracles?

This is CVS we're talking about and while there is some undocumented
magic in it, it sure as heck can't pull off miracles for you.  The
vendor branch support is a simple hack that only really works well in
the simplest of cases.

When a vendor drastically re-arranges code and files in a new release it
is _always_ better to start a new module and to manually carry over ones
changes from any old module (if indeed they are still appropriate and
necessary).  This is probably even documented somewhere (but I'm too
lazy to search for you).

It's irrelevant whether or not you think this is how a version control
system should work -- it _is_ the way CVS works (or doesn't, as the case
may be).

The way CVS handles file hierarchy changes and renames requires
out-of-band information about the programmer's intent be recorded in the
commit logs to facilitate subsequent understanding of the change.  It is
impossible for CVS to guess what this information is in a cvs import,
and it's unlikely that even a human could get it right without going to
a great deal of trouble (and if you're going to go to that amount of
trouble then you should simply avoid cvs import entirely and manage
your repository as is you were the vendor, not the consumer).


Perhaps you should try to think about _why_ you are tracking local
changes to some vendor code and try to figure out what benefit you gain
from using CVS to assist you with this task.  Contrast all of this with
the more traditional way of managing local changes by creating local
patch sets and applying them to new releases, and with schemes which
automate this kind of patching, such as the *bsd ports or pkgsrc
systems.

-- 
Greg A. Woods

+1 416 218-0098  VE3TCP  [EMAIL PROTECTED] [EMAIL PROTECTED]
Planix, Inc. [EMAIL PROTECTED];   Secrets of the Weird [EMAIL PROTECTED]

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Howto solve this in cvs ?

2001-09-29 Thread Gerhard Ahuis

Greg A. Woods [EMAIL PROTECTED] wrote:
 [ On Friday, September 28, 2001 at 16:34:19 (+), Gerhard Ahuis wrote: ]
 Subject: Howto solve this in cvs ?

 The vendor did a complete architecture change and cleanup between 2.x and 3.x.
 So I created a branch called MySoftBasedOn_2x on which further developments

 you don't really want a branch -- normal branches don't work well in
 vendor branched modules.

What is not working well ? I didn't have any problem until this problem 
arrises.


 Your best approach is to start fresh with the 3.x release in a new module.

That is not the way a version control system should work I think. If there
is no way to do it with a vendor like import the only thing left is commiting
the vendor changes as local changes on the MySoftBasedOn_2x branch. That will
work but there is no easy way to distinguish vendor changes and local changes
in that case (and I like the easy merging). There must be a better solution, 
cvs has not dissapointed me until now..

Cheers,

Gerhard.

-- 
Gerhard Ahuis
  [EMAIL PROTECTED]

Unsolicited advertisements subject to $1000 consulting fee.





___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs