Skip to content

git-filesync 0.21.1

Choose a tag to compare

@stsichler stsichler released this 31 Oct 16:50
· 28 commits to main since this release

Review fixes: mv all or none, unknown sync points, discarded content

Changes:

  • A recorded commit the source doesn't have - it may be behind (a mapped
    checkout not updated, not fetched) or upstream history was rewritten -
    is not guessed at: status shows the file as 'changed (previous sync
    point unknown)' and names both ways on, pull --all leaves it alone
    ("need attention"), and pull FILE syncs it to the source's current
    version. Before, pull --all synced it, possibly back to an older version.
  • mv OLD... DIR checks every OLD before moving any, and moves nothing if
    one fails: something in the way no longer leaves the others moved and
    .git-filesync unstaged.
  • restore -S only sets the index, so something in the way in the working
    tree no longer stops it.
  • --overwrite (add, and pull at the first sync of a new link) replaces an
    existing file only if it differs from the upstream version: an
    identical one is no longer reported as replaced or kept as discarded.
  • Where rm -f, --overwrite or restore -S replace the index entry, a staged
    version that is neither committed nor in the working tree is kept too:
    "discarded: FILE, as staged (git show ID to get it back)", as the
    working tree file was (line ends, LFS).
  • Proposed commit messages stay free of signature lines with
    log.showSignature set.
  • Fewer git calls: mv of several files, and dates for pull when a
    recorded commit is unknown.

Documentation:

  • README and MANUAL shorter and to the point; README "Why?" is
    "Motivation"; same structure as git-assetsync.
  • MANUAL: unknown previous sync points; the scheduled CI job; discarded
    content, also staged versions; restore -S with something in the way.
  • Pinned example versions in README and MANUAL set to v0.21.1.

This release replaces the 0.21.1 of earlier the same day, whose guess at
a source being behind is gone again.