2008-09-19 8 views
3

En validant SVN, je peux ajouter un message de validation de niveau supérieur pour détailler ce qui est en train d'être validé, mais j'aimerais idéalement pouvoir commenter les fichiers individuels et ce qui a changé dans leur. J'ai vu quelque chose de similaire dans l'emploi précédent, mais cela utilisait CVS (et je ne me souviens pas si cela a été réalisé avec un script de brassage à domicile pour produire le fichier squelette)Existe-t-il un moyen de produire un changelog en SVN?

J'ai regardé les changelists mais encore une fois je ne pense pas (bien que je sois prêt à me tromper) que cela donne le genre de granularité décrite ci-dessous.

Idéalement, je cherche quelque chose le long des lignes de:

Foo.vb

  • Ajout d'une nouvelle barre fonction

Bar.vb

  • Suppression de la fonction foo
  • fonctionnalité ajoutée à l'xyz faire fonction abc +/- modifiée pour se connecter erreur

Répondre

2

Je voudrais juste faire dans l'individu le message de validation. TortoiseSVN a l'auto-complétion du nom de fichier, ce qui contribue grandement à cela. Svn st Une autre chose que vous pouvez faire est de svn st avant de valider et de copier/coller les noms de fichiers dans votre message de validation.

Oh, et assurez-vous de fortement remettre en question la valeur de cela. Je sais que certains projets OSS (linux?) Requièrent ce genre de fidélité, mais pour de nombreux projets, ce n'est que du bruit. Diff peut vous en dire beaucoup plus que cela, et plus précisément.

Une autre chose que vous pouvez envisager est d'utiliser Git. Git vous permet de commettre localement, en plus petites étapes. Vous poussez ensuite sur le serveur maître tous vos commits individuellement ou écrasés dans un seul commit w/tous les messages de validation dans un seul message. C'était une explication simplifiée, mais il vaut probablement la peine de vérifier.

+0

'c'est juste du bruit' ... tout à fait d'accord. Une vue d'ensemble générale est suffisante pour un journal de validation. Pourquoi perdre du temps à taper les modifications fichier par fichier? Les gens vont juste arrêter de lire vos messages, car ils pourraient tout trouver en utilisant svn diff s'ils s'en soucient assez. –

+0

Je voudrais seulement ajouter que je pense qu'il est préférable de casser vos commits en "morceaux" logiques. Validez quelques fichiers modifiés associés, un ensemble à la fois, même si vous avez 30 fichiers à archiver. Sinon, quelque chose d'important pour un utilisateur peut être évincé par le bruit. –

4

Vous pouvez simplement valider chaque fois que vous avez terminé une tâche particulière. Cela devrait conduire à de meilleurs commentaires de toute façon. Un commentaire indiquant "Mise en œuvre de la vérification par courriel" sur les trois fichiers nécessaires me dit beaucoup plus que "fonction ajoutée verify_email". Je peux voir ce dernier moi-même dans le diff.

0

Ce type de résultat peut être obtenu s'il existe des règles concernant la manière dont les commentaires sont écrits dans chacun des fichiers validés. Ces commentaires peuvent ensuite être extraits par un déclencheur svn.

2

L'une des différences essentielles entre SVN et CVS est que les modifications sont validées atomiquement. Dans CVS, chaque fichier a sa propre version, mais dans SVN, la version est pour l'ensemble du projet et inclut tous les fichiers archivés ensemble.

Voici quatre idées pour une solution:

  1. Vérifiez dans chacun de vos programmes séparément, avec son propre message de journal.Cela peut signifier que si, par exemple, vous archivez cinq fichiers, vous allez "utiliser" cinq versions, dont quatre peuvent entraîner une version cassée. Faites votre développement sur un chemin séparé (c'est-à-dire votre propre branche privée), faites comme ci-dessus, puis à des moments stratégiques, fusionnez votre branche au tronc.
  2. Archivez tout ensemble et conservez les enregistrements individuels sous forme de commentaires dans l'en-tête du programme. Cela peut signifier (un peu) de travail supplémentaire, mais vous devrez quand même composer les messages de connexion individuels.
  3. Effectuez une seule vérification pour tous les fichiers, mais avec un bon message de journal complet détaillant chaque pièce pour chaque fichier.
2

J'ai écrit un projet pour faire ce genre de chose appelée MOAP

L'une de ses fonctions est de générer une entrée ChangeLog de votre diff local (bazar en soutien, cvs, svn, git et darcs). Vous faites cela en exécutant 'moap changelog prepare' ou 'moap cl prep' Cette entrée peut inclure des fonctions modifiées aussi bien si vous activez l'option.

Vous allez ensuite modifier cette entrée en décrivant vos modifications. Vous pouvez supprimer les fichiers que vous ne voulez pas commettre dans le cadre de votre prochaine validation. Ensuite, vous pouvez exécuter 'moap changelog commit' pour valider les modifications décrites dans l'entrée ChangeLog. Il ne commettra que les fichiers listés ici et laissera toutes vos autres modifications locales.

Espérons que ça aide!

Questions connexes