libgit2 / libgit2/libgit2sharp

Add In-Memory Repository Support

Abierto
#900 17 comentarios 20 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

FeatReq
Lenguaje dominante
C#
Estrellas
3.5k
Forks
925
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I am building an application that needs to interact with git (clone repo, create repo, push, etc.) but does not have direct access to a disk. I would like to be able to work with a git repo entirely in-memory.

As an aside, I would also like to be able to work with a git repository that is written out to a non-file datastore such as a database.

In general, it would be nice if the logic in Repository was abstracted out away from the disk. It appears that IRepository is not tightly coupled with disk (assuming all of the various methods that take a path are referring to a relative path). However, there appears to be quite a bit of git specific logic bound up in the Repository implementation which makes it difficult to a novice contributor to implement a custom datastore engine (e.g., in-memory, database, etc.).

Researching this topic very briefly, it appears that the underlying libgit2 supports non-filesystem repositories, so I don't believe this is a technical limitation with libgit2.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza revisando el contrato IRepository y la implementación Repository; después, verifica qué compatibilidad ofrece libgit2 para repositorios que no usan el sistema de archivos. Define la abstracción necesaria para almacenes de datos en memoria y otros almacenes de datos que no sean de archivos, demostrando la finalización mediante el funcionamiento de operaciones de repositorio como clone, create y push sin acceso directo al disco.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, git
Área
tooling
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.