2009-04-01 9 views
4

Sur la plupart de mes projets, individuels ou de groupe, je trouve que je n'utilise que le contrôle de version pour simplement tirer les dernières modifications et publier mon propre code.Comment puis-je utiliser le contrôle de version de manière plus puissante?

Cependant, je sais qu'il y a beaucoup plus de contrôle de version, avec des branches et d'autres fonctionnalités puissantes que je n'utilise pas.

Quelqu'un peut-il me donner des conseils sur la façon d'utiliser le contrôle de version d'une manière plus puissante?

Les systèmes de contrôle de version dont je parle principalement sont SVN et Git.

Répondre

13

Vous pouvez commencer ici: Red book

Vous créez des tags pour les choses que vous confié; vous créez des branches pour les choses sur lesquelles vous travaillez et vous pourriez potentiellement être incorrect/instable. Votre coffre devrait être aussi stable que possible (homme, cela ne sonne pas bien).

+0

Merci pour le grand lien pour lire. – ojblass

2

Je trouve ce contrôle de version incroyablement utile pour isoler et corriger les bogues difficiles. Plus précisément, en mettant à jour vers les versions précédentes, je peux trouver lorsque le problème a été introduit, puis découvrir quelles modifications ont été apportées entre les deux versions, et isoler facilement le problème.

8

git ready a beaucoup de conseils sur l'utilisation de Git, de débutant à avancé. Voir aussi le Git Wiki pour tout type de documentation et des conseils sur l'utilisation de Git.

Voici quelques points qui sont intéressants à connaître et qui ne sont pas évidents.

Réorganiser une série de commits:

git rebase -i <base-rev> 

Trouvez qui allouent cassé vos tests unitaires, dans ce cas, make check; vous pouvez utiliser toute autre commande qui pourrait vérifier une défaillance de construction particulière ou bug et sortir avec un statut non nul en cas d'échec:

git bisect start HEAD <known good revision>; git bisect run make check 

Afficher les informations utiles sur une télécommande et ses branches:

git remote show <remote> 
et

ramification dans Git est plus facile que rien:

git checkout -b branch-name master # create a new branch, starting it at master 
git pull origin master # merge in changes from the master branch on origin server 
git checkout master; git merge branch-name # merge changes you made on the branch 
git branch -d branch-name # once you're done with the branch 

Si vous souhaitez partager la branche avec les autres pendant que vous travaillez, ou le pousser vers un serveur pour la sauvegarde:

git checkout branch-name # assuming it's already been created 
git push origin branch-name # push the branch to the origin server 
11

Master fusionnant et ramifiant. Ce que je trouve étonnant à propos de la plupart des utilisations du contrôle de version, c'est que 90% des personnes qui l'utilisent ne savent pas comment l'utiliser pour supporter deux branches différentes en même temps qu'elles l'utilisent comme système de gestion de version linéaire. . La vraie puissance du contrôle de version est qu'il vous permet de maintenir efficacement deux versions séparées d'un système en même temps, ce qui est pratique lorsque vous devez simultanément prendre en charge une version de production et développer une nouvelle version d'un logiciel. . Apprendre à utiliser un outil comme Subclipse (et le plugin Eclipse pour Maven) ou un outil comme Git pour fusionner les changements entre les branches est quelque chose que j'aimerais plus de gens utilisant Version Control savait faire.

4

Envisagez de mettre votre système de construction en contrôle de révision.Votre chaîne d'outils peut elle-même dévier avec le temps et le provisioning des machines de développement devient comiquement simplement plutôt qu'une épreuve. J'ai également constaté que les tests de version ou les artefacts de construction vous obligent à l'automatisation. Considérez les méthodes de stockage d'autres artificats de votre logiciel (exigences, jalons, etc.). Si vous avez des outils externes, combattez la duplication de toutes vos forces. Envisagez de documenter l'environnement de construction au sein du système de construction et de le rendre si simple qu'un singe pourrait amorcer un extraire, construire, empaqueter, annoncer, tester, empaqueter, signer et déployer.

Questions connexes