CVS Merging
by Ron Yacketta · in Torque Game Engine · 07/19/2002 (1:02 pm) · 8 replies
Can some kind soul post the CVS merging script and some minor documentation regarding it?
I am speaking of the one where one checks out a copy of TGE, imports it into a clean repository of their own as well as a working repository. Then nighly they checkout TGE to the untouched personaly repository and merges it with their working repository.
I have been tracking this beast down for a couple days, waiting for the resource that was mentioned ot be posted.
Regards,
Ron
I am speaking of the one where one checks out a copy of TGE, imports it into a clean repository of their own as well as a working repository. Then nighly they checkout TGE to the untouched personaly repository and merges it with their working repository.
I have been tracking this beast down for a couple days, waiting for the resource that was mentioned ot be posted.
Regards,
Ron
#2
no worries, I figured you had other items on your plate. I posted this thread for those who already know of an use your merge script/system.
Attempting to see if they would be willing to share the wealth in your time of project over abondance ;)
Regards,
Ron
07/19/2002 (7:50 pm)
Jeremy,no worries, I figured you had other items on your plate. I posted this thread for those who already know of an use your merge script/system.
Attempting to see if they would be willing to share the wealth in your time of project over abondance ;)
Regards,
Ron
#3
I have a clean copy of GG HEAD in a branch called gghead
and I have my code in a branch called local
When I update local with gghead (merge) I get gghead, that is all the changes made to local are now gone.
I tried the opposite, update gghead with local (merge) and now I have gghead that is just like local without the new changes found in the GG HEAD repository.
What am I doing wrong here?
I would like to update A with B and get C ( that is C contains my code and any new code found in B)
Regards,
Ron
07/22/2002 (12:01 pm)
I have been trying to figure this merge thing out for a few days now.I have a clean copy of GG HEAD in a branch called gghead
and I have my code in a branch called local
When I update local with gghead (merge) I get gghead, that is all the changes made to local are now gone.
I tried the opposite, update gghead with local (merge) and now I have gghead that is just like local without the new changes found in the GG HEAD repository.
What am I doing wrong here?
I would like to update A with B and get C ( that is C contains my code and any new code found in B)
Regards,
Ron
#4
When you do followup CVS merges they're on a different branch than your CVS HEAD. You need to add a step into your process that merges from the latest update into your HEAD to keep HEAD current.
07/22/2002 (12:26 pm)
The key problem, Ron, is CVS branching ;)When you do followup CVS merges they're on a different branch than your CVS HEAD. You need to add a step into your process that merges from the latest update into your HEAD to keep HEAD current.
#5
can you give a bit more detail, I am loosing hair over this (what little I have left).
Regards,
Ron
07/22/2002 (1:33 pm)
Jeremy,can you give a bit more detail, I am loosing hair over this (what little I have left).
Regards,
Ron
#6
Are you speaking of doing something like this?
www.eyrie.org/~eagle/notes/cvs/import.html?
-Ron
07/22/2002 (5:26 pm)
Jeremy,Are you speaking of doing something like this?
www.eyrie.org/~eagle/notes/cvs/import.html?
-Ron
#7
In a nutshell, when you import from GG's CVS, assuming you use the same vendor tag, it'll be on the branch used for the first import you did.
So, since I always import from GG as the way of creating a module, that branch is 1.1 ... so new versions of files modified by GG have ID #s of 1.1.1.1, 1.1.1.2, etc. 'cvs log' will show these.
When you make changes to HEAD, it increments the main HEAD ID, so your first change is 1.2, second is 1.3, etc.
So if you have a file, who's HEAD version is 1.5, and it gets updated in the nightly GG import as well (that branch version is 1.1.1.3, for example) then you need to merge from 1.1.1.3 into 1.5 and have a new version 1.6 be the result.
You can easily do that using 'cvs update' ... You should be using symbolic tags for all your updates from GG (I use the epoch date, for examplem for now call it TAGNAME) ... check out a HEAD version, then 'cvs update -j TAGNAME', and then commit the results, after fixing any conflicts.
07/22/2002 (6:38 pm)
No.In a nutshell, when you import from GG's CVS, assuming you use the same vendor tag, it'll be on the branch used for the first import you did.
So, since I always import from GG as the way of creating a module, that branch is 1.1 ... so new versions of files modified by GG have ID #s of 1.1.1.1, 1.1.1.2, etc. 'cvs log' will show these.
When you make changes to HEAD, it increments the main HEAD ID, so your first change is 1.2, second is 1.3, etc.
So if you have a file, who's HEAD version is 1.5, and it gets updated in the nightly GG import as well (that branch version is 1.1.1.3, for example) then you need to merge from 1.1.1.3 into 1.5 and have a new version 1.6 be the result.
You can easily do that using 'cvs update' ... You should be using symbolic tags for all your updates from GG (I use the epoch date, for examplem for now call it TAGNAME) ... check out a HEAD version, then 'cvs update -j TAGNAME', and then commit the results, after fixing any conflicts.
#8
I feel like a goof here, still fuzzy on this end.
I am just not seeing the entire picture for some reason, think I need to buy a book on CVS or something.. maybe get that dunce cap out and wear it around for a few days *sigh*
-Ron
07/23/2002 (9:31 am)
Jeremy,I feel like a goof here, still fuzzy on this end.
I am just not seeing the entire picture for some reason, think I need to buy a book on CVS or something.. maybe get that dunce cap out and wear it around for a few days *sigh*
-Ron
Torque Owner Jeremy Noetzelman