Step for expermental branch and integration.
Now all original Firaxis version sources are uploaded in CVS. as 1.1.1.1. But please don't check-in your version into CVS HEAD(=main) branch, yet.
I have create a special branch named "dev".
First, all individual develoeper should create individual developer's branch from the "dev" branch. You should create individual developer branch from this "dev" tagged branch. Use yor login name as new branch name. I will use "yourname" as example. First letter of name should be alphabet.
I put few other tag for easier refernce of the files. Currently, we have three existing tag other than default "HEAD" tag.
"Firaxis_161"/"Base_161" is original virgin version with SDK and all file "Assets" files.
"Start" is tag is put on the version with all "Assets" files removed.
Then check out the "yourname". When you check out, you shoud specify the tag "yourname" as barch tag to check out. If you don't not specify the tag, main branch will be checkout which is not what we want. If checked out correctly, You will have a civ4ccp directory. In WinCVS or in Tortoise CVS, you can see that each file and directories are all marked as having "yourname" tag.
Next, you start to edit the file, and when all editing on the sources are finished, commit the files to "yourname" branch. Then it will have version number 1.1.1.2 and have "yourname" tag (sticky). If You finished all you experiment in 1.1.1.8 version, now it is time to start merge. You can start merge anytime when you feel it time to show your result to other developer. You are recommended to do merge periodically to show your current work-in-progress.
Specify source branch as "yourname" and destination branch as "dev" and start merge.
If there is source line modified by two developer (conflict), You have to manually edit and resolve the conflict. If you finished merging process then "dev" branch will have version number 1.2. It will be tested. We repeat such process few times until merging all develper's branchs are merged into single "dev" branch.
Now "dev" branch has good copy of fully tested source to be released in public.
Then I will merge the finished "dev" branch into main "HEAD" branch. I will put tag "release" on the finished version in HEAD branch. Then we announce the release to public and all other Civ player/moder will start to download the "release" version.
This is full cycle of a relase version. After the public release, another cycle will begain.
Again, each developer will create individual "yourname" from main "release" or "dev" version, and start develpe next version based on the previous release version. This process will be repeated for each new release.
If Firaxis announce new release of the SDK, then the version also merged into the "vendor" branchand labeled as "Firaxis_XXX" for our reference.
If you have question on this matter, don't hesitate to ask question.