¿Por qué "Git Clone" empaca la base de datos de objetos cuando se pasa un archivo local: /// URL?

StackOverflow https://stackoverflow.com/questions/8897556

Pregunta

Lo siguiente describe los comandos bash que se ejecutarán para reproducir el comportamiento observado. Aunque esos han sido atravesados msysgit, Sospecho que el resultado debería ser similar en un entorno *nix.

Configurar el repositorio de origen

$ mkdir main && cd main
$ git init .
Initialized empty Git repository in d:/temp/main/.git/
$ echo a > a.txt
$ git add . && git commit -m "Initial commit"
[master (root-commit) e1ec355] Initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

Clon el repositorio de origen usando un archivo local: /// URL

$ cd ..
$ mkdir clonefromfileurl && cd clonefromfileurl
$ git clone file:///d:/temp/main
Cloning into 'main'...
remote: Counting objects: 3, done.
Receiving objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)

Clonar el repositorio de origen utilizando una ruta de archivo local

$ cd ..
$ mkdir clonefrompath && cd clonefrompath
$ git clone /d:/temp/main
Cloning into 'main'...
done.

De acuerdo a Wikipedia, una URL de archivo con un triple barra implica un recurso local.

Sin embargo, al clonar a través de un local file:/// URL, la base de datos de objetos se empaqueta antes de ser transmitida (¿copiado?). Este no es el caso cuando la ubicación del repositorio de origen se expresa como una ruta local.

¿Por qué GIT se comporta de diferentes maneras considerando que tanto la fuente como el repositorio de destino están alojados en localhost?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top