Parfois, ce serait bien de pouvoir dire quelque chose comme:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
pour voir les modifications apportées à une fonction spécifique dans un fichier source depuis le dernier commit, ou l'historique complet des modifications. Ma question est double:
- Existe-t-il quelque chose qui fait cela?
- Un tel outil serait-il pratique? Il faudrait faire une simple analyse du code à chaque révision afin de comparer différentes versions de la fonction; les frais généraux seraient-ils trop élevés pour être efficaces?
version-control
tools
jches
la source
la source
Réponses:
Mais plus important encore, vous devrez faire la même chose pour chaque langue que vous souhaitez prendre en charge. Un VCS qui ne vend que du code C ne va pas obtenir beaucoup de traction. Même si vous ignorez toutes les langues obscures, ce serait une entreprise énorme de prendre en charge même les 10 premières langues.
Et comme l'a souligné Robert, être capable de passer immédiatement à une méthode n'est pas un énorme gain par rapport au fait de devoir passer manuellement à la méthode dans l'outil diff.
la source
svn fait en fait quelque chose de proche de ce que vous voulez.
Vous pouvez utiliser la commande:
Le
-x -p
nom de la fonction «C» s'affiche en haut de l'ensemble de modifications. qui ressemble à ceci.Il ne filtre pas mais vous pouvez grep / search pour servir votre objectif de près.
Je suppose que ce n'est que pour «C» (ou C / C ++). Cependant, je suppose que s'il y a une demande, svn le rendrait également disponible pour d'autres langues.
Je ne souscris pas tout à fait à l'argument selon lequel VCS ne devrait PAS faire cela. Après tout, nous voulons que tous les IDE ou éditeurs (comme VIM, EMACS) effectuent une coloration syntaxique spécifique à chaque langue et en prennent en charge plusieurs simultanément. VCS étant un outil de développement, il devrait également prendre en charge de telles fonctionnalités.
Bien sûr, grâce à votre question que je l'ai découverte. Je ne l'avais jamais utilisé auparavant.
la source
Sans entrer dans les détails, ... mais vous pouvez consulter le site Semantic Designs et leur gamme de produits. Ils offrent certains outils qui sont sensibles à la langue , pour ainsi dire, faute d'un meilleur terme.
la source
Monticello peut le faire (par exemple, http://wiresong.ca/monticello/v2/docs/changes-browser.html ) mais cela est bien sûr tricher scandaleusement car cela ne fonctionne que pour Smalltalk.
la source
Pour montrer quelle révision et quel auteur ont modifié en dernier chaque ligne d'un fichier:
la source
ENVY et StORE le font tous les deux. Il est intéressant de noter que, comme avec Monicello que Logan Capaldo a mentionné ci-dessus, ceux-ci sont également destinés à Smalltalk.
la source