2009-04-24 6 views
3

J'utilise des projets de déploiement Web ASP.NET avec TortoiseSVN et VisualSVN, mais il s'agit d'une question générale sur les fichiers générés dans Subversion. Un projet de déploiement Web génère automatiquement une version parallèle de «déploiement» de votre site Web avec tout le code supprimé et compilé en un seul assemblage. Ma structure de fichier est:Comment faire fonctionner Subversion avec des fichiers générés automatiquement?

  • Tronc
  • Tronc/MyProject (racine du site)
  • Tronc/MyProject_deploy (racine du projet de déploiement)
  • Trunk/MyProject_deploy/Release (racine de site Web de déploiement, générée automatiquement)

Voici le problème: MyProject_deploy/Release est régénéré lors de la génération (en mode Release). Le répertoire est supprimé et recréé, donc je perds toutes les métadonnées .svn; et quand je vais commettre, j'obtiens le statut "Obstruqué", que j'ai recherché et qui signifie qu'il y a un dossier local non géré avec le même nom qu'un dossier géré sur le serveur.

(je pourrais simplement ignorer le dossier de sortie, mais je veux faire FTP déployer directement à partir du serveur Subversion.)

Quelle est la meilleure façon de traiter les fichiers générés automatiquement dans Subversion?

Répondre

14

Définissez la propriété svn: ignore. Ne les ajoutez pas à votre système de contrôle de version. Tout ce qui est généré par le processus de construction n'appartient pas ici. Ce qui appartient à ce domaine sont les éléments nécessaires pour compléter le processus de construction.

Je vous recommande d'ajouter un serveur d'intégration continu comme CruiseControl.NET au mixage - il peut générer le projet à partir de la source, puis effectuer le déploiement à partir de celui-ci. Cela vous mettra dans la position d'utiliser 2 meilleures pratiques au lieu de 1, et encore résoudre votre problème.

1

Si vous utilisez Visual Studio, pourriez-vous définir des événements pré et post-construction pour déplacer le répertoire (ou les répertoires) .svn hors de la version avant la génération, puis revenir dans la suite?

1

Cela pose également un problème lors de l'utilisation de projets d'installation pour créer une sortie Windows Installer.

Une option consiste à changer le nom du fichier de sortie afin que les fichiers générés soient sauvegardés dans la racine de votre projet de déploiement, plutôt que dans un sous-dossier appelé "Release". Dans le cas du projet d'installation, je produisais un seul fichier MSI et cela a bien fonctionné - aucun dossier n'est supprimé/recréé donc pas d'erreurs SVN, et il est propre avec seulement deux fichiers dans le projet de déploiement dossier racine.

Questions connexes