diff --git a/scripts/move_mrs_to_monorepo.py b/scripts/move_mrs_to_monorepo.py index 19d5934828..32b1a69e6b 100755 --- a/scripts/move_mrs_to_monorepo.py +++ b/scripts/move_mrs_to_monorepo.py @@ -80,12 +80,12 @@ PARSER.add_argument( required=False, ) PARSER.add_argument( - "--mr", + "-mr", + "--mr-url", default=None, - type=int, + type=str, help=( - "Id of the MR to work on." - " One (and only one) module must be specified with `--module`." + "URL of the MR to work on." ), required=False, ) @@ -182,6 +182,7 @@ class GstMRMover: self.config_files = [] self.gl = None self.mr = None + self.mr_url = None self.all_projects = [] self.skipped_branches = [] self.git_rename_limit = None @@ -312,7 +313,12 @@ class GstMRMover: raise e def cleanup_args(self): - if not self.modules: + if self.mr_url: + self.modules.append(GST_PROJECTS[0]) + (namespace, module, _, _, mr) = os.path.normpath(urlparse(self.mr_url).path).split('/')[1:] + self.modules.append(module) + self.mr = int(mr) + elif not self.modules: if self.mr: sys.exit(f"{red(f'Merge request #{self.mr} specified without module')}\n\n" f"{bold(' -> Use `--module` to specify which module the MR is from.')}") @@ -527,6 +533,9 @@ class GstMRMover: bold(f"{red('SKIPPED')} (couldn't checkout)\n"), nested=False) return False + # unset upstream to avoid to push to main (ie push.default = tracking) + self.git("branch", branch, "--unset-upstream") + for commit in reversed([c for c in mr.commits()]): if self.git("cherry-pick", commit.id, interaction_message=f"cherry-picking {commit.id} onto {branch} with:\n " diff --git a/subprojects/gst-docs/markdown/frequently-asked-questions/mono-repository.md b/subprojects/gst-docs/markdown/frequently-asked-questions/mono-repository.md index dc2667eb29..f8745ed9fc 100644 --- a/subprojects/gst-docs/markdown/frequently-asked-questions/mono-repository.md +++ b/subprojects/gst-docs/markdown/frequently-asked-questions/mono-repository.md @@ -54,7 +54,8 @@ https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1277 you can run: ``` -GITLAB_API_TOKEN=zytXYboB5yi3uggRpBM6 ./scripts/move_mrs_to_monorepo.py -m gst-plugins-base --mr 1277 +GITLAB_API_TOKEN=zytXYboB5yi3uggRpBM6 ./scripts/move_mrs_to_monorepo.py -mr https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1277 + ``` When you are ready, you can also run the same script without any parameters to browse and move all your Merge Requests: