Existe-t-il des logiciels de contrôle de version (VCS) qui ont implémenté la possibilité de voir l'historique des modifications d'une section ?
Par exemple, je suppose qu'il existe un dépôt VCS nommé foo. Et il contient un historique des créations de fichiers et des modifications effectuées.
Liste des fichiers du dépôt foo:
main.c
Historique:
998ecf8 Actuel
d41d8cd Changer le message
98f00b2 Passage au style K&R
04e9800 Commit initial
998ecf8 Actuel: main.c
(omis ci-dessous):
#include
int main() {
puts("Bonjour, monde !");
}
d41d8cd Changer le message:
#include
int main()
{
puts("Salut, monde !");
}
98f00b2 Passage au style K&R:
#include
int main()
{
puts("Bonjour, monde !");
}
04e9800 Commit initial:
#include
int main() {
puts("Bonjour, monde !");
}
Maintenant, je vais obtenir tout l'historique des modifications d'une section Salut, monde
, dans main.c
.
$ vcs find 'Salut, monde'
"Salut, monde" a d'abord été ajouté à 98f00b2->d41d8cd:4.
#include
int main()
{
- puts("Bonjour, monde !");
+ puts("Salut, monde !");
}
"Salut, monde" a été supprimé à d41d8cd:4->998ecf8.
#include
-int main()
-{
+int main() {
- puts("Salut, monde !");
+ puts("Bonjour, monde!");
}
Est-il possible de le faire en cache ? Si oui, quel VCS prend en charge cette fonctionnalité ? Sinon, quels algorithmes doivent être implémentés pour cela ?