Source code for datalad_next.repo_utils.annex

from pathlib import Path

from datalad_next.runners import call_git_success


[docs] def has_initialized_annex( path: Path, ) -> bool: """Return whether there is an initialized annex for ``path`` The given ``path`` can be any directory, inside or outside a Git repository. ``True`` is returned when the path is found to be within a (locally) initialized git-annex repository. When this test returns ``True`` it can be expected that no subsequent call to an annex command fails with `git-annex: First run: git-annex init` for this ``path``. """ # this test is about 3ms in MIH's test system. # datalad-core tests for a git repo and then for .git/annex, this # achieves both in one step (although the test in datalad-core is # likely still faster, because it only inspects the filesystem # for a few key members of a Git repo. In order for that test to # work, though, it has to traverse the filesystem to find a repo root # -- if there even is any). # also ee https://git-annex.branchable.com/forum/Cheapest_test_for_an_initialized_annex__63__/ return call_git_success( ['config', '--local', 'annex.uuid'], cwd=path, capture_output=True, )