Hi Bernt,
Concurrent Development model or parallel development model is supported by harvest
First ,I will take this question and request to review these thoroughly which may answer the remaining questions as well.
Question:
how can we efficiently review changes from package A on file X when multiple changes exist to this file from more than one package since the base version.
Multiple changes can exist because of multiple developers.Each developer is the owner of his branch.
I will provide an example in detail on usage of same files by multiple developers and how they can branch out ,merge and effectively create the final version after effective reviews.
1. Let's say Base version of a file say for example. abc.c exists in the repository baseline.
2. Let us have two packages say p1 created by developer1 and p2 created by developer2 in the state Development
3. There is a process called Check out for update defined in the harvest state -Development.Enclosed is a snapshot of the process. Concurrent update option needs to be checked here by the harvest administrator.
4. Developer1 checks out abc.c for cconcurrent upate using package p1 and continues to work on this file
At this point ,abc.cpp will have a BRANCH version created as 0.1.1 [R] with reserved tag in the package p1
5.Developer 2 checks out abc.c for cconcurrent upate using package p2 and continues to work on this file
At this point ,abc.cpp will have a BRANCH version created as 0.2.1[R] with reserved tag in the package p2
6. Now say Developer1 completes his work and he checks in his file abc.cpp into the repository.Now his file will have version 0.1.1[N]-N is normal version in package p1
7. Now say Developer2 completes his work and he checks in his file abc.cpp into the repository.Now his file will have version 0.2.1[N]-N is normal version in package p2
8. Branch versions need to merged into TRUNK now.
9.Developer 1 merges his branch 0.1.1 work into the main trunk using package p1 and Concurrent merge process will create a version 1 now in the package p1
[ version 1 and version 0.1.1 contents are identical.It is just a plain merge from branch onto trunk]
10.Developer 2 merges his branch 0.2.1 work into the main trunk using package p2.
Now there is a conflict between version 0.2.1 and version 1 and a merged tag 2 [M] tag is created.
11..Now any user or whoever is assigned a role to resolve that merge say for ex: merge engineer can use interactive merge process and sees the two changes in the interactive merge pane
Now he chooses the content which he wants to retain in the main trunk .
Now the M tag is changed into N tag
2[M] is converted to 2 [N] after successful interactive merge option.
This is the way to review changes effectively when multiple changes exist in a file
Sample interactive Merge dialog box:
But kindly note that this is possible when you use concurrent update/branching model and make best use of branching provision and merging in harvest.
If you have only trunks enabled within a project .This is not possible within a project because always the changes take place on a trunk and conflicts will not be shown.
For branching out details ,please refer to the harvest documentation available from here
https://docops.ca.com/ca-harvest-scm/13-0/en/using/understanding-versions
For concurrent merging details ,please refer to the harvest documentation available from here
https://docops.ca.com/ca-harvest-scm/13-0/en/using/compare-and-merge-versions#CompareandMergeVersions-ConcurrentMergeProcess
https://docops.ca.com/ca-harvest-scm/13-0/en/using/compare-and-merge-versions#CompareandMergeVersions-ConcurrentMergeProcess
Please review these answers thoroughly and let us know further questions!
Regards,
Balakrishna.