diff --git a/lib/config/utils.js b/lib/config/utils.js
index 9646f8c0e..39be6c2ae 100644
--- a/lib/config/utils.js
+++ b/lib/config/utils.js
@@ -25,16 +25,29 @@ exports.toIntegerConfig = function toIntegerConfig (configValue) {
}
exports.getGitCommit = function getGitCommit (repodir) {
- if (!fs.existsSync(repodir + '/.git/HEAD')) {
- return undefined
+ try {
+ // prefer using git to get the current ref, as poking in .git is very fragile
+ return require('child_process').execSync('git rev-parse HEAD')
+ } catch (e) {
+ // there was an error running git, try to parse refs ourselves
+ if (!fs.existsSync(repodir + '/.git/HEAD')) {
+ // there is no HEAD information
+ return undefined
+ }
+ let reference = fs.readFileSync(repodir + '/.git/HEAD', 'utf8')
+ if (reference.startsWith('ref: ')) {
+ // HEAD references another ref, try to get the commit SHA from .git/ref/heads
+ reference = reference.substr(5).replace('\n', '')
+ const refPath = path.resolve(repodir + '/.git', reference)
+ if (!fs.existsSync(refPath)) {
+ // ref does not exist in .git/ref/heads
+ return undefined
+ }
+ reference = fs.readFileSync(refPath, 'utf8')
+ }
+ reference = reference.replace('\n', '')
+ return reference
}
- let reference = fs.readFileSync(repodir + '/.git/HEAD', 'utf8')
- if (reference.startsWith('ref: ')) {
- reference = reference.substr(5).replace('\n', '')
- reference = fs.readFileSync(path.resolve(repodir + '/.git', reference), 'utf8')
- }
- reference = reference.replace('\n', '')
- return reference
}
exports.getGitHubURL = function getGitHubURL (repo, reference) {
diff --git a/public/docs/release-notes.md b/public/docs/release-notes.md
index b942aa83d..6490601c1 100644
--- a/public/docs/release-notes.md
+++ b/public/docs/release-notes.md
@@ -6,6 +6,8 @@
If you want to continue using Google Analytics or Disqus, you can re-enable them in the config.
See [the docs](https://docs.hedgedoc.org/configuration/#web-security-aspects) for details.
+### Bugfixes
+- Fix crash when trying to read the current Git commit on startup
## 1.8.2 2021-05-11