abhinav / abhinav/git-spice

'gs repo sync' left repo in broken state with concurrent write

Offen
#659 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Go
Sterne
762
Forks
72
Ø Merge
18 Std. 24 Min.
Gemergte PRs (30 T.)
28

Beschreibung

A user reported the following:

```
$ gs repo sync
INF master: pulled 19 new commit(s)
INF feat1: #330613 was merged
FTL gs: delete merged branches: rebase: exit status 1
stderr:
error: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': Unable to create '[..]/.git/HEAD.lock': File exists.

Another git process [..]
error: could not detach HEAD
```

It looks like the rebase operation performed as part of deleting merged branches ran afoul of another process messing with the Git branch.

After the error, the user was left with a working tree at the state of the master branch, but HEAD pointing to the branch we failed to delete.

I don't think we can guard against HEAD.lock/index.lock conflicts, but perhaps there should be more recovery here.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.