• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. RBTools dev
    2. Version 5.x
    3. Version 4.x
    4. Version 3.x
    5. Version 2.0
    6. Version 1.0
    7. Version 0.7
    8. Version 0.6
    9. Version 0.5
    10. RBTools Workflows
    11. Using RBTools with HCL VersionVault and IBM ClearCase
  • Home
  • Installing RBTools
  • rbt Command
  • Configuration
  • Authenticating to Review Board
  • Repository Configuration
  • Per-User Configuration
  • Team Foundation Server Configuration
  • Commands
  • alias
  • api-get
  • attach
  • clear-cache
  • close
  • diff
  • install
  • land
  • list-repo-types
  • login
  • logout
  • patch
  • post
  • publish
  • review
  • setup-completion
  • setup-repo
  • stamp
  • status
  • status-update
  • RBTools Workflows
  • Using RBTools With Cliosoft SOS
  • Using RBTools with Git
  • Using RBTools with HCL VersionVault and IBM ClearCase
  • Using RBTools With Perforce
  • RBTools Python API
  • Overview of the Python API Client
  • Tutorial
  • Resource-Specific Functionality
  • Module and Class References
  • rbtools
  • rbtools.deprecation
  • rbtools.api
  • rbtools.api.cache
  • rbtools.api.capabilities
  • rbtools.api.client
  • rbtools.api.decode
  • rbtools.api.decorators
  • rbtools.api.errors
  • rbtools.api.factory
  • rbtools.api.request
  • rbtools.api.resource
  • rbtools.api.transport
  • rbtools.api.transport.sync
  • rbtools.api.utils
  • rbtools.clients
  • rbtools.clients.base
  • rbtools.clients.base.patch
  • rbtools.clients.base.registry
  • rbtools.clients.base.repository
  • rbtools.clients.base.scmclient
  • rbtools.clients.errors
  • rbtools.clients.bazaar
  • rbtools.clients.clearcase
  • rbtools.clients.cvs
  • rbtools.clients.git
  • rbtools.clients.mercurial
  • rbtools.clients.perforce
  • rbtools.clients.plastic
  • rbtools.clients.sos
  • rbtools.clients.svn
  • rbtools.clients.tfs
  • rbtools.config
  • rbtools.config.config
  • rbtools.config.loader
  • rbtools.diffs
  • rbtools.diffs.patches
  • rbtools.diffs.patcher
  • rbtools.diffs.tools
  • rbtools.diffs.tools.backends
  • rbtools.diffs.tools.backends.gnu
  • rbtools.diffs.tools.base
  • rbtools.diffs.tools.base.diff_file_result
  • rbtools.diffs.tools.base.diff_tool
  • rbtools.diffs.tools.errors
  • rbtools.diffs.tools.registry
  • rbtools.diffs.writers
  • rbtools.commands
  • rbtools.commands.main
  • rbtools.commands
  • rbtools.commands.base
  • rbtools.commands.base.commands
  • rbtools.commands.base.errors
  • rbtools.commands.base.options
  • rbtools.commands.base.output
  • rbtools.commands.alias
  • rbtools.commands.api_get
  • rbtools.commands.attach
  • rbtools.commands.clearcache
  • rbtools.commands.close
  • rbtools.commands.diff
  • rbtools.commands.info
  • rbtools.commands.install
  • rbtools.commands.land
  • rbtools.commands.list_repo_types
  • rbtools.commands.login
  • rbtools.commands.logout
  • rbtools.commands.patch
  • rbtools.commands.post
  • rbtools.commands.publish
  • rbtools.commands.review
  • rbtools.commands.setup_completion
  • rbtools.commands.setup_repo
  • rbtools.commands.stamp
  • rbtools.commands.status
  • rbtools.commands.status_update
  • rbtools.hooks
  • rbtools.hooks.common
  • rbtools.hooks.git
  • rbtools.testing
  • rbtools.testing.api
  • rbtools.testing.api.payloads
  • rbtools.testing.api.transport
  • rbtools.testing.commands
  • rbtools.testing.testcase
  • rbtools.testing.transport
  • rbtools.utils
  • rbtools.utils.aliases
  • rbtools.utils.browser
  • rbtools.utils.checks
  • rbtools.utils.commands
  • rbtools.utils.console
  • rbtools.utils.diffs
  • rbtools.utils.encoding
  • rbtools.utils.errors
  • rbtools.utils.filesystem
  • rbtools.utils.graphs
  • rbtools.utils.mimetypes
  • rbtools.utils.process
  • rbtools.utils.repository
  • rbtools.utils.review_request
  • rbtools.utils.source_tree
  • rbtools.utils.users
  • Glossary
  • General Index
  • Python Module Index
  • Release Notes
  • This documentation covers the in-development release of RBTools. You can see the stable RBTools documentation or all previous versions.

    Using RBTools with HCL VersionVault and IBM ClearCase¶

    This guide covers the various ways to use RBTools with HCL VersionVault or IBM ClearCase. You can post changes using both Base ClearCase or UCM workflows.

    A typical workflow looks like this:

    1. Create your change for the review request

    2. Post your change for review

    3. Make changes based on feedback and re-port for review

    4. Finish your code by checking in or delivering your activity

    5. Close your review request

    Step 1: Create your change¶

    You’ll be able to post a branch, label, activity, baseline, or stream representing the change you want to review.

    Step 2: Posting changes for review¶

    Posting checked-out files¶

    The most simple case is posting a diff of all currently checked out files in your view. This will work no matter what workflow you are using:

    $ rbt post
    

    Posting changes with Base ClearCase workflows¶

    When using Base ClearCase, there are several ways you can post code for review.

    To post a change between a branch and its predecessor, use:

    $ rbt post brtype:branchname
    

    To post a change between a label and its predecessor, use:

    $ rbt post lbtype:labelname
    

    A diff between two labels can also be posted. This requires posting from within a dynamic view:

    $ rbt post lbtype:label1 lbtype:label2
    

    Posting changes with UCM workflows¶

    If you’re using UCM, you can also post activities, baselines, and streams.

    To post an activity, use:

    $ rbt post activity:my-activity
    

    To post the diff between a baseline and its predecessor, use:

    $ rbt post baseline:project-dev
    

    To post the diff between two baselines:

    $ rbt post baseline:project-integration baseline:project-dev
    

    To post a stream:

    $ rbt post stream:dev-stream
    

    Posting files manually¶

    Finally, you can also assemble a diff using file@revision pairs. This requires posting from within a dynamic view. Each argument will be a file@@revision1:file@@revision2 pair:

    $ rbt post /vobs/proj/file.c@@/main/0:/vobs/proj/file.c@@/main/1
    

    Multiple files can be posted by adding additional file/revision pairs:

    $ rbt post /vobs/proj/file.c@@/main/0:/vobs/proj/file.c@@/main/1 \
               /vobs/proj/file.h@@/main/0:/vobs/proj/file.h@@/main/1
    

    Once you’ve posted…¶

    Your changes are now posted to Review Board, but are in a draft state. Nobody can see it until you’re ready to publish.

    You’ll now need to go to the URL and fill out the Summary, Description, or any other fields.

    If you have default reviewers set up, they’ll be assigned automatically, but you can also specify the people or groups you want to review your change.

    Once you’re done filling out fields on the review request, click Publish to send it out for review.

    Step 3: Update from reviewer feedback and re-post¶

    Got some reviewer feedback to incorporate into your change? Easy.

    1. Depending on your workflow, make any changes as necessary. For example, continue to edit your existing checked-out files, or add additional changes to your activity.

    2. Update the review request with the latest code, using rbt post -r <review_request_id>. This option can be used with any of the diff selection methods listed above.

      For example:

      $ rbt post -r 123 activity:my-activity
      Review request #123 posted.
      
      https://reviewboard.example.com/r/123/
      https://reviewboard.example.com/r/123/diff/
      
    3. Update any information on the review request, if you want to.

      We recommend describing the changes you’ve made, so reviewers know what to look for. The field for this is on the green draft banner.

    4. Publish the new changes for review.

    5. Rinse and repeat until the review process is complete and the change is accepted.

    Step 4: Finish your code¶

    Depending on what workflow you’re doing, you can now proceed to finish the code change. This could involve checking in any checked-out files, or delivering your current UCM activity.

    Step 5: Close your review request¶

    Now that your change is in, it’s time to close your review request. You can do this in one of two ways:

    1. Navigate to the review request and close it.

      In Review Board 6 and newer, click Close -> Completed.

      In Review Board 5 and older, click Close -> Submitted.

    2. Run rbt close <review request ID> (see the documentation).

    Putting it all together¶

    Let’s walk through an example using a UCM activity.

    Posting your change¶

    First we’ll create our activity and edit some files.

    $ cleartool mkactivity -nc my-activity
    $ cleartool checkout -nc foo.py
    $ vim foo.py
    $ cleartool checkin -c "Make initial change" foo.py
    $ cleartool checkout -nc bar.py
    $ vim bar.py
    $ cleartool checkin -c "Make initial change" bar.py
    

    Now let’s post these changes for review.

    $ rbt post activity:my-activity
    Review request #1001 posted.
    
    https://reviewboard.example.com/r/1001/
    https://reviewboard.example.com/r/1001/diff/
    

    At this point, we’ll publish the review request, and then wait for feedback.

    Update from review feedback¶

    Hey, we got some review feedback. Let’s make changes to our code, and then update our review request:

    $ cleartool checkout -nc foo.py
    $ vim foo.py
    $ cleartool checkin -c "Update for review feedback" foo.py
    $ rbt post -r 1001 activity:my-activity
    Review request #1001 posted.
    
    https://reviewboard.example.com/r/1001/
    https://reviewboard.example.com/r/1001/diff/
    

    Go to the review request, describe the changes you made, and publish the new changes.

    Finish up¶

    Once you’ve gotten approval (reviews with a “Ship It!” that match your department/company’s policies), you can complete your change and close the review request.

    $ cleartool deliver -activities my-activity
    $ rbt close 1001
    

    (You can also close it in the review request page.)

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Step 1: Create your change
    • Step 2: Posting changes for review
      • Posting checked-out files
      • Posting changes with Base ClearCase workflows
      • Posting changes with UCM workflows
      • Posting files manually
      • Once you’ve posted…
    • Step 3: Update from reviewer feedback and re-post
    • Step 4: Finish your code
    • Step 5: Close your review request
    • Putting it all together
      • Posting your change
      • Update from review feedback
      • Finish up