Symlinks: a render writes through a link, a check-then-use race, and a bad link blocking checkout
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start with crates/newgit-core/src/manager.rs around line 3109 and read the render write path, then compare it with the symlink refusal in capture and the behavior of tracker checkout/pull. The issue identifies four open safety and behavior decisions, including an O_NOFOLLOW approach for tracked-file reads. Done means resolving these cases and defining the expected behavior for checkout and symlinked directories.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
#281 (for #258) stops capture from following symlinks. Left open, most important first:
- A render writes through a symlink. If a
[[render]] pathis a link, rendering writes into the link's target, which can be outside the workspace (crates/newgit-core/src/manager.rs, around the render write, ~line 3109). This is the write side of #258: anything that can put a link at a rendered path can make newgit rewrite an arbitrary file the user can write, with ports and exports substituted in. The render should refuse a link at its path, as capture now does, naming the path and target. - A check-then-use race remains. A regular file swapped for a link between the check and
git hash-objectwould still be followed. Closing it means reading tracked files in-process withO_NOFOLLOWinstead of handing paths to git. - A bad link now blocks
tracker checkout/pull. The safety capture before them refuses a link that leaves the workspace, so they fail until the link is removed by hand. The error says so. Should checkout be able to replace the link itself (the issue noted it used to), given the user asked for the lane's content? - A tracked path under a symlinked directory is always refused, even when the directory points inside the workspace, matching git's "beyond a symbolic link". Stricter than strictly needed; relax for the inside case?
- Lenguaje dominante
- Rust
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 7 h 15 min
- PR fusionados (30 d)
- 87
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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.
Más de Spheroman/newgit
-
Port allocation order within a resource is unspecifiedPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Spheroman/newgit#59 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Spheroman/newgit#289 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
Todos los issues de Spheroman/newgit
Issues similares
-
area:docs documentation good first issue priority:low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
rtk-ai/rtk#4900 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement performance rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
comp-view potential bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
ClickHouse/ClickHouse#128410 ·
Los mantenedores suelen responder en 1 día
-
Save As onto the project's own .snxprj overwrites it with a schematic and the project can no longer openPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea: app data-loss priority: high type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
lan_bot: 13 of 15 tests fail on main (minecraft:dialog entries carry data with the known pack)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoskip-release
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
horizon-rust/horizon#5505 ·
Los mantenedores suelen responder en 1 día