[Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Felix Kühling
Hi all,

I'm happy to report that I found a solution to the merge problems Eric
and I were seeing. I believe the problem had to do with vendor branches.
They are created automatically when sources are imported using cvs
import. Many files from XFree86 had a vendor branch (e.g. revisions
1.1.1.x) with several revisions, each corresponding to a cvs import. The
config-0-0-1-branch and savage_1-0-0_branch were forked off such vendor
branches of these files.

However, the last merge from XFree86 was done using cvs commit instead
of cvs import. Therefore the new head revision of the XFree86 files was
e.g. 1.2. Now a normal cvs update -d -j HEAD would determine 1.1 as
common ancestor revision of the branch and the current trunk while the
real ancestor revision is 1.1.1.x (on a vendor branch). The solution is
to explicitly specify the ancestor revision as the branch point. This is
the command line I used for that purpose:

cvs -z3 update -d -j config-0-0-1-branch:2003-05-25 -j HEAD

where 2003-05-25 is the day before the first commit on the
config-0-0-1-branch. Note that -kk is not necessary. In fact it produces
unnecessary conflicts instead of preventing them.

I suggest an update of the cvs policy in order to avoid such problems in
the future. The above operation would have been easier with a tag
marking the branch point. Thus creating a branch should consist of two
steps:

cvs tag --fork
cvs tag -b --branch

Then a merge from trunk would be done with:

cvs -update -d -j --fork -j HEAD

If I get positive feedback on this I would update the wiki page myself.

Best regards,
  Felix

__\|/_____ ___   -
 Felix   ___\_e -_/___/ __\___/ __\_   You can do anything,
   Kühling  (_\Ä// /_/ /)  just not everything
 [EMAIL PROTECTED]   \___/   \___/   Uat the same time.


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread José Fonseca
On Tue, Oct 07, 2003 at 12:33:49PM +0200, Felix Kühling wrote:
> Hi all,
> 
> I'm happy to report that I found a solution to the merge problems Eric
> and I were seeing. I believe the problem had to do with vendor branches.
> They are created automatically when sources are imported using cvs
> import. Many files from XFree86 had a vendor branch (e.g. revisions
> 1.1.1.x) with several revisions, each corresponding to a cvs import. The
> config-0-0-1-branch and savage_1-0-0_branch were forked off such vendor
> branches of these files.
> 
> However, the last merge from XFree86 was done using cvs commit instead
> of cvs import. Therefore the new head revision of the XFree86 files was
> e.g. 1.2. Now a normal cvs update -d -j HEAD would determine 1.1 as
> common ancestor revision of the branch and the current trunk while the
> real ancestor revision is 1.1.1.x (on a vendor branch). The solution is
> to explicitly specify the ancestor revision as the branch point. This is
> the command line I used for that purpose:
> 
> cvs -z3 update -d -j config-0-0-1-branch:2003-05-25 -j HEAD
> 
> where 2003-05-25 is the day before the first commit on the
> config-0-0-1-branch. Note that -kk is not necessary. In fact it produces
> unnecessary conflicts instead of preventing them.
> 
> I suggest an update of the cvs policy in order to avoid such problems in
> the future. The above operation would have been easier with a tag
> marking the branch point. Thus creating a branch should consist of two
> steps:
> 
> cvs tag --fork
> cvs tag -b --branch
> 
> Then a merge from trunk would be done with:
> 
> cvs -update -d -j --fork -j HEAD
> 
> If I get positive feedback on this I would update the wiki page myself.

Or simply if you don't get any negative feedback - maybe its the lack of 
some caffeine intake but I'm having troubles to grasp the CVS concepts you
mentio, so I'll trust on your judgment, especially since it appears to
simply the procedure considerably.

Jose Fonseca


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Keith Whitwell
José Fonseca wrote:
On Tue, Oct 07, 2003 at 12:33:49PM +0200, Felix Kühling wrote:

Hi all,

I'm happy to report that I found a solution to the merge problems Eric
and I were seeing. I believe the problem had to do with vendor branches.
They are created automatically when sources are imported using cvs
import. Many files from XFree86 had a vendor branch (e.g. revisions
1.1.1.x) with several revisions, each corresponding to a cvs import. The
config-0-0-1-branch and savage_1-0-0_branch were forked off such vendor
branches of these files.
However, the last merge from XFree86 was done using cvs commit instead
of cvs import. Therefore the new head revision of the XFree86 files was
e.g. 1.2. Now a normal cvs update -d -j HEAD would determine 1.1 as
common ancestor revision of the branch and the current trunk while the
real ancestor revision is 1.1.1.x (on a vendor branch). The solution is
to explicitly specify the ancestor revision as the branch point. This is
the command line I used for that purpose:
cvs -z3 update -d -j config-0-0-1-branch:2003-05-25 -j HEAD

where 2003-05-25 is the day before the first commit on the
config-0-0-1-branch. Note that -kk is not necessary. In fact it produces
unnecessary conflicts instead of preventing them.
I suggest an update of the cvs policy in order to avoid such problems in
the future. The above operation would have been easier with a tag
marking the branch point. Thus creating a branch should consist of two
steps:
cvs tag --fork
cvs tag -b --branch
Then a merge from trunk would be done with:

cvs -update -d -j --fork -j HEAD

If I get positive feedback on this I would update the wiki page myself.


Or simply if you don't get any negative feedback - maybe its the lack of 
some caffeine intake but I'm having troubles to grasp the CVS concepts you
mentio, so I'll trust on your judgment, especially since it appears to
simply the procedure considerably.
Hmm.  These problems only arise because of the way the merge was done?  Why 
not just document the right way to do the merge?

Keith



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Felix Kühling
On Tue, 07 Oct 2003 12:32:45 +0100
Keith Whitwell <[EMAIL PROTECTED]> wrote:

> José Fonseca wrote:
> > On Tue, Oct 07, 2003 at 12:33:49PM +0200, Felix Kühling wrote:
> > 
> >>Hi all,
> >>
> >>I'm happy to report that I found a solution to the merge problems Eric
> >>and I were seeing. I believe the problem had to do with vendor branches.
> >>They are created automatically when sources are imported using cvs
> >>import. Many files from XFree86 had a vendor branch (e.g. revisions
> >>1.1.1.x) with several revisions, each corresponding to a cvs import. The
> >>config-0-0-1-branch and savage_1-0-0_branch were forked off such vendor
> >>branches of these files.
> >>
> >>However, the last merge from XFree86 was done using cvs commit instead
> >>of cvs import. Therefore the new head revision of the XFree86 files was
> >>e.g. 1.2. Now a normal cvs update -d -j HEAD would determine 1.1 as
> >>common ancestor revision of the branch and the current trunk while the
> >>real ancestor revision is 1.1.1.x (on a vendor branch). The solution is
> >>to explicitly specify the ancestor revision as the branch point. This is
> >>the command line I used for that purpose:
> >>
> >>cvs -z3 update -d -j config-0-0-1-branch:2003-05-25 -j HEAD
> >>
> >>where 2003-05-25 is the day before the first commit on the
> >>config-0-0-1-branch. Note that -kk is not necessary. In fact it produces
> >>unnecessary conflicts instead of preventing them.
> >>
> >>I suggest an update of the cvs policy in order to avoid such problems in
> >>the future. The above operation would have been easier with a tag
> >>marking the branch point. Thus creating a branch should consist of two
> >>steps:
> >>
> >>cvs tag --fork
> >>cvs tag -b --branch
> >>
> >>Then a merge from trunk would be done with:
> >>
> >>cvs -update -d -j --fork -j HEAD
> >>
> >>If I get positive feedback on this I would update the wiki page myself.
> > 
> > 
> > Or simply if you don't get any negative feedback - maybe its the lack of 
> > some caffeine intake but I'm having troubles to grasp the CVS concepts you
> > mentio, so I'll trust on your judgment, especially since it appears to
> > simply the procedure considerably.
> 
> Hmm.  These problems only arise because of the way the merge was done?  Why 
> not just document the right way to do the merge?

There may be more cases where you commit new revisions to imported
sources. The result is the same except the number of files affected is
probably smaller. OTOH I might report this as a bug against CVS and they
should fix it :)

> 
> Keith

Felix

__\|/_____ ___   -
 Felix   ___\_e -_/___/ __\___/ __\_   You can do anything,
   Kühling  (_\Ä// /_/ /)  just not everything
 [EMAIL PROTECTED]   \___/   \___/   Uat the same time.


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Dave Airlie

> > Hmm.  These problems only arise because of the way the merge was done?  Why
> > not just document the right way to do the merge?
>

I'd agree with Keith the proper way to merge needs documenting, CVS vendor
import is what is needed, the XFree CVS is vendor imported into our DRI
tree, the changes from the last XFree merge are then merged onto the trunk
for files that we have changed...

I recently (with some help) manually cleaned up some Linux-VAX development
CVS trees that had been hand merged not using vendor stuff, it just takes
judicious use of the cvs admin -b command...

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
pam_smb / Linux DECstation / Linux VAX / ILUG person



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Michel Dänzer
On Tue, 2003-10-07 at 13:32, Keith Whitwell wrote:
> 
> Hmm.  These problems only arise because of the way the merge was done?  Why 
> not just document the right way to do the merge?

I think tagging the branch point is a good idea regardless.


-- 
Earthling Michel Dänzer   \  Debian (powerpc), XFree86 and DRI developer
Software libre enthusiast  \ http://svcs.affero.net/rm.php?r=daenzer



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Ian Romanick
Michel Dänzer wrote:
On Tue, 2003-10-07 at 13:32, Keith Whitwell wrote:

Hmm.  These problems only arise because of the way the merge was done?  Why 
not just document the right way to do the merge?
I think tagging the branch point is a good idea regardless.
I agree.  Documenting both the right way to do a merge *and* suggesting 
the extra tag (as a back-up) are good ideas.  It would probably be a 
good idea to also document *why* these steps are desireable. :)



---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] CVS merge problem solved + suggestion for cvs policy

2003-10-07 Thread Alan Hourihane
On Tue, Oct 07, 2003 at 12:23:16PM +0100, José Fonseca wrote:
> On Tue, Oct 07, 2003 at 12:33:49PM +0200, Felix Kühling wrote:
> > Hi all,
> > 
> > I'm happy to report that I found a solution to the merge problems Eric
> > and I were seeing. I believe the problem had to do with vendor branches.
> > They are created automatically when sources are imported using cvs
> > import. Many files from XFree86 had a vendor branch (e.g. revisions
> > 1.1.1.x) with several revisions, each corresponding to a cvs import. The
> > config-0-0-1-branch and savage_1-0-0_branch were forked off such vendor
> > branches of these files.
> > 
> > However, the last merge from XFree86 was done using cvs commit instead
> > of cvs import. Therefore the new head revision of the XFree86 files was
> > e.g. 1.2. Now a normal cvs update -d -j HEAD would determine 1.1 as
> > common ancestor revision of the branch and the current trunk while the
> > real ancestor revision is 1.1.1.x (on a vendor branch). The solution is
> > to explicitly specify the ancestor revision as the branch point. This is
> > the command line I used for that purpose:
> > 
> > cvs -z3 update -d -j config-0-0-1-branch:2003-05-25 -j HEAD
> > 
> > where 2003-05-25 is the day before the first commit on the
> > config-0-0-1-branch. Note that -kk is not necessary. In fact it produces
> > unnecessary conflicts instead of preventing them.
> > 
> > I suggest an update of the cvs policy in order to avoid such problems in
> > the future. The above operation would have been easier with a tag
> > marking the branch point. Thus creating a branch should consist of two
> > steps:
> > 
> > cvs tag --fork
> > cvs tag -b --branch
> > 
> > Then a merge from trunk would be done with:
> > 
> > cvs -update -d -j --fork -j HEAD
> > 
> > If I get positive feedback on this I would update the wiki page myself.
> 
> Or simply if you don't get any negative feedback - maybe its the lack of 
> some caffeine intake but I'm having troubles to grasp the CVS concepts you
> mentio, so I'll trust on your judgment, especially since it appears to
> simply the procedure considerably.

This is a little puzzling to me to, as I did do the last merge with
cvs import.

Alan.


---
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel