#2942: Formaline: preserve symlinks in git source snapshots
| Reporter: | Roland Haas |
| Status: | new |
| Milestone: | |
| Version: | |
| Type: | bug |
| Priority: | major |
| Component: |
@Zach Etienne reports:
Formaline currently warns and skips symbolic links when updating its git source snapshot because update-git-repo.pl only accepts regular files. This causes valid symlinks, including symlinks to directories, to be omitted from the stored source tree.
Allow symbolic links through the existing file-type check. When the temporary hard-link staging tree can represent the symlink, the existing bulk git add path continues to handle it. If hard-link staging fails, add a symlink-specific fallback that writes the link target as a Git blob and stages it with mode 120000, which is Git's native representation for symbolic links.
Broken symlinks are still refused with a warning and removed from the desired tracked set, matching the existing behavior for missing files while making the broken-link case explicit.
The fallback path also avoids shell-quoting the Cactus filename directly
by passing paths and link targets through environment variables before
feeding them to git hash-object / git update-index.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2942/formaline-preserve-symlinks-in-git-source