Hello, I stay with my problem using the branches under CVS (see below in attached documentation my first mail). Please, may i have some explanations and help to solve my problem? Thank's in advance, -- Regards, Patrice Martin
Hello, I use CVS V1.10, and i am in confusion with the CVS branches. First, what is the basic difference between "cvs commit" and "cvs import"? I think that my problem came, because i track my source evolutions by always doing an "cvs import" from the head directory of my project. I have made this choice, because there is often lot of modifications made at the same time in that project. So in intent to not do "cvs commit", "cvs add", "cvs remove", and so on each time, from file to file, or directory to directory, i do an "cvs import" one for all, starting at the head directory of the project, once i want to do a version. It's work well like this until last month. But recently, i want to make branches for tracking parallel development of the project, because one part of the project go in maintenance, and the other part stay in development with evolutions and new functionalities. So i create a branch to do this, with the next steps : - first do a "cvs import" of the latest version of the project, to make a new taged version in the repository of CVS, because it is impossible to do a branch from the latest version, but in deed the two versions seems to be the same. The import command used is "cvs import $option $projet $branche V$version_cvs", with the following signification for the parameters : option = either "-ko", either "-b <branch-number> -ko, depending where the action must be done projet = the name of the selected project branche = either the trunk reference, either the branch reference, depending where the action must be done version_cvs = the tag that identify the release of the version in a form that cvs accept (with no dot inside, e.g. 1-2-2). - then do a "cvs rtag" with the n-1 version to not do the branch from the last version in the repository. The rtag command used is "cvs -q rtag -b -r V$version_cvs B$version_cvs $projet", with the parameters matching the signification above. - next do the modifications for the new version in my working directories tree - next do the "cvs import" in the branch just created in the repository But by doing like this, i cant merge the modifications made in that branch, because the cvs (in fact rcs) revision number doesn't match the cvs revision number of the trunk. And then the diff, update and merge commands doesn't work very well... i've read in the "Open Source development with CVS" documentation, that with the import command (with import, -b Branch imply that Branch is an branch number, not a tag ==> is that my problem???) Vendor branches are odd-numbered, the opposite of regular branches. So now i am completely confused with the used of branches with CVS. May i have some explanations and help to understand what's happen, and then try to fix my problem, and then used correctly CVS branches, for tracking parallel development. Thank's in advance for yor help and explanations, -- Regards, Patrice Martin
