Me gustaría poder diferenciar archivos/directorios directamente desde el repositorio Linux Kernel GIT sin tener que descargar el código fuente completo.
Específicamente, estoy interesado en dos posibles soluciones:
- La capacidad de hacer diferencias a través de un navegador web (Firefox)
- Una utilidad GUI para Ubuntu que puede hacer diferencias remotas.
- Un tutorial sobre cómo configurar la opción #2
Editar
Como ejemplo de lo que estoy buscando, solía usar CrossVC para las tareas anteriores en un repositorio de CVS.
Gitweb en kernel.org permite ver la diferencia entre confirmaciones arbitrarias, consulte, por ejemplo, el siguiente enlace para ver la diferencia entre v2.6.32-rc6 y v2.6.32-rc7:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;hp=refs/tags/v2.6.32-rc6;h=refs/tags/v2 .6.32-rc7
(utilizar parche enlace para obtener un parche simple que puede aplicar), y entre versiones arbitrarias de archivo / entre versiones arbitrarias de archivos arbitrarios, por ejemplo: diferencia a actual enlace en historia vista.
Desafortunadamente, ni la versión oficial de gitweb (distribuida junto con el propio Git), ni la bifurcación utilizada por kernel.org generan enlaces entre confirmaciones arbitrarias, por lo que tendrías que crear manualmente (crear a mano) las URL para dárselas a gitweb. En el caso de commitdiff
ver (acción) los iparameters que necesita son 'h'
(hachís) y 'hp'
(padre hash); En el caso de blobdiff
ver que son 'hb
‘ (base hash) y 'hpb'
(base padre hash), y también 'f'
(nombre de archivo) y 'fp
‘ (archivo principal).
Plantillas
Tenga en cuenta que core gitweb (pero no la bifurcación utilizada por kernel.org, actualmente) puede usar la versión path_info, por ejemplo:
http://repo.or.cz/w/git.git/blobdiff/A..B:/<filename>
como encontrarlo
-
Encuentre en una interfaz web una confirmación que sea una confirmación de combinación, por ejemplo
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1c5aefb5b12a90e29866c960a57c1f8f75def617
-
Encuentre un enlace para diferenciar entre un compromiso y un segundo padre, por ejemplo
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/?id=1c5aefb5b12a90e29866c960a57c1f8f75def617&id2=54a217887a7b658e2650c3feff22756ab80c7339
-
Reemplace SHA-1 de confirmaciones comparadas con nombres de revisión o identificadores de revisión que desee comparar, por ejemplo, para generar diferencias entre v3.15-rc8 y v3.15-rc7
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/?id=v3.15-rc8&id2=v3.15-rc7
o para generar parche (rawdiff)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/rawdiff/?id=v3.15-rc8&id2=v3.15-rc7
El sistema que crea la diferencia (ya sea su servidor web o su sistema local) debe tener una copia completa (clon) del repositorio git.
Entonces no puedes hacer “diferencias remotas”.
Entonces, si quieres evitar hacer una git clone
de todo el núcleo, ¿por qué no apuntar su navegador web a http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary?
Git es repartido sistema de control de versiones, por lo que la solución #2 no es posible. Puedes hacer un clon superficial (
git clone --depth=0 <URL>
) para obtener solo el historial actual. Parte de lo que desea es posible a través de gitweb (git.kernel.org).– Jakub Narębski
15 de noviembre de 2009 a las 14:15