Question

À l'aide des interfaces en ligne à un système de contrôle de version est une belle façon d'avoir un emplacement publié pour les versions les plus récentes de code.Par exemple, j'ai un paquet LaTeX ici (qui est libéré à CTAN chaque fois que des modifications sont vérifiées à la réalité du travail):

http://github.com/wspr/pstool/tree/master

Le paquet lui-même est dérivé à partir d'un seul fichier (dans ce cas, pstool.tex) qui, lors du traitement, produit de la documentation, le fichier lisez-moi, le fichier d'installation, et les fichiers qui composent le paquet tel qu'il est utilisé par le LaTeX.

Afin de le rendre facile pour les utilisateurs qui veulent télécharger ce truc, j'ai inclure tous les fichiers mentionnés ci-dessus dans le référentiel lui-même ainsi que le fichier principal pstool.tex.Cela signifie que je vais avoir le double du nombre de changements à chaque fois que je m'engage parce que le fichier de package pstool.sty est un sous-ensemble du fichier maître.

Est-ce une perversion de contrôle de version?


@Jon Limjap a soulevé un point intéressant:

Est-il une autre façon pour vous de publier vos fichiers générés par ailleurs pour les télécharger, au lieu de compter sur votre contrôle de version à votre serveur de téléchargement?

C'est vraiment le point crucial de la question dans ce cas.Oui, les versions du paquet peut être obtenu à partir ailleurs.Donc il n'a vraiment plus de sens à la seule version de la non-fichiers générés.

D'autre part, @Madirs 'commentaire que:

la commodité, ce qui est réel et répété, l'emporte sur le coût, qui est à la charge derrière les coulisses

est également assez pertinent dans la mesure où si un utilisateur trouve un bug et je résoudre ce problème immédiatement, ils peuvent alors rendez-vous sur le référentiel et prends le fichier qui est nécessaire pour eux de continuer à travailler sans avoir à exécuter une "installation" étapes.

Et cela, je crois, est le plus important de cas d'utilisation pour mon ensemble particulier de projets.

Était-ce utile?

La solution

Je suis à l'aide de Tortoise SVN pour petit système ASP.NET développement.Plus le code est interprété ASPX, mais il y a une dizaine d'binaire Dll générée par un manuel de l'étape de compilation.Alors qu'il ne fait pas beaucoup de sens d'avoir ces source-code versionné en théorie, il est certainement pratique pour s'assurer qu'ils sont correctement mis en miroir à partir de l'environnement de développement sur le système de production (d'un clic).Aussi - en cas de catastrophe - la restauration à l'étape précédente est de nouveau un clic sur le SVN.

J'ai donc serré les dents et les a inclus dans le SVN archives - la commodité, ce qui est réel et répété, l'emporte sur le coût, qui est à la charge derrière les coulisses.

Autres conseils

Nous n'avons pas la version des fichiers qui peuvent être générés automatiquement à l'aide de scripts inclus dans le référentiel lui-même.La raison pour cela est que, après une extraction, ces fichiers peuvent être de reconstruire avec un simple clic ou la commande.Dans nos projets, nous essayons toujours de faire ce aussi facile que possible, et de prévenir ainsi la nécessité pour les versions de ces fichiers.

Un scénario que je peux imaginer d'où cela pourrait être utile si marquage des versions spécifiques d'un produit, pour une utilisation dans un environnement de production (ou du non-développement de l'environnement) où les outils nécessaires pour générer la sortie peut ne pas être disponible.

Nous utilisons également des cibles dans nos scripts de compilation qui permet de créer et de télécharger des archives avec une version de nos produits.Ce peuvent être téléchargés vers un serveur de production, ou d'un serveur HTTP de téléchargement pour les utilisateurs de vos produits.

Pas nécessairement, bien que les meilleures pratiques pour le contrôle de la source vous conseillons de ne pas inclure les fichiers générés, pour des raisons évidentes.

Est-il une autre façon pour vous de publier vos fichiers générés par ailleurs pour les télécharger, au lieu de compter sur votre contrôle de version à votre serveur de téléchargement?

Normalement, les fichiers ne doivent pas être stockés dans le contrôle de version.Dans votre cas, vous pourriez construire une procédure de validation qui a créé une archive qui inclut les fichiers.

Comme vous le dites, en gardant les fichiers dans le contrôle de version seulement augmente la quantité de bruit que vous avez à traiter avec.

Dans certains cas, nous ne, mais il s'agit plus d'un sysadmin type de cas d'utilisation, où les fichiers générés (par exemple, des fichiers de zone DNS construit à partir d'un script) ont intérêt intrinsèque dans leur propre droit, et le contrôle de la révision est plus linéaire de la piste d'audit de ramification et de marquage de la source de contrôle.

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