A veces sería bueno poder decir algo como:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
para ver los cambios realizados en una función específica dentro de un archivo fuente desde la última confirmación o el historial completo de cambios. Mi pregunta es doble:
- ¿Existe algo que haga esto?
- ¿Sería una herramienta práctica? Tendría que hacer un análisis simple del código en cada revisión para comparar diferentes versiones de la función; ¿la sobrecarga sería demasiado para que sea eficiente?
version-control
tools
jches
fuente
fuente
Respuestas:
Pero, lo que es más importante, deberá hacer lo mismo para cada idioma que desee admitir. Un VCS cuyo punto de venta solo funciona en el código C no va a tener mucha tracción. Incluso si ignora todos los idiomas oscuros, sería una tarea masiva admitir incluso los 10 idiomas principales.
Y como Robert señaló, ser capaz de saltar inmediatamente a un método no es una gran ganancia sobre tener que saltar manualmente al método dentro de la herramienta diff.
fuente
svn en realidad hace algo parecido a lo que quieres.
Puedes usar el comando:
El
-x -p
proporciona nombre de función 'C' en la parte superior del conjunto de cambio. que se parece a estoNo se filtra pero puede grep / search para cumplir con su propósito de cerca.
Supongo que esto es solo para 'C' (o C / C ++). Sin embargo, supongo que si hay una demanda, svn también lo haría disponible para otros idiomas.
No me suscribo al argumento de que VCS NO debería hacer eso. Después de todo, queremos que todos los IDE o editores (como VIM, EMACS) realicen el resaltado de sintaxis que es específico de cada idioma y admite muchos simultáneamente. Por lo tanto, VCS, como herramienta de desarrollo, también debería admitir dicha funcionalidad.
Por supuesto, gracias a tu pregunta que lo descubrí. Nunca lo había usado antes.
fuente
Sin entrar en detalles, ... pero puede visitar el sitio de Semantic Designs y su gama de productos. Ofrecen algunas herramientas que son sensibles al lenguaje , por decirlo así, a falta de un término mejor.
fuente
Monticello puede hacer esto (por ejemplo, http://wiresong.ca/monticello/v2/docs/changes-browser.html ) pero, por supuesto, esto es una trampa escandalosa porque solo funciona para Smalltalk.
fuente
Para mostrar qué revisión y autor modificaron por última vez cada línea de un archivo:
fuente
ENVY y STORE hacen eso. Es interesante que, como con Monicello que Logan Capaldo mencionó anteriormente, estos también son para Smalltalk.
fuente