Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 263571
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T22:36:46+00:00 2026-05-11T22:36:46+00:00

Using Rational ClearCase v. 7.0.1.1 with UCM, I have a problem here when using

  • 0

Using Rational ClearCase v. 7.0.1.1 with UCM, I have a problem here when using ClearCase’s “Deliver from Stream to Alternate Target” functionality.

Imagine we have one project integration stream and two developer streams A and B derived from it. Now I change a file in stream A. I want the delevoper owning stream B to be able to use my work without me having to deliver the file to the integration stream yet, so I deliver from stream A to the alternate target stream B.

So far, so good. I go on making another change to the file but the stream B developer does not need this change, so I don’t deliver it to him.

After some more time, I deliver my work to the main integration stream. This works fine, although I wonder why ClearCase marks the merge as a normal “Merged” instead of “Merged (trivial)” – no one except me has made changes to the file.

After the delivery, a new baseline is created on the main integration stream.

The real problem arises when developer B tries to rebase his stream. Since developer B has never made any changes to the file, I’d expect the merge to be a trivial one with no interaction necessary. But what happens is that developer B is forced to resolve a merge conflict on that file graphically, letting him choose between the base version on the integration stream, the version I delivered to him and the version that I delivered to the integration stream.

The confusion goes on when after resolving the merge and completing the rebase, developer B wants to perform a delivery to the main integration stream. Apart from the activity that I originally delivered to him, he is also offered to deliver an activity that is named rebase_…, which I would never expect to be offered for delivery.

Am I missing something here? Are we using ClearCase incorrectly or is this a known limitation / bug? Has anyone experience with this functionality?

Thanks in advance for your help!

Jan

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T22:36:46+00:00Added an answer on May 11, 2026 at 10:36 pm

    Actually, when I look at the version tree, the source of the conflict during the rebase is clear:

    version tree with conflict

    When you re-read the way ClearCase 3-way merge works, you see it needs to go back in the version tree in order to find a common ancestor to:

    • the source (Int/2)
    • the destination (B/1)

    That common ancestor is Int/1

    Now it is possible that a common line has changed between those two version since:

    • the source of the last rebase (Int/2) comes from A/3
    • the destination of the last rebase (B/1) comes from A/2
    • the common ancestor (Int/1) comes from A/1

    If a common line has been modified (from A/1) both in A/2 and A/3… there is a reason for a manual merge resolution right there!

    (I am testing this right now)


    Got it! Conflict achieved!

    Continuing on my previous experiment:

    Let’s make a new modif in Stream A:

    M:\vonc_test_dat_a\adev\test>ct co -nc aFile.txt
    M:\vonc_test_dat_a\adev\test>echo modif by A to B>>aFile.txt
    M:\vonc_test_dat_a\adev\test>ct ci -nc aFile.txt
    
    M:\vonc_test_dat_a\adev\test>type aFile.txt
    first line done on Int
    Second line from Int
    Addition by A to be delivered to B first
    Modification by A to be delivered to Int, B does not need it
    modif by A to B
    

    Delivering that directly to B:

    M:\vonc_test_dat_a\adev\test>ct deliver -to vonc_test_dat_b -target Test_DAT_B@\myPVob -cact -gmerge -force
    Changes to be DELIVERED to non-default target stream in current project "Test_DeliverToAlternateTarget":
              FROM: stream "Test_DAT_A"
              TO: stream "Test_DAT_B"
    Using target view: "vonc_test_dat_b".
    Activities included in this operation:
            activity:test_dat_a@\myPVob   vonc        "test_dat_a"
    Trivial merge: "M:\vonc_test_dat_b\adev\test\aFile.txt" is same as base "M:\vonc_test_dat_b\adev\test\aFile.txt@@\main\Test_DAT_Int\Test_DAT_A\2".
    Copying "M:\vonc_test_dat_b\adev\test\aFile.txt@@\main\Test_DAT_Int\Test_DAT_A\3" to output file.
    Deliver has merged
    
    M:\vonc_test_dat_a\adev\test>ct deliver -target Test_DAT_B@\myPVob -cact -complete -force
    

    (Trivial merge)

    Now let’s COMPLETELTY CHANGE the content of that file:

    M:\vonc_test_dat_a\adev\test>ct co -nc aFile.txt
    M:\vonc_test_dat_a\adev\test>echo change first line>aFile.txt
    M:\vonc_test_dat_a\adev\test>ct ci -nc aFile.txt
    
    M:\vonc_test_dat_a\adev\test>type aFile.txt
    change first line
    

    And delivering to Int, with a new baseline put right after the deliver:

    M:\vonc_test_dat_a\adev\test>ct deliver -force
    M:\vonc_test_dat_a\adev\test>ct deliver -force -complete
    M:\vonc_test_dat_a\adev\test>ct mkbl -comp ADV_TST@\myPVob -view vonc_test_dat_int TST_DAT1.2.0
    

    (another trivial merge)

    What about a rebase from B?

    M:\vonc_test_dat_b\adev\test>ct rebase -bas TST_DAT1.2.0
    Advancing to baseline "TST_DAT1.2.0" of component "ADV_TST"
    Updating rebase view's config spec...
    Creating integration activity...
    Setting integration activity...
    Merging files...
    Checked out "M:\vonc_test_dat_b\adev\test\aFile.txt" from version "\main\Test_DAT_Int\Test_DAT_B\3".
      Attached activity:
        activity:rebase.Test_DAT_B.20090707.163300@\myPVob  "rebase Test_DAT_B on 07/07/09 4:33:00 PM."
    Needs Merge "M:\vonc_test_dat_b\adev\test\aFile.txt" [to \main\Test_DAT_Int\Test_DAT_B\CHECKEDOUT from \main\Test_DAT_Int\4 base \main\T
    est_DAT_Int\3]
    ********************************
    <<< file 1: M:\vonc_test_dat_b\adev\test\aFile.txt@@\main\Test_DAT_Int\3
    >>> file 2: M:\vonc_test_dat_b\adev\test\aFile.txt@@\main\Test_DAT_Int\4
    >>> file 3: M:\vonc_test_dat_b\adev\test\aFile.txt
    ********************************
    ---------[changed 1-4 file 1]----------|---------[changed to 1 file 2]---------
    first line done on Int                 | change first line
    Second line from Int                   |-
    Addition by A to be delivered to B fir+|
    Modification by A to be delivered to I+|
                                          -|
    *** Automatic: Applying CHANGE from file 2 [line 1]
    ============
    ============
    -----------[after 4 file 1]------------|----------[inserted 5 file 3]----------
                                          -| modif by A to B
                                           |-
    Do you want the INSERTION made in file 3?  [yes] no
    ============
    ============
    Output of merge is in "M:\vonc_test_dat_b\adev\test\aFile.txt".
    Recorded merge of "M:\vonc_test_dat_b\adev\test\aFile.txt".
    Build and test are necessary to ensure that any merges and configuration changes were completed correctly.
    When build and test are confirmed, run "cleartool rebase -complete".
    

    There you have it: a nice conflict between two incompatible changes from the common ancestor.

    Here is the picture to illustrate that:

    conflict during merge

    .

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 119k
  • Answers 119k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer After much investigation, I've found the best way to be… May 11, 2026 at 11:47 pm
  • Editorial Team
    Editorial Team added an answer from the document of class code.InteractiveInterpreter([locals]): The optional locals argument… May 11, 2026 at 11:47 pm
  • Editorial Team
    Editorial Team added an answer So the command doesn't run arbitrary code. All it does… May 11, 2026 at 11:47 pm

Related Questions

I work in an multi-site environment that's currently using Rational ClearCase for source control
I creating a small addin to help with my source control. Does anybody know
I'm using Rational Application Developer to create some web services. The problem I have
I hope not everyone is using Rational Purify. So what do you do when
We're developing a web application with Rational Application Developer 7.5 (based on Eclipse 3.4)

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.