Skip to content

Commit

Permalink
Merge pull request #1624 from adrianschroeter/allow-native-checkout
Browse files Browse the repository at this point in the history
checkout: allow to checkout obs imported sources of scmsync sources
  • Loading branch information
dmach authored Nov 8, 2024
2 parents aaad3c7 + f4298b8 commit 3476199
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
10 changes: 6 additions & 4 deletions osc/commandline.py
Original file line number Diff line number Diff line change
Expand Up @@ -5007,6 +5007,8 @@ def do_browse(self, subcmd, opts, *args):
help='Use server side generated sources instead of local generation.')
@cmdln.option('-l', '--limit-size', metavar='limit_size',
help='Skip all files with a given size')
@cmdln.option('--native-obs-package', action='store_true',
help='Do not clone native scm repositories: Different representation and you will not be able to submit changes!')
@cmdln.alias('co')
def do_checkout(self, subcmd, opts, *args):
"""
Expand Down Expand Up @@ -5103,7 +5105,7 @@ def do_checkout(self, subcmd, opts, *args):
prj_dir=project_dir, service_files=opts.source_service_files,
server_service_files=opts.server_side_source_service_files,
progress_obj=self.download_progress, size_limit=opts.limit_size,
meta=opts.meta, outdir=opts.output_dir)
meta=opts.meta, outdir=opts.output_dir, native_obs_package=opts.native_obs_package)
if os.isatty(sys.stdout.fileno()):
print_request_list(apiurl, project, package)

Expand All @@ -5118,7 +5120,7 @@ def do_checkout(self, subcmd, opts, *args):
show_project_meta(apiurl, project)

scm_url = show_scmsync(apiurl, project)
if scm_url is not None:
if scm_url is not None and not opts.native_obs_package:
if not os.path.isfile('/usr/lib/obs/service/obs_scm_bridge'):
raise oscerr.OscIOError(None, 'Install the obs-scm-bridge package to work on packages managed in scm (git)!')
os.putenv("OSC_VERSION", get_osc_version())
Expand Down Expand Up @@ -5156,7 +5158,7 @@ def do_checkout(self, subcmd, opts, *args):
prj_dir=prj_dir, service_files=opts.source_service_files,
server_service_files=opts.server_side_source_service_files,
progress_obj=self.download_progress, size_limit=opts.limit_size,
meta=opts.meta)
meta=opts.meta, native_obs_package=opts.native_obs_package)
except oscerr.LinkExpandError as e:
print('Link cannot be expanded:\n', e, file=sys.stderr)
print('Use "osc repairlink" for fixing merge conflicts:\n', file=sys.stderr)
Expand All @@ -5165,7 +5167,7 @@ def do_checkout(self, subcmd, opts, *args):
prj_dir=prj_dir, service_files=opts.source_service_files,
server_service_files=opts.server_side_source_service_files,
progress_obj=self.download_progress, size_limit=opts.limit_size,
meta=opts.meta)
meta=opts.meta, native_obs_package=opts.native_obs_package)
if os.isatty(sys.stdout.fileno()):
print_request_list(apiurl, project)

Expand Down
3 changes: 2 additions & 1 deletion osc/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -3091,6 +3091,7 @@ def checkout_package(
prj_dir: Path=None,
server_service_files=None,
service_files=None,
native_obs_package=False,
progress_obj=None,
size_limit=None,
meta=False,
Expand Down Expand Up @@ -3151,7 +3152,7 @@ def checkout_package(
meta_data = b''.join(show_package_meta(apiurl, project, package))
root = ET.fromstring(meta_data)
scmsync_element = root.find("scmsync")
if scmsync_element is not None and scmsync_element.text is not None:
if not native_obs_package and scmsync_element is not None and scmsync_element.text is not None:
if not os.path.isfile('/usr/lib/obs/service/obs_scm_bridge'):
raise oscerr.OscIOError(None, 'Install the obs-scm-bridge package to work on packages managed in scm (git)!')
scm_url = scmsync_element.text
Expand Down

0 comments on commit 3476199

Please sign in to comment.