#2943: Formaline rejects valid symlinks in GRHayLib
Reporter: Zach Etienne Status: new Milestone: Version: Type: bug Priority: major Component:
Formaline emits warnings while creating/updating the configuration git repository when a thorn contains symbolic links, for example in `GRHayL/GRHayLib/src`:
```text Formaline: Creating configuration git repository... Formaline: Updating files in git repository... WARNING: Refusing to add "arrangements/GRHayL/GRHayLib/src/Neutrinos" as it is not a regular file at Cactus/configs/etbhahaha/scratch/Formaline/bin/update-git-repo.pl line 202, <STDIN> line 6246. ... fatal: bad revision 'HEAD' Formaline: Committing source tree to git repository... ```
The full set of warnings occurs for the symlinked `GRHayLib/src` entries such as `Neutrinos`, `Induction`, `Flux_Source`, `Reconstruction`, `Atmosphere`, `EOS`, `include`, `GRHayL_Core`, and `Con2Prim`.
**Root Cause**
`Formaline/src/util/update-git-repo.pl` currently accepts only regular files before adding paths to the Formaline git repository:
```perl if (! -e $file) { push @to_remove, $file; next; } elsif (! -f $file) { warn "WARNING: Refusing to add "$file" as it is not a regular file"; next; } ```
This rejects valid symbolic links, including symlinks to directories. The listed `GRHayLib/src/*` entries are symlinks, not broken paths, so they should be represented in the Formaline git snapshot instead of being skipped.
Git represents symlinks as mode `120000` blobs containing the link target. Formaline’s fallback path already uses `git update-index --cacheinfo` when hard-link staging fails, so symlinks need corresponding handling there rather than being rejected by the regular-file check.
**Fix Available**
The issue is fixed by this pull request, which is ready for review:
https://bitbucket.org/cactuscode/cactusutils/pull-requests/46
**Expected Behavior**
Formaline should preserve valid symbolic links in its git source snapshot. Broken symlinks should still produce a warning.
**Suggested Resolution**
Review and merge:
https://bitbucket.org/cactuscode/cactusutils/pull-requests/46
-- Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2943/formaline-rejects-...