From nobody Wed May 8 05:39:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57425+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57425+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1586975120; cv=none; d=zohomail.com; s=zohoarc; b=YdTZYP+diFl0vRc7sN6Q40wOB9mRaYf4ekDDOc9f59kGFMUMdosglo08QcinumQYhPv0pBCK2PbyF/L855iPwf0M6P93Y/SfLbuaz8Oxh19jQ80KJMADlDVAPHp/PiVHsfVlhWHqlClfGF65Zlq2iJT6cjFB5u8GQgQzf4RCp94= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586975120; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To; bh=3+o3UmxVaJpDATyu9feqR1ej4j5RLfeF3vTFtct3+/s=; b=CyGV91vOFruKvAj1Y3BLJrj/4liCnvBOTBpB985EM6mgvZ6YX4JDui38bZ8MWEGAyMYSbVwmf/IGFz21cBTXBHv0h0VkjFNsxQFzzsAOD7lnt8mrQF5gIlqR1TsH0SauHExyVAu/DkWuAJY4sJZ4EDuzafRKPdY3RCEmgAyEt7c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57425+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586975120976966.4303193764354; Wed, 15 Apr 2020 11:25:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id QpC0YY1788612x7bZdzLXa4E; Wed, 15 Apr 2020 11:25:20 -0700 X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.20763.1586975120217302346 for ; Wed, 15 Apr 2020 11:25:20 -0700 IronPort-SDR: LcsH/xnNeYtXP0GpUAbNZwPe/dHJ8joUDf415kBRdR4wcY+nswpiFn7TlMXa4ds2ycSoN7v1DL dqYWHTeJR1KQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Apr 2020 11:25:19 -0700 IronPort-SDR: gTliVznwwJ5+U8YganbDIEPqiXf++AE2dqr4MtshUAQjG/EEFkvY8JqQVrUzqrI2FcMSbYJk0Q Mp7fgEUc4c0A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,388,1580803200"; d="scan'208";a="242387932" X-Received: from aedesimo-desk.amr.corp.intel.com ([10.7.159.171]) by orsmga007.jf.intel.com with ESMTP; 15 Apr 2020 11:25:19 -0700 From: "Ashley E Desimone" To: devel@edk2.groups.io Cc: Nate DeSimone , Puja Pandya , Erik Bjorge , Bret Barkelew , Prince Agyeman Subject: [edk2-devel] [edk2-staging/EdkRepo] [PATCH] EdkRepo: Resolve UnboundLocalError in edkrepo.sync Date: Wed, 15 Apr 2020 11:25:13 -0700 Message-Id: <20200415182513.35448-1-ashley.e.desimone@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashley.e.desimone@intel.com X-Gm-Message-State: I8qu62GkDpnGhVsvPoAsCyKhx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586975120; bh=HiP2Xec2v3dOz6x4IEhl/3ZQBtzsm4M6WgopiANSnBU=; h=Cc:Date:From:Reply-To:Subject:To; b=AYsplK4vZ+wDag1/J4zcF+Ph5pDywCc1qjeQ2wrkVsH6kN1fA6CessI1XC3EfmdNuyj WH4CJRcie8r1StF9iE8eNkj5/CE5yhQKNazeS/Fua0+Al28TQNpK2kialFU3v7639wSSG wKFCjyMUZwgtyopvfDdSZ+oZ/azLLRSBWPk= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fix: 'Error: local variable 'repo_sources_to_sync' referenced before assignment' by adding the case where it is populated based on the current combo when not using the -u flag. Signed-off-by: Ashley E Desimone Cc: Nate DeSimone Cc: Puja Pandya Cc: Erik Bjorge Cc: Bret Barkelew Cc: Prince Agyeman Reviewed-by: Nate DeSimone --- edkrepo/commands/sync_command.py | 58 +++++++++++++++++++++---------------= ---- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/edkrepo/commands/sync_command.py b/edkrepo/commands/sync_comma= nd.py index 7e4c89d..cb9dc4b 100644 --- a/edkrepo/commands/sync_command.py +++ b/edkrepo/commands/sync_command.py @@ -29,7 +29,7 @@ from edkrepo.common.humble import SYNC_MANIFEST_DIFF_WARN= ING, SYNC_MANIFEST_UPDA from edkrepo.common.humble import SPARSE_RESET, SPARSE_CHECKOUT, SYNC_REPO= _CHANGE, SYNCING, FETCHING, UPDATING_MANIFEST from edkrepo.common.humble import NO_SYNC_DETACHED_HEAD, SYNC_COMMITS_ON_M= ASTER, SYNC_ERROR from edkrepo.common.humble import MIRROR_BEHIND_PRIMARY_REPO, SYNC_NEEDS_R= EBASE, INCLUDED_FILE_NAME -from edkrepo.common.humble import SYNC_BRANCH_CHANGE_ON_LOCAL, SYNC_INCOMP= ATIBLE_COMBO +from edkrepo.common.humble import SYNC_BRANCH_CHANGE_ON_LOCAL, SYNC_INCOMP= ATIBLE_COMBO from edkrepo.common.humble import SYNC_REBASE_CALC_FAIL from edkrepo.common.pathfix import get_actual_path from edkrepo.common.common_repo_functions import pull_latest_manifest_repo= , clone_repos, sparse_checkout_enabled @@ -104,15 +104,17 @@ class SyncCommand(EdkrepoCommand): if args.update_local_manifest: #NOTE: hyphens in arg name replaced= with underscores due to argparse self.__update_local_manifest(args, config, initial_manifest, w= orkspace_path) manifest =3D get_workspace_manifest() - if args.update_local_manifest: - try: - repo_sources_to_sync =3D manifest.get_repo_sources(current= _combo) - except ValueError: - # The manifest file was updated and the initial combo is n= o longer present so use the default combo - current_combo =3D manifest.general_config.default_combo - repo_sources_to_sync =3D manifest.get_repo_sources(current= _combo) + if args.update_local_manifest: + try: + repo_sources_to_sync =3D manifest.get_repo_sources(current= _combo) + except ValueError: + # The manifest file was updated and the initial combo is n= o longer present so use the default combo + current_combo =3D manifest.general_config.default_combo + repo_sources_to_sync =3D manifest.get_repo_sources(current= _combo) + else: + repo_sources_to_sync =3D manifest.get_repo_sources(current_com= bo) manifest.write_current_combo(current_combo) - + sync_error =3D False # Calculate the hooks which need to be updated, added or removed f= or the sync if args.update_local_manifest: @@ -218,26 +220,26 @@ class SyncCommand(EdkrepoCommand): ci_index_xml_rel_path =3D os.path.normpath(ci_index_xml.get_projec= t_xml(initial_manifest.project_info.codename)) global_manifest_path =3D os.path.join(global_manifest_directory, c= i_index_xml_rel_path) new_manifest_to_check =3D ManifestXml(global_manifest_path) - - # Does the current combo exist in the new manifest? If not check t= o see if you can use the repo sources from - # the default combo - initial_combos =3D combinations_in_manifest(initial_manifest) - new_combos =3D combinations_in_manifest(new_manifest_to_check) - if (current_combo not in new_combos) or (set(new_combos) !=3D set(= initial_combos)): - if initial_manifest.get_repo_sources(current_combo) =3D=3D new= _manifest_to_check.get_repo_sources(new_manifest_to_check.general_config.de= fault_combo): - new_sources_for_current_combo =3D new_manifest_to_check.ge= t_repo_sources(new_manifest_to_check.general_config.default_combo) - new_sources =3D new_sources_for_current_combo - else: - # Since asymetric combinations are not supported error out= with an IMCOMPATIBLE_COMBO warning - print(SYNC_COMBO_CHANGE.format(current_combo, initial_mani= fest.project_info.codename)) - raise EdkrepoManifestChangedException(SYNC_INCOMPATIBLE_CO= MBO) - else: - new_sources_for_current_combo =3D new_manifest_to_check.get_re= po_sources(current_combo) - new_sources =3D new_manifest_to_check.get_repo_sources(current= _combo) - + + # Does the current combo exist in the new manifest? If not check t= o see if you can use the repo sources from + # the default combo + initial_combos =3D combinations_in_manifest(initial_manifest) + new_combos =3D combinations_in_manifest(new_manifest_to_check) + if (current_combo not in new_combos) or (set(new_combos) !=3D set(= initial_combos)): + if initial_manifest.get_repo_sources(current_combo) =3D=3D new= _manifest_to_check.get_repo_sources(new_manifest_to_check.general_config.de= fault_combo): + new_sources_for_current_combo =3D new_manifest_to_check.ge= t_repo_sources(new_manifest_to_check.general_config.default_combo) + new_sources =3D new_sources_for_current_combo + else: + # Since asymetric combinations are not supported error out= with an IMCOMPATIBLE_COMBO warning + print(SYNC_COMBO_CHANGE.format(current_combo, initial_mani= fest.project_info.codename)) + raise EdkrepoManifestChangedException(SYNC_INCOMPATIBLE_CO= MBO) + else: + new_sources_for_current_combo =3D new_manifest_to_check.get_re= po_sources(current_combo) + new_sources =3D new_manifest_to_check.get_repo_sources(current= _combo) + remove_included_config(initial_manifest.remotes, initial_manifest.= submodule_alternate_remotes, local_manifest_dir) write_included_config(new_manifest_to_check.remotes, new_manifest_= to_check.submodule_alternate_remotes, local_manifest_dir) - + self.__check_submodule_config(workspace_path, new_manifest_to_chec= k, new_sources_for_current_combo) new_manifest_remotes =3D {name:url for name, url in new_manifest_t= o_check.remotes} #check for changes to remote urls @@ -245,7 +247,7 @@ class SyncCommand(EdkrepoCommand): if remote_name in new_manifest_remotes.keys(): if initial_manifest_remotes[remote_name] !=3D new_manifest= _remotes[remote_name]: raise EdkrepoManifestChangedException(SYNC_URL_CHANGE.= format(remote_name)) - + # Check that the repo sources lists are the same. If they are not = the same and the override flag is not set, throw an exception. if not args.override and set(initial_sources) !=3D set(new_sources= ): raise EdkrepoManifestChangedException(SYNC_REPO_CHANGE.format(= initial_manifest.project_info.codename)) --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57425): https://edk2.groups.io/g/devel/message/57425 Mute This Topic: https://groups.io/mt/73038752/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-