• 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 5.x
    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 Python API
    11. Module and Class References
    12. rbtools.commands.patch
  • 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
  • rbtools.commands.patch¶

    Implementation of rbt patch.

    Classes

    PatchCommand(transport_cls, stdout, stderr, ...)

    Applies a specific patch from a RB server.

    PendingPatchInfo

    Information on a pending patch to apply.

    class rbtools.commands.patch.PendingPatchInfo[source]¶

    Bases: TypedDict

    Information on a pending patch to apply.

    New in version 5.1.

    diff_revision: Optional[int]¶

    The diff revision from the review request.

    has_metadata: bool¶

    Whether this patch contains scanned metadata.

    This is True when an author and commit message could be determined.

    patch: Patch¶

    The patch to apply.

    __closed__ = False¶
    __extra_items__ = None¶
    __mutable_keys__ = frozenset({'diff_revision', 'has_metadata', 'patch'})¶
    __optional_keys__ = frozenset({})¶
    __orig_bases__ = (<function TypedDict>,)¶
    __readonly_keys__ = frozenset({})¶
    __required_keys__ = frozenset({'diff_revision', 'has_metadata', 'patch'})¶
    __total__ = True¶
    class rbtools.commands.patch.PatchCommand(transport_cls: type[Transport] = <class 'rbtools.api.transport.sync.SyncTransport'>, stdout: TextIO = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, stderr: TextIO = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>, stdin: TextIO = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>)[source]¶

    Bases: BaseCommand

    Applies a specific patch from a RB server.

    The patch file indicated by the request id is downloaded from the server and then applied locally.

    name: ClassVar[str] = 'patch'[source]¶

    The name of the command.

    Type:

    str

    author: ClassVar[str] = 'The Review Board Project'[source]¶

    The author of the command.

    Type:

    str

    needs_api: ClassVar[bool] = True[source]¶

    Whether the command needs the API client.

    If this is set, the initialization of the command will set api_client and api_root.

    New in version 3.0.

    Type:

    bool

    needs_scm_client: ClassVar[bool] = True[source]¶

    Whether the command needs the SCM client.

    If this is set, the initialization of the command will set repository_info and tool.

    New in version 3.0.

    Type:

    bool

    args: ClassVar[str] = '<review-request-id>'[source]¶

    Usage text for what arguments the command takes.

    Arguments for the command are anything passed in other than defined options (for example, revisions passed to rbt post).

    Type:

    str

    option_list: ClassVar[list[Union[Option, OptionGroup]]] = [<rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.Option object>, <rbtools.commands.base.options.OptionGroup object>, <rbtools.commands.base.options.OptionGroup object>][source]¶

    Command-line options for this command.

    Type:

    list of Option or OptionGroup

    get_patches(*, diff_revision: Optional[int] = None, commit_ids: Optional[set[str]] = None, squashed: bool = False, reverted: bool = False) → Sequence[PendingPatchInfo][source]¶

    Return the requested patches and their metadata.

    If a diff revision is not specified, then this will look at the most recent diff.

    Parameters:
    • diff_revision (int, optional) –

      The diff revision to apply.

      The latest revision will be used if not provided.

    • commit_ids (list of unicode, optional) –

      The specific commit IDs to apply.

      If not specified, the squashed version of any commits (or the sole diff, in a non-multi-commit review request) will be applied.

    • squashed (bool, optional) – Whether to return a squashed version of the commits, if using a multi-commit review request.

    • reverted (bool, optional) – Return patches in the order needed to revert them.

    Returns:

    A list of dictionaries with patch information.

    Return type:

    list of PendingPatchInfo

    Raises:

    rbtools.command.CommandError – One of the following occurred: * The patch could not be retrieved or does not exist * The review request was created without history support and commit_ids was provided. * One or more requested commit IDs could not be found.

    initialize() → None[source]¶

    Initialize the command.

    This overrides BaseCommand.initialize in order to handle full review request URLs on the command line. In this case, we want to parse that URL in order to pull the server name and diff revision out of it.

    Raises:

    rbtools.commands.CommandError – A review request URL passed in as the review request ID could not be parsed correctly or included a bad diff revision.

    main(review_request_id: int) → int[source]¶

    Run the command.

    Parameters:

    review_request_id (int) – The ID of the review request to patch from.

    Returns:

    The resulting exit code.

    Return type:

    int

    Raises:

    rbtools.command.CommandError – Patching the tree has failed.

    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]
    • PendingPatchInfo
      • PendingPatchInfo.diff_revision
      • PendingPatchInfo.has_metadata
      • PendingPatchInfo.patch
      • PendingPatchInfo.__closed__
      • PendingPatchInfo.__extra_items__
      • PendingPatchInfo.__mutable_keys__
      • PendingPatchInfo.__optional_keys__
      • PendingPatchInfo.__orig_bases__
      • PendingPatchInfo.__readonly_keys__
      • PendingPatchInfo.__required_keys__
      • PendingPatchInfo.__total__
    • PatchCommand
      • PatchCommand.name
      • PatchCommand.author
      • PatchCommand.needs_api
      • PatchCommand.needs_scm_client
      • PatchCommand.args
      • PatchCommand.option_list
      • PatchCommand.get_patches()
      • PatchCommand.initialize()
      • PatchCommand.main()