Hacer que git daemon sirva el repositorio que creé

Hacer que git daemon sirva el repositorio que creé

He estado devanándome los sesos con esto y llegué a una posible conclusión sin solución. Primero, mi dilema.

Tengo un proyecto donde puedo crear un repositorio mediante programación. Puedo editar la descripción del repositorio, configurar la rama predeterminada, etc. Esto esta bien.

También estoy usando git daemonpara servir la carpeta donde se guardan todos los repositorios generados. Aquí es donde entra en juego el problema.

Puedo clonar el repositorio, pero el .gitcontenido del repositorio clonado no coincide con el repositorio original.

Lo único que puedo pensar es que cuando estoycreandoEn estos repositorios estoy usando el proceso git de mi sistema, pero al clonar estoy usando el git daemonproceso ... Ni siquiera estoy seguro de que tenga sentido y mis horas de búsqueda no han arrojado nada.

Como referencia, aquí está el comando que ejecuto para activar git daemon:

git daemon --reuseaddr --port=9999 --base-path=/Users/me/repos/ --export-all --verbose --enable=receive-pack --informative-errors --detach

A continuación se muestra un ejemplo de un comando de clonación:

git clone git://localhost:9999/me/test18.git

Y aquí están los comandos que ejecuto para crear los repositorios:

git init
git remote add origin git://localhost:9999/me/repo.git
git symbolic-ref HEAD refs/heads/magic
# more stuff

Estas cosas funcionan, solo necesito git daemonentregar mis repositorios tal como están.


Aquí hay un ejemplo del contenido del .git/configrepositorio que creo:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "coolerbranch"]
    remote = origin
    merge = refs/heads/coolerbranch

Aquí está el mismo repositorio clonado:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

Como puedes ver, la [branch ...]sección no coincide.


Por el contrario, si hay otro git daemonpor ahí que no he encontrado, me encantaría saberlo. Github había estado trabajando por su cuenta hace varios años pero lo abandonó.

Además, originalmente publiqué esta pregunta en SO, pero después de buscar más en otros sitios de SE, me di cuenta de que SF tiene git-daemonpreguntas más parecidas.


@Zoredache:

Clonar un repositorio no copia la configuración. La configuración es principalmente local para la computadora, el usuario o el directorio.

Sin este conocimiento, supuse que habría una manera de hacer que git sincronice la configuración inicial al clonar. Los valores predeterminados de Git no son anulables por un servidor, sólo por el usuario.

Quizás git permita esta opción algún día, lo más probable es que no. Ah bueno.

Respuesta1

No creo que el .git clonado deba coincidir con el contenido del .git del servidor. Para configurar un servidor, le recomendaría que siga las instrucciones del libro.https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server.

información relacionada