| 1 |
* Dudas a resolver: |
| 2 |
* Aspectos a comentar: |
| 3 |
** DONE git rebase --interactive |
| 4 |
** DONE tipos de tag |
| 5 |
*** ligeros |
| 6 |
*** completos (firma GPG, mensaje, etc.) |
| 7 |
** DONE git rm, svn mv, copias, movimientos |
| 8 |
** DONE "git checkout" con cambios pendientes |
| 9 |
Si es que hay que RTFM, está claro. Citando la documentación de la |
| 10 |
opción -m de la página de man de git-checkout: |
| 11 |
|
| 12 |
"If you have local modifications to one or more files that are |
| 13 |
different between the current branch and the branch to which you |
| 14 |
are switching, the command refuses to switch branches in order to |
| 15 |
preserve your modifications in context." |
| 16 |
|
| 17 |
Es decir, el fallo lo da cuando tenemos modificaciones locales _y_ |
| 18 |
la copia de la revisión destino difiere de la de la revisión |
| 19 |
actual. |
| 20 |
** DONE Los reflog se usan en git-prune y git-gc |
| 21 |
No son exactamente 2 semanas: las entradas que quedan sin |
| 22 |
referenciar duran 30 días por defecto, y el resto de entradas duran |
| 23 |
90. |
| 24 |
** DONE Los packs también llevan mantenimiento |
| 25 |
Los pack guardan objetos sin referenciar y puede que vayan habiendo |
| 26 |
varios packs pequeños, pero git-gc se ocupa de irlos reuniendo y |
| 27 |
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). |
| 50 |
|
| 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. |
| 56 |
|
| 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 |
|