Skip to content
  • Joey Hess's avatar
    v7 · 234842a3
    Joey Hess authored
    Install new git hooks in this version.
    
    This does beg the question of what to do if git later gets eg a
    post-smudge hook, that could run git-annex smudge --update. I think the
    thing to do in that case would be to make git-annex smudge --update
    install the new hooks. That way, as the user uses git-annex, the hook
    would be created pretty quickly and without needing any extra syscalls
    except for when git-annex smudge --update is called.
    
    I considered doing something like that for installation of the
    post-checkout and post-merge hooks, which would have avoided the need
    for v7. But the only place it was cheap to do it would be in git-annex smudge
    which could cheaply notice that smudge.log didn't exist yet and so know
    the hooks needed to be installed. But since smudge used to populate pointer
    files, it would be quite surprising if a single git checkout/merge failed
    to update the work tree, and so that idea didn't work out.
    
    The other reason for v7 is psychological -- users don't need to worry
    about whether they might be running an old version of git-annex that
    doesn't support their v7 repository very well. And bug reports about
    "v6" have gotten a bit of a bad association in my head since they often
    hit one of the known limitations and didn't realize it was experimental.
    
    newtyped RepoVersion Int to avoid needing 2 comparisons in
    versionSupportsUnlockedPointers etc. Also it's just nicer.
    
    This commit was sponsored by John Pellman on Patreon.
    234842a3