I cannot for the life of me get the symlinks used in Ghost to add to my git repository. I need help, because the last time I tried to bring the repo down without those symlinks (current and casper) the entire ghost install broke down and I couldn’t repair it. I have data in this install that I would like not to lose.
My setup is as follows
- Ghost local install on windows desktop
- run
ghost start
and work on website - run
static-ghost
from this NPM repo to produce a static site in/public
- run
- push repository to gitlab
- CI/CD publishes
/public
to gitlab pages - subdomain
dev.arcandio.com
pointed at gitlab pages
- CI/CD publishes
This all works so far.
The problem is that my repo is incomplete, and I cannot download the repository and rebuild the project correctly, because the two symlinks are not pushed to the repository. The exact errors are given below. I have the same setup for two projects, and it worked fine for building one, while the other seemed to lose the symlink and became unusable. That’s when I realized that they were symlinks and that they weren’t being added to the repository, so I couldn’t clone down a working version of the repo.
Environment deets
- OS
- windows 10 home, 1903
- What’s your URL? This is the easiest way for others to debug your issue
- What version of Ghost are you using?
- ghost-cli: 1.13.1
- ghost 3.15.3
- git 2.26.2.windows.1
- What configuration?
- ghost install local
- What browser?
- chrome
- What errors or information do you see in the console?
$ git add .
warning: could not open directory 'content/themes/casper/': No such file or directory
warning: could not open directory 'current/': No such file or directory
- What steps could someone else take to reproduce the issue you’re having?
- be on Windows 10
- be sure git bash is installed with symlinks enabled
ghost install local
git init
- open
.git/config
and be sure thatcore.symlinks=true
git add .
- observer warning in log, it should be at the beginning and you might miss it.
- commit and push, then
git add .
again to observe warning again.
- what shell are you using?
- Tried in cmd, powershell, and git bash (with and without admin privelages), none have made a difference.
Further details
I understand that symlinks are not well supported in windows. I’ve enabled them in the git config for the project, but that hasn’t helped. .git/config
core section follows:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = true
All the advice I’ve seen on stackoverflow and everything else talks about creating symlinks on windows. I don’t need to create a symlink, ghost install local
does that already. I need to add, commit, and push existing symlinks to my git repo.
My entire .gitignore
follows:
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# node
node_modules
# ghost
#versions
#current
tmp
coverage
.ghostpid
auth.ini
I untracked node_modules so that the repo would be reasonable; I should in theory be able to run yarn
in the version directory to rebuild the modules.
I initially had versions
and current
in the gitignore, but those have been commented out in this new version of the repo, so there shouldn’t be a problem with them being untracked from past commits.
Preferrably, I’d like some way to push ghost’s symlinks to the repo, but I’m willing to try something like copying the files instead if that’s necessary. No idea how to proceed, I’m don’t know how ghost works inside as this is my first attempt to use it.