Question

Je veux utiliser Subversion avec un système de développement basé script, et je me demandais quoi faire différemment à ma situation habituelle (C # /. NET).

La mise à jour / cycle de validation normale au jour le jour fonctionnera bien, comme le suivi des modifications et la comparaison des révisions. Là où je voudrais quelques conseils est autour de la gestion du déploiement.

Avec ce système de script, il n'y a pas d'étape de construction distincte en cause - à la place, le déploiement implique le téléchargement d'un script sélectionné directement dans l'application hôte.

Les modifications apportées à un script ne sont pas nécessairement inclus dans la prochaine version - ils peuvent être destinés à la libération après, ou celle d'après.

Dans un monde idéal, je voudrais être en mesure d'allouer un script dans une version donnée, par exemple la libération « Septembre 2009 », une fois qu'il a été testé, puis retirez tous les scripts pour cette version avec un seul commande.

Mise à jour

Pour autant que je peux dire, ni tags, ni changelists vont être la réponse.

changelists ne sont pas persistants (n'existent pas dans le dépôt) et je besoin d'une solution qui permettra à beaucoup plus tard sur l'examen.

sont effectivement les mêmes que les branches - ils contiennent tous les fichiers par défaut, et vous obtenez juste de choisir les révisions.

J'espère une approche qui commencerait avec une branche vide dans lequel les révisions de fichiers spécifiques pourraient être placés au besoin.

Mise à jour 2

Deux exemples montrant comment je peux répondre à cette situation featues dans d'autres outils. Notez que je ne cherche pas à promouvoir ces outils du tout, comme je veux utiliser la subversion, je suis juste essayer de comprendre comment.

QVCS , je peux obtenir mon résultat souhaité en appliquant une étiquette à une révision spécifique d'un fichier. Cette étiquette resterait en place, attaché à cette révision de ce fichier. A tout moment, je pouvais faire une caisse propre, dans un répertoire vide, et préciser que seuls les fichiers avec l'étiquette spécifiée doivent être copiés vers le bas.

De même, StarTeam , je peux appliquer une étiquette une révision de fichier et de vérifier uniquement les fichiers avec cette étiquette.

Était-ce utile?

La solution

«Dans un monde idéal, je voudrais être en mesure d'allouer un script dans une version donnée, par exemple la « libération Septembre 2009 », une fois qu'il a été testé, puis retirez tous les scripts pour que libérer avec une seule commande. "

Ceci est exactement ce que balises sont conçus pour.

Autres conseils

Vous pouvez gérer vos versions « futures » avec des branches de Subversion. Lorsque vous effectuez un changement qui est destiné à une version future, l'engager à la branche appropriée. Lorsque vient le temps de tirer toutes les fonctionnalités à venir dans le coffre, fusionner la branche.

Ce n'est pas vraiment si différent du flux de travail pour l'utilisation de Subversion avec un langage compilé, ou même pour toute autre raison.

Voir la section Common Branching motifs des livre de Subversion pour plus d'informations. En particulier, la section "Branches Feature" semble le plus approprié à votre situation.

Une solution serait de commencer une nouvelle branche à l'aide svn mkdir (au lieu de svn copy), puis copier sélectivement les fichiers nécessaires à partir de votre branche principale par voie de svn copy

Je vois le problème - qui n'a rien à voir avec SVN. Vous voulez stocker des fichiers dans une branche de sortie, mais pas d'autres. Ainsi, une branche l'ensemble de répertoire de version et puis supprimez les fichiers que vous ne voulez pas montrer là-dedans; ou créer un nouveau répertoire vide et copier uniquement les fichiers que vous voulez.

Son est aussi simple que cela. Vous n'avez pas besoin changelists ou balises ou quoi que ce soit compliqué du tout, et aucun système de subversion capable de deviner quels sont les fichiers que vous voulez. Personnellement, je ferais la branche + supprimer l'option que vous pouvez annuler la suppression à une date ultérieure si vous décidez que vous ne voulez les fichiers retour.

On dirait que vous êtes à la recherche des métadonnées sur les scripts spécifiques. Ainsi une option est de stocker vos scripts sous forme de fichiers séparés, et utiliser propriétés svn . propriétés svn vous permettent de stocker des paires clé-valeur associée à un fichier.

Par exemple, pour refléter votre exemple « label », vous pouvez créer une propriété pour chaque fichier que vous décidez d'inclure dans une version particulière. Dans ce cas, créer une propriété « Septembre 2009 » avec la valeur « true ».

Vous pouvez sélectionner uniquement les fichiers avec la propriété « Septembre 2009 » lors de la création de votre package de déploiement.

Utilisation des balises et des branches sont utiles lorsque vous souhaitez suivre les modifications apportées à votre référentiel au fil du temps, et de générer des diffs pour voir ce que ces changements sont - mais il est un instantané de l'ensemble du référentiel ...

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