The ClearCase & ClearQuest Community
  • Home
  • Blogs
  • Forum
  • About
  • Contact
  • Resources
    • Security Bulletin
  • Events

ClearTeam Explorer - Change Set View vs. Pending Changes View

11/21/2017

0 Comments

 
Picture
The ClearTeam Explorer plugin for Eclipse allows developers to work in a ClearCase controlled environment.  ClearCase/UCM affords an activity-based way of tracking changes in a code base that allows you to keep track of work.  Each artifact version created is added to the current activity change set.  The ClearTeam Explorer offers a few ways to visualize your activities with their change sets.  These visualizations are a very useful aid in keeping work organized.

​I will assume that the ClearCase environment is one that is using ClearCase UCM activities via the CMI task integration, and that the development tool is Eclipse with the ClearTeam Explorer IDE plugins installed. I will also assume that you have some experience working with Eclipse/CTE plugin/ClearCase usage, in that you have performed some of the basic operations in UCM using the Eclipse/CTE IDE.

​

UCM Particulars – Setting Activities/Tasks ​

UCM workflow in a multi-stream environment can be thought of in simple terms: Set an activity -> work on artifacts (checkout/modify/check in) -> rebase upon completion to pick up other team changes -> deliver your changes to the integration stream.  Frequent rebasing (even outside this workflow) is a very good habit to get into as it minimizes eventual merge conflicts.    
​

When working within the confines of Eclipse with the CTE plugin, I recommend setting an activity prior to doing any work related to a task.  The activity is set by acquiring view context first.  You do this in Eclipse by switching to the ClearCase perspective, opening up the views tree root, and selecting a view.  If you already have projects in your Eclipse project explorer workspace, view context is obtained by selecting any project root or file in the project explorer.
​

Picture

Setting an activity using the ClearTeam Explorer in the ClearCase Perspective

When you use the former method (by selecting a project or artifact) you use the same pull down menu to preemptively set an activity. The icon next to the pulldown, fires the create activity wizard which you would use if you do not have any activities for that stream yet.  With the task integration enabled, the wizard works a bit differently asking you to search for a task or work item title or to create a new task/workitem. Once your activity/task is set, any checkouts will add that version to your change set. You can work on different activities/tasks prior to delivering any but you will need to keep a more careful track of which one is currently set.
​​
​

The Change Set View ​

In the case where you have been working on a specific activity using the Eclipse/CTE ide, you will have already modified several artifacts in their Eclipse project.  This is accomplished by setting a task or activity and performing one or more checkouts of artifacts, subsequently modifying them and then when completed, checking the artifacts in.  This results in one or more artifacts to be added to a change set under the specific task/activity.  At this point, if all the artifacts have been checked into your branch, all that remains is to review and deliver the changes to the integration stream.  To see a complete list of artifacts modified while working on an activity, you can switch to the ClearCase perspective in Eclipse which brings you to the ClearTeam explorer.  You can expand the views node, right click on the view you're using and bring up the change set for the current activity.  The resulting view appears thusly in the ClearTeam explorer:
​
Picture
In this screenshot, I’ve filtered out all but the latest version of the artifacts that have been modified for the associated activity.  The icons in the upper right are buttons that allow this view to be used to show change sets for any view the CTE knows about and for any of each views activities. By selecting a line item, and right clicking, various actions such as comparison between versions can be performed.  If the current artifacts in the change set are checked-out they will show as such as shown by one of the entries.  You can check the artifact in from the context menu that will appear on a right click of the checked out artifact. You need not go to the CC perspective to bring up the change set view… it is available from the team menu so long as you can establish view context (eg. clicking on a ClearCase-controlled project in Eclipse’s project explorer).
​

The Pending Changes view ​

The CTE pending changes view affords some of the same information as the change set view in that the changes will be organized by activities.  Below is a screen shot of the CTE pending changes view for outgoing changes:
​
Picture
Note that the icons in the upper right allow you to see all changes, incoming changes (from the integration stream) and outgoing changes (from your development stream).  In this case the outgoing changes are shown.  Note that the last two items are showing as checked out.  In this case it was deemed additional changes were needed.  These artifacts must be checked in prior to delivery or only the prior version will be delivered.  An artifact has also been hijacked to illustrate how pending changes handles the case when one is using the so-called web or snapshot views in ClearCase, and have hijacked a file.  To deliver that change (if need be) the hijack must be converted to a checkout.
​

The pending changes view affords you the ability to know a bit more and to control the flow of changes into and out of the dev/integration streams.  For example, any artifact in the list can be right-clicked and compared to the change it represents.  In the case of outgoing changes, the diff will be between the version current on the integration stream and the developer’s development stream.  If there are conflicting changes, they will show as a double headed red arrow annotation on the artifact and the comparison will be available to view.   Upon delivery (for outgoing changes) you will need to resolve any conflicts.


Similarities ​

Both views are similar in the sense that:
  • Views organize artifacts by activities (i.e. a change set)
  • Both offer actions that allow diffs of files to be made
  • Both work on a “per view” basis, i.e. each view has a distinct set of change sets since the activity is tied to the view/stream
  • Artifacts can be associated to tasks/activities in both views.  In the change set views, you can move any version of an artifact from one activity to any other activity.  Similar operations in the pending changes view can be done with associate/remove activity actions


Differences ​

Some of the key difference between the two views are:
  • Pending changes essentially shows the latest changes for a given activity or set of activities.  If you use the same activity for incremental changes that have been delivered over time, only the latest changes show.  The change set view will show all the artifacts involved with that activity.
  • The pending changes view allows you to see what is incoming.
  • The pending changes view allows you to see possible merge conflicts.
  • The pending changes view can be used in a base ClearCase environment that is using branching in the development process.
  • The change set view is updated with each change.  Any new artifacts that are added to the change set will show up.  With pending changes, the view requires updating since it has to be compared with the integration stream.
  • The pending changes view allows you to perform the deliver/rebase with one click using the synchronize button in the upper right of the view.  Upon pressing, the rebase/deliver process will start if there are any incoming and/or outgoing changes.
  • Pending changes can be used in a base ClearCase environment.
  • The change set view does not require configuration.  The pending changes view.


Conclusion ​

While offering some similar function, the pending changes and change set views are complimentary constructs that are useful in their own way.  For me, daily work tracking (what’s checked out, what has been modified etc.) is easily accomplished using the change set view.  When the time comes to know, what needs delivering, what is still checked out, hijacked etc. and will there be issues with merging, the pending changes view is quite helpful and is clearly the right tool for this purpose.
​
Picture
John Petrakis
​Solutions Architect at HCL

John is a technical contributor to the ClearCase product family and has worked extensively on the ClearTeam Explorer and ClearTeam Explorer plugins for Eclipse along with other integrations for ClearCase.
0 Comments



Leave a Reply.

    Archives

    November 2019
    March 2019
    January 2019
    October 2018
    September 2018
    August 2018
    July 2018
    April 2018
    March 2018
    February 2018
    January 2018
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017

    Categories

    All

    RSS Feed

    Helpful Links

    Open RFEs
    • IBM ClearCase / IBM ClearQuest
    Knowledge Center
    • IBM ClearCase
    • IBM ClearQuest
    ​IBM Marketplace
    • IBM ClearCase
    • IBM ClearQuest

Home

Blogs

Community

Contact

Resources

Copyright © 2018-19

Note: ClearQuest and ClearCase are trademarks of IBM Corporation in at least one jurisdiction and is used under license.
  • Home
  • Blogs
  • Forum
  • About
  • Contact
  • Resources
    • Security Bulletin
  • Events