AGWA / AGWA/git-crypt

git-crypt unlock fails

Abierto
#300 2 comentarios 2 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
9.9k
Forks
544
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### Environment

mac, OS 14.x, git-crypt 0

### Background

Somehow the colleague generated the key to me, but when I try to unlock it started show me next errors:
```
git-crypt: error: encrypted file has been tampered with!
error: external filter "/home/stavros/bin/git-crypt" smudge failed 1
error: external filter "/home/stavros/bin/git-crypt" smudge failed
fatal: my-path/properties.yaml: smudge filter git-crypt failed
```

### The issue itself

When I had the error above the repository became dirty (had some changes) and if I update the encrypted key (second time encrypted with mt gpg) the unlock did not work for me and said:
```
Error: Working directory not clean.
Please commit your changes or 'git stash' them before running 'git-crypt unlock'.
```
But in the same time I could not make `git stash` or `git reset --hard` because I saw this:
```
git-crypt: error: encrypted file has been tampered with!
error: external filter '"git-crypt" smudge' failed 1
error: external filter '"git-crypt" smudge' failed
fatal: my-path/properties.yaml: smudge filter git-crypt failed
```
(In fact I realized that the key was broken somehow, so other colleague generated the key for me - this time all work on newly cloned the repo)

### Known way to fix

Thus, I had only way to delete repository and clone it once again. Then the unlock worked even if I update the encrypted (by my gpg) key manually with valid one (secondly encrypted).

### Expected behavior

I believe that `git reset --hard` should work in any case - otherwise it seems like a stoppage issue.

### How to reproduce

This is not real my case, but I reproduced similar issue, so it could help to reproduce and fix this:

1. clone a repo with valid encrypted key (by gpg)
2. make `git-crypt init` (yeah, it is not correct but it helps to reproduce similar behavior)
3. run `git-crypt unlock` - done!
4. now you have dirty working directory and cannot do git reset --hard as can not git-crypt unlock and so on

There is theory (I did not verify that), how to reproduce it once again... Probably 1st time there was additional `git-crypt init` run before adding new gpg user. But I guess this reproducing will also work as well.

### Summary

the biggest stoppage in that case that `git reset --hard` does not work, but git-crypt we use as tool for git and it seems very strange that git-crypt corrupt whole git repo. Or there is other workaround ? (I looked at this [issue-59](https://github.com/AGWA/git-crypt/issues/59) but it does not help)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.