2010-05-18 16 views
10

Me gustaría poder aprovechar los beneficios de GIT (y sus flujos de trabajo), pero sin el costo del acceso al disco, simplemente me gustaría aprovechar las capacidades de control de revisión distribuidas de GIT para producir algo así como un híbrido de memcached y GIT. (preferiblemente en .NET)¿Alguien ha producido un repositorio de GIT en memoria?

¿Hay una bestia por ahí?

+6

¿Serían los discos RAM una opción? –

+0

Hay una implementación de git en C#, llamada 'git #', pero está en las primeras etapas de desarrollo. –

+0

Gracias Jakub. Enlace es http://www.eqqon.com/index.php/GitSharp –

Respuesta

0

No creo que esto se pueda hacer sobre la base de que los compiladores y los recursos utilizados por ellos no son de código abierto/compartidos por Microsoft.

Aunque técnicamente no hay nada que te impida usar C# como lenguaje de scripting en tus aplicaciones y construir con tu propio compilador ... pero ¿por qué lo harías?

Supongo que la idea es que Microsoft se encargue de eso.

Habiendo dicho eso, tal vez si puede averiguar cuáles son las partes y programáticamente llamarlas, debería poder tomar una secuencia de código procesado JIT desde allí, puede colocarlo donde desee (en teoría, por supuesto), pero eso significaría hacer llamadas inseguras a ensamblajes indocumentados que Microsoft probablemente se haya obsesionado solo para hacer la vida más fácil.

¿Alguien ha visto alguna fuente para los compiladores reales en .Net? No puedo decir que tengo ...

Sin embargo, serían algunos trucos interesantes.

Sin embargo ....

En las clases de reflexión que estoy seguro de que puede llamar "Emitir" en alguna parte que se pone el marco para escribir cosas como el código para las definiciones de declaraciones/tipo, tal vez hay algo en esos espacios de nombres que toma la salida de Emit y lo rellena en el proceso de compilación ...

¡Qué concepto tan genial!

+0

Estoy usando C# /. NET para mi aplicación, no quiero convertir GIT a .NET. Quiero que quiera es el conjunto de características de GIT, ya que creo que es una buena manera _generalmente_ de administrar los datos, sin la dependencia necesaria de GNU/Linux y la persistencia real del archivo. –

1

¿Por qué no solo usa la versión de Windows de git y la llama usando Process.Start()?

En cuanto al almacenamiento, podría tener el repositorio en un disco RAM (como Andrew sugirió anteriormente), pero no estoy seguro de cuán grande sería la ganancia de rendimiento. Creo que tenerlo en el disco duro está perfectamente bien, especialmente si se considera que si lo usas a menudo, se almacenará en la memoria caché de todos modos.

Cuestiones relacionadas