Question

Ils sont particulièrement agaçants lorsque j'ai besoin de télécharger une solution Web sur le serveur.

Existe-t-il un moyen de configurer SVN pour créer les dossiers _svn en dehors de mon répertoire de travail? Si non, quelle est la meilleure façon de les traiter lorsque vous ne devez copier que le code?

Mise à jour: avec " svn export " Cette commande est problématique car certains fichiers ne sont pas sous contrôle de source mais nécessaires, tels que les fichiers .dll, les fichiers de données XML ou les fichiers de base de données, et ils ne seront pas exportés. Par conséquent, il serait nécessaire de les copier manuellement dans différents sous-répertoires de la copie de travail à chaque fois.

Était-ce utile?

La solution

Il n'est pas (actuellement) possible de configurer SVN (ou TortoiseSVN) pour créer les répertoires .svn (ou _svn) en dehors de la copie de travail. Je crois que la feuille de route de SVN 1.6 inclut une nouvelle visite de la bibliothèque de copie de travail. La possibilité de placer les répertoires administratifs ailleurs pourrait sortir de ce travail, mais je spécule.

Vous devez utiliser le " exportation svn " commande pour créer un " nettoyer " copie de votre copie de travail (c'est-à-dire sans les répertoires _svn). Cela fonctionne à partir du client en ligne de commande.

Si vous utilisez TortoiseSVN, vous pouvez cliquer avec le bouton droit de la souris sur la copie de travail et choisir "Exporter ...". Cela vous demandera un dossier pour exporter les fichiers. Alternativement, vous pouvez faire glisser une copie de travail dans un dossier (celui qui n'est pas une copie de travail), et TortoiseSVN fera apparaître un menu contextuel; "Exporter SVN vers ici" figure parmi les options disponibles. et "SVN Export all to here", ce dernier exporte également les fichiers non sous contrôle de version .

Autres conseils

Utilisez " svn export " créer une arborescence de répertoires vierge.

Robocopy déploiement ...

robocopy {source} {dest} /MIR /XD _svn /XD .svn

Dans TortoiseSVN, vous pouvez faire un clic droit sur la copie de travail et la faire glisser ailleurs. Et lorsque le menu contextuel apparaît, sélectionnez "Export SVN ici". (Cela nécessite que tout le code de la copie de travail ait été archivé, car l'exportation se fera à partir du tronc et pas à partir de la copie de travail)

Voir ces ressources pour plus de détails:

si vous utilisez un script nant pour activer le déploiement sur le serveur Web, les attributs _SVN et _SVN / ** sont exclus automatiquement lors de la copie de fichiers. nant filtrera de nombreux fichiers inutiles lors de la copie de fichiers via sa tâche de copie, notamment:

  • ** / * ~
  • ** / # * #
  • ** /. # *
  • ** /% *%
  • ** / CVS
  • / CVS /
  • ** /. cvsignore
  • ** /. svn
  • /. svn /
  • ** / _ svn
  • / _ svn /
  • ** / SCCS
  • / SCCS /
  • ** / vssver.scc
  • / _ vti_cnf /

vous pouvez en savoir plus sur NANT sur la page d'accueil de son projet ici: NANT Home

+1 pour la solution d'Isak Savo.

Et vous pouvez faire un XCOPY en excluant "/ svn". dossiers:

XCOPY% 1% 1_deploy /EXCLUDE:C:\ExcludeSVN.txt / E / C / I / F / R / Y

Contenu de ExcludeSVN.txt:

/ _ svn

En fait, si vous souhaitez effectuer un téléchargement sur un serveur Web, votre fichier d'exclusion peut en contenir beaucoup plus:

  • .pdb
  • .cs
  • .resx
  • .csproj
  • .sln
  • .webinfo
  • .bak
  • .sql
  • .zip
  • .vspscc
  • .vssscc
  • .scc
  • \ Web.config

Avertissement: si vous excluez des fichiers .cs, vous devez copier le fichier .css après

.

La méthode la plus sale sous Windows: créez une copie de votre projet, ouvrez Explorer, naviguez jusqu'au répertoire dans lequel se trouve la copie et effectuez une recherche pour tout se terminant par _svn. Une fois la recherche terminée, sélectionnez tout et appuyez sur Supprimer.

Beurk! Mais cela fonctionne vraiment bien.

Nous utilisons CruiseControl avec robocopy afin de créer une copie vierge de votre référentiel.

 <exec>
        <executable>C:\Archivos de programa\Windows Resource Kits\Tools\robocopy.exe</executable>
        <buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs>
        <buildTimeoutSeconds>60</buildTimeoutSeconds>
        <successExitCodes>1,0</successExitCodes>
 </exec>

Les arguments / XF et / XD excluent les fichiers et les répertoires que vous ne souhaitez pas télécharger en production.

Pour plus d'informations sur Robocopy, cliquez ici .

Si vous souhaitez supprimer tous les sous-dossiers nommés .svn dans Windows puis créez un fichier de commandes avec ce contenu:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

enregistrez-le dans un fichier del_All_Dot_SVN_Folders.cmd . Exécuter. Votre fait.

Merci à http: // www .axelscript.com / 2008/03/11 / delete-all-svn-files-in-windows /

Rappelez-vous que le code ci-dessus a .svn alors que le code dans le lien a seulement * svn alors c'est mieux avoir le .svn pour ne pas avoir accidentellement effet indésirable.

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