Question

Je ne l'ai pas vu un système de contrôle continu version -. Qui sauverait des changements dans votre code que vous les ont développés, plutôt que d'attendre un contrôle officiel dans les changements seraient enregistrés comme « non cochée dans » bien sûr, mais ils seraient sauvés loin pour la sauvegarde et l'affichage par d'autres avant vous fait le chèque officiel.

Je ne l'ai pas vu, et je me demande si elle, ou quelque chose comme ça, existe, et les raisons pour lesquelles il pourrait ou ne pourrait pas être une bonne idée.

En ce moment, les programmeurs pensent de contrôle de code source que l'intégration des paquets de code, mais pourquoi ne pas faire ces petits paquets et intégrer en permanence?

-Adam

Était-ce utile?

La solution

  

En ce moment, les programmeurs pensent de contrôle de code source que l'intégration des paquets de code, mais pourquoi ne pas faire ces petits paquets et intégrer en permanence?

Je dirais que DVCS faisons déjà au fond maintenant, non pas parce qu'ils sont décentralisés, mais parce que commiting est beaucoup plus rapide .. Avec git je me engage beaucoup plus souvent que SVN .. Il est aussi simple de commettre « morceaux »ou de code spécifique (en utilisant git add -i ou git gui), et est généralement beaucoup plus concentré sur les lignes de code de suivi, plutôt que des dossiers complets (comme « traditionnel » VCS » comme Subversion)

En outre, la git façon fonctionne intrinsèquement des moyens, comme vous le dites, « les changements seraient enregistrés comme « non vérifié dans » bien sûr » .. Lorsque vous vous engagez, les changements sont locaux, puis vous les poussez à la machine distante avec une commande séparée .. vous pouvez engager chaque fois que vous enregistrez, les rebasage alors en un seul engagement si vous désirez.

En ce qui concerne un outil qui ne « contrôle continu de version », vous pouvez le faire tout simplement avec un script shell, quelque chose comme ..

while [ 1 ]; do
   git add -a && git commit -m "Autocommit at $(date)";
   sleep 10;
done

Il y a un script, CACM ( github ), qui fait quelque chose de similaire

  

[CACM] montres un répertoire spécifique, et engage toutes les modifications apportées à un dépôt Git autonome.

     

Pour utiliser il suffit de faire:

     

cacm --repo dir_of_git_repo --watch dir_to_watch

Je ne sais pas pourquoi vous voulez le faire .. Je trouve l'une des choses les plus utiles sur l'utilisation d'un VCS est le diff de ce que j'ai changé (depuis le dernier commit). Il semble comme avoir commits constant / automatisé serait tout simplement le bruit ..

En outre, le « e » éditeur de texte a une caractéristique intéressante, elle permet de visualiser l'historique d'annulation, avec branchement . Il y a un Blog post sur elle avec des captures d'écran.

Autres conseils

Le travail de sauvegarde automatique constante n'est pas une tâche pour un système de version, mais pour l'éditeur. Quand vous voyez une nouvelle version dans le système de version, il devrait représenter un changement significatif par rapport aux autres versions, pas tous les mots halftyped.

Eclipse a une fonction appelée « histoire locale » qui fait exactement cela. Il gardera une copie de vos fichiers source entre deux sauvegardes. Il garde même la trace des dossiers supprimés pour vous. Il a sauvé mes fesses plusieurs fois. Vous pouvez voir l'histoire locale comme le contrôle de version bas niveau qui ne se produit que sur votre machine locale. Le seul inconvénient de c'est bien sûr lorsque vous travaillez sur une autre machine, vous aurez une histoire locale différente.

vous pouvez utiliser un système de contrôle de version distribuer, comme Bazar , git , Mercurial.  alors vous pouvez vous engager localement.

J'ai vu des plugins basés inotify pour diverses DVCS, mais ceux qui ne peuvent être que si intelligent. Vraiment, l'idéal est de faire stocker le dépôt sur un système de fichiers copie sur écriture, de sorte que ces versions granuleuse fréquentes (et immuables) des fichiers sont conservés en dehors du DVCS.

Comme d'autres l'ont dit, je préfère faire beaucoup de petits engagements. Avec un DVCS, vous n'avez pas à vous soucier de casser la branche du tronc ou maître, pousser seulement après que vous avez terminé .. pas de soucis au sujet de révisions toxiques lors de la modification des fichiers.

Sur Linux, j'utilise ext3cow pour stocker mes dépôts HG / Git. Cela me donne le genre de fonctionnalités que vous décrivez. Triste à dire, je ne sais pas de quelque chose comme ça qui est portable au-delà de Linux. Peut-être une équipe folle viendra avec un en Python.

Cette question a été soulevée à plusieurs reprises avant (bien que chacun dans un contexte différent), aussi sûrement le besoin de quelque chose comme ext3cow (mais portable) est évidente. Et pourtant, je ne voudrais pas que la météorisation dans un DVCS lui-même, en particulier sur les arbres énormes.

Je pense que vous avez vraiment besoin de demander ce à partir du système de fichiers, pas le DVCS.

Vous ne voulez pas vérifier dans tous changement. Vous voulez vérifier dans des ensembles atomiques de changements qui peuvent travailler ensemble. Vous ne voulez pas ajouter un paramètre à une méthode et enregistrer, l'avoir vérifié dans (et une course de construction CI), ont alors la pause de construction parce que vous ne l'avez pas encore mis à jour les appels à la méthode.

Vous voulez dire quelque chose comme Subversion Autoversioning?

Disclaimer:. Je ne dis pas Autoversioning est une bonne idée pour le développement, ou que je personnellement le faire, mais la technologie existe

Vous pouvez engager chaque ligne, ou le caractère avec un DVCS comme git si vous voulez. En général, je pense qu'il est une excellente idée de commettre aussi souvent que possible, lorsque vous utilisez un DVCS, pour le rendre facile à traquer les problèmes avec des outils tels que git bisect. Si vous voulez l'effet que vous décrivez, vous pourriez scénario votre éditeur de choix pour commettre sur tous les sauver ... Dans la pratique, même si je pense que ce serait un peu beaucoup.

Certaines personnes configurer une branche de développement à cet effet et ont les développeurs commettent leurs changements dans leur travail avant de fusionner dans une branche de niveau d'assurance de la qualité. Vous pourriez même avoir un développeur qui font des changements importants travaux dans son / sa propre branche avant de vous engager et de fusionner ces changements dans la branche principale de développement. Alors, peut répondre à cette ramification.

Je pense Eclipse fait, ou utilisé pour faire quelque chose comme ça à chaque sauver. Il m'a sauvé quelques fois quand mon code a fini par être piraté en morceaux tout en essayant d'identifier un bogue.

Voici une autre approche. Presque tous les jours je cours à des situations où quelque chose cesse de travailler et je ne sais pas pourquoi. Je rembobiner quelques minutes et vérifier quels changements ont été apportés et quels fichiers. Donc, je suis d'accord sur la nécessité d'continouos contrôle de version.

En même temps, il est vrai que vous ne voulez pas checkin des milliers de petits changements chaque jour dans votre référentiel.

Ok, il en est ainsi ce que vous faites. Vous utilisez à la fois, mais ne pas les mélanger. Votre contrôle de code source doit être utilisé par toute l'équipe et vous vérifiez pour que chaque maintenant et puis. En même temps, vous exécutez un logiciel de version de dossier personnel local qui enregistre chaque petit changement et le rend facile pour vous d'utiliser réellement les informations.

Voilà. J'utilise History Explorer depuis que j'aidé à développer, mais il y a d'autres là-bas aussi.

Vous pourriez être intéressé par le système de contrôle continu de la version développée par JetBrains. Il est pas encore public, mais je montre quelques caractéristiques dans mon discours à JetBrainsDay à Malmö: http : //new.livestream.com/jetbrains/jetbrainsday1/videos/29348962

Dan mentionné , IBM IDE de Visual Âge gardé toutes les versions que vous avez enregistré des un fichier de code source. Cette approche ne se limite pas à IDEs, cependant; le rel="nofollow système d'exploitation DEC VMS a adopté une approche similaire avec son système de fichiers versionné . Dans VMS, le nom complet de chaque fichier inclus un numéro de version, et chaque fois que vous avez enregistré un fichier, une nouvelle copie a été créé avec un numéro de version un plus élevé que le nombre le plus élevé précédemment.

Aucune de ces approches correspond tout à fait le contrôle de version que nous connaissons aujourd'hui, en ce sens tant le manque de branchement (ou, d'ailleurs, toutes les fonctionnalités spécialement conçues pour faciliter plusieurs personnes travaillant sur le même fichier source). Mais, ils servent la fin de sauvegarde contre l'erreur humaine, qui pour moi est l'aspect le plus utile de contrôle de version.

Avoir nouvelle approche plus de quelques années d'expérience de la programmation en Java, je me souviens encore (avec nostalgie) que Visual Age apporté au processus de développement. Visual Age avait une approche non-fichier au code source. Code a été stocké dans la base de données relationnelle. Vous souhaitez généralement travailler sur une vue montrant une seule méthode. Vous avez également une vue de fichier complet, mais vous ne l'utiliser beaucoup.

En ce qui concerne le contrôle de version, il générerait une version avec chaque enregistrement. Vous pouvez explicitement un point de contrôle méthode, classe / interface, package ou projet entier avec un numéro de version / nom. Elle a également permis un contrôle plus fin grain de votre source au niveau de la méthode. Une fois que je commencé à travailler avec Eclipse, alors qu'il a hérité de nombreuses fonctionnalités de Visual Age, et aujourd'hui a une histoire permettant de gagner un je ne pouvais pas localement tous les « arrêts » de votre code, aider sentiment que je fait un pas en arrière.

a le concept d'une vue dynamique . Sur les fenêtres, votre point de vue du développement montre en tant que lecteur mappé, mais vos modifications de code sont stockées côté serveur dès que vous cliquez sur Enregistrer. Est-ce ce que vous cherchez?

Il y a, comme on pouvait s'y attendre, compromis avec le travail de cette façon, donc comme Si de réponse < a href = "https://stackoverflow.com/questions/688546/continuous-version-control/688554#688554"> ci-dessus , ce n'est pas une recommandation ...

Qu'en est-il VESTA?

http://www.vestasys.org/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top