Comment rechercher cvs commentaire de l'histoire
Je suis conscient de cette commande:
cvs log -N -w<userid> -d"1 day ago"
Malheureusement, cela génère un rapport au format, avec beaucoup de retours à la ligne, tels que le chemin fichier, le fichier de version et le commentaire de texte sont tous sur des lignes séparées. Par conséquent, il est difficile de rechercher toutes les occurrences de commentaire de texte (par exemple, grep), et de corréler les matchs de fichier/version.
(À noter que la sortie du journal serait parfaitement acceptable, si seulement cvs pourrait effectuer le filtrage en mode natif.)
EDIT: Exemple de sortie. Un bloc de texte comme ceci est rapporté pour chaque fichier du dépôt:
RCS fichier: /data/cvs/dps/build.xml,v Fichier de travail: build.xml tête: 1.49 branche: verrous: la stricte liste d'accès: substitution de mots-clé: kv total des révisions: 57; révisions sélectionnées: 1 description: ---------------------------- révision de 1,48 date: 2008/07/09 17:17:32; auteur: noec; state: Exp; lignes: +2 -2 Fixe src.jar références ---------------------------- révision 1.47 date: 2008/07/03 13:13:14; auteur: noec; state: Exp; lignes: +1 -1 Fixe common-src.jar de référence. =============================================================================
OriginalL'auteur Chris Noe | 2008-09-23
Vous devez vous connecter pour publier un commentaire.
La
-w
options semble mieux fonctionner avec le-S
option. Sinon, il y a des résultats qui ne semblent pas liées à l'identifiant utilisateur. Peut-être quelqu'un peut l'expliquer.Avec qui j'ai été faire un succès raisonnable de tuyauterie à grep:
Je suis redirection de la sortie vers un fichier depuis le cvs log est bruyant et je ne suis pas sûr de savoir comment faire tranquille. Je suppose qu'une alternative est de rediriger la sortie d'erreur stderr à
/dev/null
.Évidemment, cela fonctionne mieux lorsque le texte que vous recherchez est dans la première ligne, mais c'est un début.
par la voie, cvs log -N -S -w-d"il y a 1 jour" pour les entrées plus anciennes thatn il y a 1 jour par défaut. Je pense que ce que vous voulez est-ce -d">il y a 1 jour"
Je n'ai jamais compris pourquoi les
-S
option de comportement n'était pas la valeur par défaut pour commencer... et de penser que cette option n'a été ajouté que très tard dans le jeu...Je ne suis pas sûr de savoir comment -S-w "mieux". De la documentation, -S supprime l'empêche les révisions de l'affichage, si elles ne sont pas explicitement spécifié. Ils sont deux, non relationnelles commutateurs.
OriginalL'auteur s_t_e_v_e
Vous voulez cvsps - ce qui va générer patchsets CVS de l'histoire. Ensuite, vous ne devriez avoir qu'une seule instance de votre commentaire dans le cvsps de sortie, avec la liste des fichiers proprement ci-dessous il
OriginalL'auteur
Mes premières pensées ont été pour utiliser egrep (ou grep -E, je pense) à la recherche de plusieurs modèles tels que:
mais ensuite j'ai réalisé que vous vouliez filtre de manière plus intelligente.
À cette fin, je voudrais utiliser awk (ou perl), le processus de sortie de ligne-par-ligne, la définition d'un echo de la variable lorsque vous trouvez un article d'intérêt; le pseudo-code ici:
OriginalL'auteur paxdiablo
Voici ce que j'ai fait - un simple script Java:
Et voici comment je l'ai utilisé:
OriginalL'auteur
Cette commande et à s'émerveiller de script me permettant de trouver seul le nom de fichier, la date et le commentaire de la ligne de chaque entrée du journal.
OriginalL'auteur JochenJung
Cela peut être de façon excessive, mais vous pouvez utiliser git-cvsimport pour importer l'historique CVS à un dépôt Git et de recherche à l'aide de Git outils. Vous pouvez non seulement rechercher du texte dans les messages de commit, mais vous pouvez également effectuer une recherche pour le code qui a déjà été ajouté ou supprimé à partir de fichiers de votre référentiel.
OriginalL'auteur Greg Hewgill
CVSSearch pourrait aider, mais c'est une application CGI :'(
OriginalL'auteur Mez