Josip Sokcevic | 4de5dea | 2022-03-23 21:15:14 +0000 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 2 | # Copyright 2015 The Chromium Authors. All rights reserved. |
| 3 | # Use of this source code is governed by a BSD-style license that can be |
| 4 | # found in the LICENSE file. |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 5 | |
| 6 | import argparse |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 7 | |
Edward Lesmes | 1ea2333 | 2021-02-01 17:48:56 +0000 | [diff] [blame] | 8 | _HELP_MESSAGE = """\ |
| 9 | git drover has been deprecated in favor of cherry-picking using Gerrit. |
| 10 | Try it, it's faster! |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 11 | |
Edward Lesmes | 1ea2333 | 2021-02-01 17:48:56 +0000 | [diff] [blame] | 12 | See https://www.chromium.org/developers/how-tos/drover for instructions. |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 13 | |
Edward Lesmes | 1ea2333 | 2021-02-01 17:48:56 +0000 | [diff] [blame] | 14 | If the Gerrit UI is not sufficient, and you know what you're doing: |
| 15 | git checkout -b branch-name refs/remotes/branch-heads/{branch} |
| 16 | git cherry-pick -x {cherry_pick} |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 17 | |
Edward Lesmes | 1ea2333 | 2021-02-01 17:48:56 +0000 | [diff] [blame] | 18 | If you have to do a lot of merges, consider using multiple working directories |
| 19 | in your checkout: |
| 20 | https://www.chromium.org/developers/how-tos/get-the-code/multiple-working-directories |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 21 | """ |
| 22 | |
| 23 | |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 24 | def main(): |
Mike Frysinger | 124bb8e | 2023-09-06 05:48:55 +0000 | [diff] [blame] | 25 | parser = argparse.ArgumentParser(description=_HELP_MESSAGE) |
| 26 | parser.add_argument( |
| 27 | '--branch', |
| 28 | default='BRANCH', |
| 29 | metavar='BRANCH', |
| 30 | type=str, |
| 31 | help='the name of the branch to which to cherry-pick; e.g. 1234') |
| 32 | parser.add_argument( |
| 33 | '--cherry-pick', |
| 34 | default='HASH_OF_THE_COMMIT_TO_CHERRY_PICK', |
| 35 | metavar='HASH_OF_THE_COMMIT_TO_CHERRY_PICK', |
| 36 | type=str, |
| 37 | help=('the change to cherry-pick; this can be any string ' |
| 38 | 'that unambiguosly refers to a revision not involving HEAD')) |
| 39 | options, _ = parser.parse_known_args() |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 40 | |
Mike Frysinger | 124bb8e | 2023-09-06 05:48:55 +0000 | [diff] [blame] | 41 | print( |
| 42 | _HELP_MESSAGE.format(branch=options.branch, |
| 43 | cherry_pick=options.cherry_pick)) |
| 44 | |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 45 | |
| 46 | if __name__ == '__main__': |
Mike Frysinger | 124bb8e | 2023-09-06 05:48:55 +0000 | [diff] [blame] | 47 | main() |