Stash apply requires clean index
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 10.6k
- Forks
- 2.7k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Reproduction steps
try to apply a stash when index is dirty. This is specifically prevented by https://github.com/libgit2/libgit2/blob/66137ff6ea9e516e0fa840134393d5a81d5b86e9/src/stash.c#L900 which was added in #3259
However, git allows this:
3066 $ git init
Initialized empty Git repository in /home/wmertens/testgit/.git/
3067 $ touch bar
3071 $ git commit -a -m 'hi'
[master (root-commit) b37d552] hi
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
3082 $ echo hi > foo
3084 $ git add foo
3088 $ git stash
Saved working directory and index state WIP on master: b37d552 hi
3089 $ echo boom > foo
3091 $ git add foo
3093 $ git stash apply
CONFLICT (add/add): Merge conflict in foo
Auto-merging foo
3094 $ git status
On branch master
Unmerged paths:
(use "git restore --staged <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both added: foo
3095 $ cat foo
<<<<<<< Updated upstream
boom
=======
hi
>>>>>>> Stashed changes
IMHO libgit should behave like git, and the clean check should not be done.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en src/stash.c, alrededor de la comprobación de un índice limpio en la línea citada, y compara después el comportamiento con la reproducción de Git proporcionada. Elimina la restricción solo si el flujo existente de stash-apply puede manejar el índice sucio; se considera terminado cuando aplicar el stash permite el comportamiento de conflicto mostrado por Git.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c, git
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 50/100