EDITAR: Resumen: Git no permite fechas anteriores al 03/03/1973 09:46:40 (+ época 100000000s) dada en su "formato de fecha interno" (segundos desde la época). Esto es para permitir "20110224" como forma abreviada de "2011-02-24". - Esto no es ningún error: No realmente, pero tampoco está documentado. - Solución temporal: No confíe en la fecha interna de git cuando no puede. - Gracias a : Hobbs
Hola a todos,
tengo algunos problemas con git filter-branch que he seguido la pista a git commit-árbol. Considere este script:
#!/bin/bash
# please run these commands in an empty directory
# (should not destroy an existing repo, though. I think it would only
# a few dangling objects)
set -e -o pipefail
git init
tree=$(git write-tree)
commit=$(echo "my first commit -- the tree is empty" |
env GIT_AUTHOR_DATE="0 +0000" git commit-tree $tree)
echo "This is commit $commit:"
git cat-file commit $commit
Tenga en cuenta que los env GIT_AUTHOR_DATE="0 +0000"
determina la fecha utilizando el "formato interno Git" - ver página del manual de git-commit-árbol para los detalles - a 1970-01-01.
Pero la salida de este script (cometer el crudo) es
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author Jane Doe <jane> 1298477214 +0100
committer Jane Doe <jane> 1298477214 +0100
my first commit -- the tree is empty
Ahora qué está haciendo caso omiso de git $ GIT_AUTHOR_DATE? Si eso es significativo, mi git --version
da git version 1.7.1
.
Excelente captura! – Arrowmaster
Guau, ojalá pudiera votar esto varias veces. ¿Qué demonios te hizo pensar en verificar esto? –
@Adrian No vi nada en los documentos, y ya había revisado la fuente de git ... así que comencé a grepping. A veces RTFS llega al corazón del problema más rápido que cualquier otra cosa :) – hobbs