
Estoy intentando convertir un repositorio de Perforce (p4) a git (preferiblemente a Helix4Git, una implementación de servidor git de perforce).
Reduzco mi problema a un caso de uso simple para encontrar la solución a mi problema mayor.
En P4 tengo un archivo//depósito/foo.txtque son 10 MB. Lo "cloné" usando el comando de combinación de P4, por lo que tengo el mismo archivo dos veces en mi repositorio, llamado//depósito/bar.txt.
//depot
.. foo.txt (10MB) [internal-id==> 4509b9a8.txt]
.. bar.txt (10MB, clone of foo.txt) [internal-id==> 4509b9a8.txt]
El servidor P4 almacena el archivo.una vezmediante el uso de dos enlaces internamente para reducir el espacio utilizado en el disco, de modo que solo se utilicen 10 MB. Sin embargo, en un disco local tendría dos copias físicas (10+10=20 MB). Ahora aquí está el problema:
yo suelogit-p4para convertir mi repositorio P4 a git. Primero lo clono en mi computadora local, luego configuro un git-remote y envío todo para finalmente tenerlo en mi servidor git.
Como mencioné anteriormente, tengo 20 MB en mi disco local y cuando lo envío a mi servidor git, él también usa 20 MB.
1) Si clono un archivo en git, ¿también se clona físicamente en el servidor?
2) ¿Existe alguna posibilidad de que git-p4 o el servidor git detecte este "clon" (que sea el mismo archivo) y también utilice enlaces internamente? Ya sea el propio servidor git o mediante el uso de una función del sistema de archivos (enlace suave o enlace físico, etc.).
Pregunta adicional) ¿Sería de alguna ayuda macOS APFS para el servidor git aquí?
¡Muchas gracias!
Respuesta1
Cuando moviste los archivos clonados a Git, se almacenaránpor separado. Git solo almacena el contenido del archivo y los permisos del archivo. No se realiza un seguimiento de los metadatos y el ID del inodo.
Su mejor opción es agregar el clon gitignore
o.git/info/exclude
Referencia:ingrese la descripción del enlace aquí