3

Suppose stream B and stream C are child streams of stream A and seeded from the same baseline of A. After parallel development for a while in both B and C, B needs to obtain the codes from the latest baseline bl_C_5 of C. Is there any functional (merging of elements) or non-functional (performance etc.) difference between the following operations?

  • B rebases from baseline bl_C_5 of C
  • C delivers baseline bl_C_5 to B
Raihan
  • 10,095
  • 5
  • 27
  • 45

1 Answers1

2

Simple:

"B rebases from baseline bl_C_5 of C" is impossible: a rebase can only merge baseline produced from the parent Stream A, not from C.

You could deliver C to A, set a baseline on A and rebase said baseline on B.

Then the difference with delivering directly C to B (which is possible) would be that the rebase would bring potential other changes delivered to A.
If no other merge (deliver/rebase) has taken place on A, the deliver C to A, and then rebase B is the same than delivering directly to B. The only difference is that all views on A would see C contributions.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Which brings the next question, suppose bl_C_5 is delivered from C to B. Then there is a subsequesnt baseline bl_C_6 in C. Now if bl_C_6 is delivered from C to B, will it only attempt to merge the delta from bl_C_5 to bl_C_6 in C to B? – Raihan Dec 10 '11 at 18:47
  • 1
    @Raihan: not exactly. ClearCase reasons file by file, and for all directories/files modified in `bl_C_6` it will check if they need to be merged or not. The merge in itself will detect the delta all right, but that file-by-file process makes from an *incredibly* slow process (compared to a content management system like Git). For more on the merge mechanism and other characteristics: http://stackoverflow.com/questions/645008/what-are-the-basic-clearcase-concepts-every-developer-should-know/645771#645771 – VonC Dec 10 '11 at 20:00