Commit 42f664d4830dfc90d931d6815d2a2bcbacb3144f

Curso completado

Aún quedan cosas pendientes, las dejo por aquí. La mayoría vienen del problema
que representa el entorno de Joaquín y su Macbook.
TODO
(48 / 7)
  
55*** ligeros
66*** completos (firma GPG, mensaje, etc.)
77** DONE git rm, svn mv, copias, movimientos
8** TODO "git checkout" con cambios pendientes
8** DONE "git checkout" con cambios pendientes
99 Si es que hay que RTFM, está claro. Citando la documentación de la
1010 opción -m de la página de man de git-checkout:
1111
1717 Es decir, el fallo lo da cuando tenemos modificaciones locales _y_
1818 la copia de la revisión destino difiere de la de la revisión
1919 actual.
20** TODO Los reflog se usan en git-prune y git-gc
20** DONE Los reflog se usan en git-prune y git-gc
2121 No son exactamente 2 semanas: las entradas que quedan sin
2222 referenciar duran 30 días por defecto, y el resto de entradas duran
2323 90.
24** TODO Los packs también llevan mantenimiento
24** DONE Los packs también llevan mantenimiento
2525 Los pack guardan objetos sin referenciar y puede que vayan habiendo
2626 varios packs pequeños, pero git-gc se ocupa de irlos reuniendo y
2727 limpiando periódicamente.
28** DONE git init --shared=group
29** DONE permisos: qué guarda y qué no guarda Git
30 Está claro que el dueño no, ni la fecha/hora. Git se fija
31 únicamente en el bit de ejecutable.*
32** DONE Mejor explicación de la salida de 'git describe'
33 La salida es X-Y-Z, donde X es el nombre del tag, Y el número de
34 revisiones por delante que está de ese tag, y Z el inicio de su
35 SHA-1.
36** TODO No se aprovecha la clave SSH de Joaquín
37 Raro: he repetido el proceso desde mi servidor Debian y no he
38 tenido problemas en absoluto. El problema parece ser algo
39 específico de MacOS X. Sospecho que habrá que hacerlo desde alguna
40 interfaz gráfica, como en el caso de los certificados SSL.
41** DONE En la URL no hay por qué poner la clave
42 Se puede usar el fichero ~/.netrc, gracias al uso de Curl, con
43 cuidado de darle 600 de permisos, para evitar que otros usuarios
44 lean nuestras contraseñas.
45** TODO Problemas con los cerrojos WebDAV:
46 Puede ser con bastante probabilidad un bug arreglado en Git 1.5.4,
47 conocido como "http-push: fix webdav lock leak", e identificado con
48 el SHA-1 9116de5957423d553fce5857a835284a0527d037 en el Gitweb de
49 Git. Mejor cambiar a 1.5.6.5 (por lo que más queráis).
2850
51 La documentación de Apache no dice explícitamente que pueda haber
52 un problema con los cerrojos por reutilizar el mismo usuario entre
53 varios clientes, pero por si acaso mejor usamos usuarios
54 distintos. He recreado el repositorio. Los cerrojos que no se abren
55 se van automáticamente por defecto a los 10 minutos.
2956
30** TODO git init --shared=group
31** TODO permisos: qué guarda y qué no guarda Git
32 Está claro que el dueño no, ni la fecha/hora. Git se fija
33 únicamente en el bit de ejecutable.
57 También sería bueno usar una versión reciente de Git (v1.5.6.5,
58 comprobar con 'git version') y de Curl (7.18+, comprobar con 'curl
59 --version'). La documentación de Git dice que con 7.16+ vale, pero
60 el Macbook Air y Curl 7.16.3 de Joaquín originan problemas.
61
62 La ayuda de "git http-push" dice explícitamente que:
63
64 "NOTE: This command is temporarily disabled if your libcurl is older
65 than 7.16, as the combination has been reported not to work and
66 sometimes corrupts repository."
67
68 git-http-push es el que se ocupa de hacer el trabajo de
69 git-update-server-info cuando hacemos un push sobre HTTP (mirad. El
70 segundo está para cuando hacemos un push mediante SSH, y entonces
71 sí podemos ejecutar los hooks.
72
73
74