6
votes

Subversion: Comment éviter d'oublier de vérifier les choses?

Travailler sur trois ordinateurs différents à deux endroits différents, sur des projets situés à Subversion, j'ai une fois de temps en temps d'oublier de vérifier dans un endroit, de sorte que je ne puisse pas travailler sur le dernier code, quand je veux continuer à travailler. sur le projet à un autre endroit.

Je suis sûr que d'autres ont eu des problèmes similaires.

Quelles sont certaines choses que je peux faire pour éviter ce problème? Des outils qui aident? Notifications que je peux mettre en place?

J'utilise Visual Studio 2008 et TortoiseSVN sur Windows 7 pcs.


2 commentaires

J'ai appris qu'avoir un cahier suffisamment puissant pour faire de la programmation sur elle amusante fait de tous ces problèmes obsolètes. Je ne suis pas sûr d'accepter une offre d'emploi où cela ne ferait pas partie de la négociation. :)


Ma principale plate-forme de développement comporte 3 moniteurs et augmente ma productivité énorme. Après cela, selon un ordinateur portable pour le développement, semble juste être de retour dans une Kia après avoir conduit une Ferrari.


10 Réponses :


5
votes

Je n'ai pas de baguette magique à offrir, juste le mantra "s'engager tôt, commettre souvent"; En plus d'éviter de tels accidents, ou du moins minimiser leur impact lorsqu'ils se produisent, cela offre également d'autres avantages (annulation finie-grainé si une modification a besoin de réversion, par exemple). Qui peut nécessiter une branche si le tronc est considéré comme contenant toujours le "code d'or" afin que vous ne vouliez pas commettre des changements à moitié cuites (et que SVN ne fait pas vraiment de ramification et de fusionner indolore, soupir) - en effet cela (parmi Les autres avantages de VCS distribués) sont une raison pour laquelle j'ai commencé à passer de Subversion à Mercurial (AKA HG) sur des projets open-source et / ou personnels où je reçois appel aux coups de feu! -)


5 commentaires

Entrer dans une habitude. Vous devriez vous engager plusieurs fois par jour, pas seulement une fois à la fin de la journée. Une fois que vous commencez à faire cela, il ne sera pas difficile de vous rappeler de le faire à la fin de la journée.


Même frapper commettre à chaque compilation ne garantit pas que vous n'avez pas oublié d'ajouter du fichier de ressources ni de l'icône au fond d'un subdir. C'est la caisse qui teste le repostialy.


@MGB: C'est là qu'un serveur d'intégration continue peut aider. Déclenché sur n'importe quel contrôle, une construction réussie signifie que vous n'avez rien oublié.


@Sam, oui, c'est le gist de ce que je dis. @MGB, pas sûr à quel point il est facile d'intégrer l'idée dans l'environnement de l'OP, mais personnellement, j'enveloppe svn dans un script simple qui fait des chèques supplémentaires, alors s'il y en a des "?" Dans svn st, cela peut me demander à SVD ajoutant ces fichiers dans ou en ajoutant des modèles à SVN: Ignorer - pas aussi puissant que la suggestion de @ Greg pour intégration continue, mais plus facile à configurer (au moins dans un environnement basé sur la commande - Dunno 'Bout Tortue ;-).


Et "SVN ajouter" des choses dès sa création. Je crée généralement des fichiers vides "quelque chose.cpp / quelque chose.h", ajoutez-les à SVN et ne les ajoutez qu'à un projet et commencez à écrire des choses.



6
votes

Une solution simple consiste à cliquer avec le bouton droit de la souris sur le niveau supérieur du projet, puis cliquez sur "COMMIS". La tortue vous montre tout le projet, y compris des fichiers «non versionnés».

Cela prend une petite discipline lorsque vous configurez votre arbre source. Par exemple, si vous mélangez des fichiers de sortie binaire avec code source, cela le rend plus difficile. Assurez-vous également que vous n'avez pas de répertoires ignorés qui contiennent du code source.


1 commentaires

Que diriez-vous de lire la question avant de voter? "J'utilise Visual Studio 2008 et Tortoisisesvn sur Windows7 PCS." Jeez.



6
votes

Constrations quotidiennes.
Un fichier de commandes (ou équivalent) qui vérifie dans un nouveau répertoire et une construction (et dans un monde idéal exécute des tests d'unité) - s'il ne construit pas, alors vous avez manqué quelque chose.


2 commentaires

Un outil comme Cruisecontrol.net ( confluence.Public.thoughworks.org.org / Affichage / CCNet / ... ) peut vous aider à automatiser cette tâche en essayant automatiquement une construction à chaque fois qu'un commit est effectué.


Nous utilisons très avec succès SVN avec Cruisecontrol. Il ne oblige toujours pas les développeurs à vérifier leur travail à moins qu'ils ne soient censés vérifier une dépendance à quelque chose d'autre qui a été vérifié, mais fournit une visibilité constante dans l'état du projet.



7
votes

Utilisez un outil tel que VisualSvn pour montrer quels fichiers sont modifiés dans l'explorateur de la solution, de sorte que vous ne le faites pas oublie de les commettre:

Icônes d'état VisualSvn dans l'explorateur de solutions


1 commentaires

J'utilise également Ankhsvn, mais oui, vs extensions comme ceux-ci font un bon travail d'agitant d'un drapeau dans le visage que cela doit être commis.



2
votes

Contrôle à distance Autres machines (peut-être via VPN) afin que vous puissiez obtenir au code dans des répertoires de travail à distance, même si vous oubliez de le vérifier.

et / ou sauvegarde automatisée de vos répertoires de travail.


1 commentaires

C'est ce que je fais. Si je découvre, j'ai oublié d'enregistrer je viens de ssh à la machine et de commettre de cette façon.



0
votes

J'utilise git-prompt.sh pour garder une trace de l'état des fichiers et des succursales. Il semble également travailler avec SVN.


0 commentaires

1
votes

travail cron pour vous gémir tous les soirs?


0 commentaires

1
votes

Qu'est-ce que j'utilise à la tortue est de toujours avoir l'un de ses vitres "Vérifier les modifications" ouvertes et de toucher régulièrement son bouton de rafraîchissement. Cela aurait été très mauvais dépêché de me faire arrêter sans d'abord vérifier toutes les fenêtres ouvertes / applications pour les données non enregistrées.

Ceci est également bon pour oublier d'ajouter des trucs, BTW, comme vous pouvez également configurer cette fenêtre pour afficher toutes les trucs non ajoutés non ignorés.


0 commentaires

2
votes

Forcer vous-même d'entrer dans une routine.

First thing in the office - do an update. 
Last thing in the office  - do a commit (if required).


0 commentaires

2
votes

Pour oublier de vous enregistrer du tout, si possible, je vous déconnecterais via un script qui vous convoitera d'abord s'il y a un travail qui n'a pas encore été vérifié. Ou via une icône cliquée dans votre dossier de projets afin que Tortoisesvn vous montrera la marque d'exclamation rouge.

Pour oublier d'ajouter de nouveaux fichiers à un enregistrement, j'utilise ce fichier de commandes: P>

svn st
svn ci -m %1 --username "russell.wallace"


0 commentaires