#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…
#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-preserv…
#2939: AHFinderDirect: range options for track_origin_source_x/y/z
Reporter: Jordan Nicoules
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component: EinsteinToolkit thorn
Comment (by Jordan Nicoules):
The PR doesn't change the default value being `""` and matching anything, is that intended?
Maybe I wasn't clear, what I meant was
```
string track_origin_source_x[101] "grid scalar containing the x component of the origin estimate" STEERABLE=recover
{
"None" :: "None"
"[a-zA-Z_][a-zA-Z0-9_]*[:][:][a-zA-Z_][a-zA-Z0-9_]*(\[0-9+\])" :: "name of a grid scalar"
} "None"
```
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2939/ahfinderdirect-ra…