Inter-Project Merge

You can merge changes between Code Co-op projects under the following conditions:

Note: When a branch project is created, it inherits the history of the original project. However, when new members join the branch project, they don't get its full history. If a new member of a branch project wants to perform a merge with the original project, he or she has to import the history from the creator of the branch (or somebody else who has already imported it).

A merge is done in order to propagate changes from one project trunk to another. It doesn't matter which project was the original one, and which was created as the branch—the merge can go either way.

Performing a Merge

The project from which you are propagating the changes is considered the source (branch), and the other project, the target (branch). The changes are propagated from a particular version (script) in the source branch to the current version of the target branch. The merged changes will appear as file edits in the target branch, and they have to be checked in.

Starting a Merge

At this point, Code Co-op performs a check to see if the target project shares history with the source project. If the test fails, either the projects are not releated or their histories don't reach far enough into the past.

Reviewing the Merge

When the projects are related—the common branching version is established— all the pre-branch scripts are greyed out. You can now select any post-branch script and do the file-by-file merge from within the details pane.

You will notice that each file has a Merge Status. Files will be marked as follows:

You can select individual files or all the files in the details pane and choose one of the following to perform the merge:

Once you have merged a file/s, its status will change to Merged.


Propogating the Merge

After you have merged all the changes, go to the Check-in Area tab in the target project. You can review the changes once again by double-clicking on a file. Once you are satisfied, check-in the files to propogate the changes to other project members.

See also: