From c2f52d19f48f98d97183d447a77b7947b4ab3051 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 13 Jun 2024 13:02:09 -0600 Subject: [PATCH] Squashed '.lib/git-fleximod/' changes from 4ff1e98de..25ccc15de 25ccc15de Merge tag 'v0.7.8' into tmp-release 8eae7e3fb Bump to 0.7.8 34daa0657 Merge pull request #46 from ESMCI/add_optional_keyword af12c80ca fix spelling 7ea36dc44 remove manage_externals error 2ede18208 add optional to status output git-subtree-dir: .lib/git-fleximod git-subtree-split: 25ccc15de3b2e62554243300e69d44df69a65305 --- git_fleximod/cli.py | 4 ++-- git_fleximod/git_fleximod.py | 10 ++++++---- git_fleximod/utils.py | 12 ++++++------ pyproject.toml | 2 +- tbump.toml | 2 +- tests/conftest.py | 2 +- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/git_fleximod/cli.py b/git_fleximod/cli.py index bc099fcbc0..a15a226de4 100644 --- a/git_fleximod/cli.py +++ b/git_fleximod/cli.py @@ -2,7 +2,7 @@ import argparse from git_fleximod import utils -__version__ = "0.7.7" +__version__ = "0.7.8" def find_root_dir(filename=".gitmodules"): """ finds the highest directory in tree @@ -26,7 +26,7 @@ def find_root_dir(filename=".gitmodules"): def get_parser(): description = """ - %(prog)s manages checking out groups of gitsubmodules with addtional support for Earth System Models + %(prog)s manages checking out groups of gitsubmodules with additional support for Earth System Models """ parser = argparse.ArgumentParser( description=description, formatter_class=argparse.RawDescriptionHelpFormatter diff --git a/git_fleximod/git_fleximod.py b/git_fleximod/git_fleximod.py index ca5f90622d..e1b8f484a5 100755 --- a/git_fleximod/git_fleximod.py +++ b/git_fleximod/git_fleximod.py @@ -304,6 +304,7 @@ def submodules_status(gitmodules, root_dir, toplevel=False): ahash = result[0][1:] hhash = None atag = None + needsupdate += 1 if not toplevel and level: continue @@ -316,22 +317,23 @@ def submodules_status(gitmodules, root_dir, toplevel=False): hhash = htag.split()[0] if hhash and atag: break + optional = " (optional)" if required and "Optional" in required else "" if tag and (ahash == hhash or atag == tag): - print(f"e {name:>20} not checked out, aligned at tag {tag}") + print(f"e {name:>20} not checked out, aligned at tag {tag}{optional}") elif tag: ahash = rootgit.git_operation( "submodule", "status", "{}".format(path) ).rstrip() ahash = ahash[1 : len(tag) + 1] if tag == ahash: - print(f"e {name:>20} not checked out, aligned at hash {ahash}") + print(f"e {name:>20} not checked out, aligned at hash {ahash}{optional}") else: print( - f"e {name:>20} not checked out, out of sync at tag {atag}, expected tag is {tag}" + f"e {name:>20} not checked out, out of sync at tag {atag}, expected tag is {tag}{optional}" ) testfails += 1 else: - print(f"e {name:>20} has no fxtag defined in .gitmodules") + print(f"e {name:>20} has no fxtag defined in .gitmodules{optional}") testfails += 1 else: with utils.pushd(newpath): diff --git a/git_fleximod/utils.py b/git_fleximod/utils.py index 7cc1de38cc..1a2d5ccf2f 100644 --- a/git_fleximod/utils.py +++ b/git_fleximod/utils.py @@ -241,12 +241,12 @@ def _hanging_msg(working_directory, command): has taken {hanging_sec} seconds. It may be hanging. The command will continue to run, but you may want to abort -manage_externals with ^C and investigate. A possible cause of hangs is -when svn or git require authentication to access a private -repository. On some systems, svn and git requests for authentication -information will not be displayed to the user. In this case, the program -will appear to hang. Ensure you can run svn and git manually and access -all repositories without entering your authentication information. +git-fleximod with ^C and investigate. A possible cause of hangs is git +requires authentication to access a private repository. On some +systems, git requests for authentication information will not +be displayed to the user. In this case, the program will appear to +hang. Ensure you can run git manually and access all +repositories without entering your authentication information. """.format( command=command, diff --git a/pyproject.toml b/pyproject.toml index a316914bf5..5b1332549c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "git-fleximod" -version = "0.7.7" +version = "0.7.8" description = "Extended support for git-submodule and git-sparse-checkout" authors = ["Jim Edwards "] maintainers = ["Jim Edwards "] diff --git a/tbump.toml b/tbump.toml index c22637ccda..c4f7ac96ea 100644 --- a/tbump.toml +++ b/tbump.toml @@ -2,7 +2,7 @@ github_url = "https://github.com/jedwards4b/git-fleximod/" [version] -current = "0.7.7" +current = "0.7.8" # Example of a semver regexp. # Make sure this matches current_version before diff --git a/tests/conftest.py b/tests/conftest.py index 1cc008eb1d..65ee85d23d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -32,7 +32,7 @@ def logger(): "submodule_name": "test_optional", "status1" : "test_optional MPIserial_2.5.0-3-gd82ce7c is out of sync with .gitmodules MPIserial_2.4.0", "status2" : "test_optional at tag MPIserial_2.4.0", - "status3" : "test_optional not checked out, out of sync at tag None, expected tag is MPIserial_2.4.0", + "status3" : "test_optional not checked out, out of sync at tag None, expected tag is MPIserial_2.4.0 (optional)", "status4" : "test_optional at tag MPIserial_2.4.0", "gitmodules_content": """ [submodule "test_optional"]