Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>DxCherryNew to Visual Studio Code? Get it now.
DxCherry

DxCherry

Preview

DevExtreme Git Automatization

|
424 installs
| (0) | Free
One-click cherry-picking and pull request creating right in Visual Studio Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DxCherry

DxCherry is an extension for Visual Studio Code created by Anton Kuznetsov and Jaan Toming to automate routine processes of cherry-picking and pull requests creating.

It extends functionality of GitCherry open-sourced extension to get the best flow.

Advantages

  • You don't need to create branches for cherry picks, check out to them, fetch upstreams, cherry pick, push it manually anymore.
    :zap: Just select necessary branches in side tree view, click on a button and cherry picks will be done.
  • You don't need to create pull requests for each cherry pick separately.
    :zap: Customized pull requests for selected branches will be created automatically after button click. You should just click on Open button in popped up information window to see the pull request on Github.
  • You don't need to search a created pull request in Github and configure it manually.
    :zap: You can make it once for base branch right in Visual Studio Code using friendly UI interface
  • You don't need to add cherry-pick and version labels to your pull requests. :zap: DxCherry will do it for you
  • You don't need to fix a pull request title when there is more than one commit in your branch or first commit length is too much.
    :zap: The extension fill put a full first commit message as the pull request title. But you still can modify it right in Visual Studio Code
  • You don't need to stash changes if there is unstaged changes before cherry-pick.
    :zap: The extension will stash the changes before cherry pick and return it back after cherry picking.
  • You don't need to abort cherry-picking and check out back manually if something goes wrong during merge conflict solving.
    :zap: Just click abort button and it becomes as not cherry pick was there.

Actual restrictions

  1. Branches should be named with upstream branch name in suffix separated by __ (double underscore). Example: myBranch__21_2. It's necessary for extension to understand which branch is current branch checked out from.
  2. Remote should be named as upstream. It means that extension will not work if you name your remote as mainDevextreme on another way.

It's planned to research the way to avoid this restrictions in the future :blush:

Main features:

  1. One-click cherry-pick to multiple branches
  2. One-click multiple pull requests with custom configuration creating
  3. Integration with https://int.devexpress.com/Employees/ to get reviewers names and squads
  4. Specific UX improvements:
  • only 5 branches are shown by default. Expand more node to see all upstream branches.
  • useless labels are not shown
  • reviewers are grouped by squads

some more:

  • merge conflicts solving
  • abort cherry-pick when merge conflict is detected
  • data tree refreshing
  • all checkboxes unselecting

Cherry-pick to multiple branches

Cherry pick

  1. Create a local branch named as *name__upstreamBranchName*, etc myBranch_master. Commit changes.
  2. Toggle checkboxes with appropriate branch names to specify necessary upstream branches to which cherry-pick.
  3. Click Cherry-pick button to start cherry-picking.

Result: Local branches with commits cherry picked from current one are created.

Merge conflicts solving

Merge conflict solving

  1. If merge conflict is detected cherry picking stops, Cherry-pick button replaces with Continue cherry-picking button.
  2. Resolve merge conflict using familiar way and commit the changes.
  3. Press Continue cherry-picking button.

Result: Cherry-picking continues.

Abort cherry-pick when merge conflict is detected

Abort cherry-pick

Click on Abort cherry-pick button when merge conflict is detected to cancel current cherry-pick.

Result: actual cherry-pick is aborted.

Multiple pull requests creating

Pull request creating

  1. Select branches. Select labels and reviewers if it's necessary.
  2. Click on the Create pull requests button.
  3. Customize a title in the shown input box (by default first commit message is placed here). Input some description if you want.

Result: Local branch named as *currentBranch__upstreamBranch* is pushed for every selected upstream branch. And for every pushed branch customized pull request is created. It remains only to click on Open button placed in the information toast to see pull request github page.

Data tree refreshing

Refresh

Extension data tree can become outdated if some new labels, branches or reviewers were added to upstream repo.

Click on Refresh button to load new data and update the tree.

Unselect checkboxes

Unselect checkboxes

If you wanna to unselect all checkboxes in some TreeView subtree, just hover appropriate node and click Unselect all button.

Details and future plans

See CHANGELOG

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft