#2942: Formaline: preserve symlinks in git source snapshots
Reporter: Roland Haas Status: new Milestone: Version: Type: bug Priority: major Component:
@{557058:8bc23f2a-45c0-477d-8ac4-a5a16c734278} 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...
trac@lists.einsteintoolkit.org