Question

Si vous travaillez en PHP (ou, je suppose, dans n'importe quel langage de programmation) et que vous utilisez Subversion comme contrôle de code source, existe-t-il un moyen de prendre votre projet (par exemple) :

C:\Projets est\.svn
C:\Projets est\docs\
C:\Projets est\faq.php
C:\Projets est\guestbook.php
C:\Projets est\index.php
C:\Projets est est.php

et construisez/copiez/quoi que ce soit pour qu'il élimine certains fichiers et devienne :

C:\Projets est\faq.php
C:\Projets est\guestbook.php
C:\Projets est\index.php

automatiquement ?J'en ai marre de créer une branche, puis de parcourir la branche et de supprimer tous les dossiers ".svn", le répertoire docs et mes fichiers de prototypage.

Je sais que je pourrais probablement utiliser un fichier .bat pour copier uniquement les fichiers spécifiques que je veux, mais j'espérais qu'il y avait un moyen avec Subversion de pseudo-ignorer un fichier, là où il le versionnerait toujours, mais où vous pourriez faire un instantané du projet qui ignore les fichiers que vous lui avez demandé de pseudo-ignorer.

Je sais que j'ai lu quelque part en ligne certaines fonctionnalités qui vous permettent au moins de copier sans les dossiers .svn, mais je ne les trouve pas maintenant.

Était-ce utile?

La solution

Si vous utilisez TortoiseSVN, vous pouvez utiliser la fonction d'exportation pour supprimer automatiquement tous les fichiers .svn.Je pense que d'autres éléments SVN ont la même fonctionnalité.

Cliquez avec le bouton droit sur le dossier racine du projet, TortoiseSVN > Exporter et indiquez-lui où vous voulez le répertoire gratuit .svn.

Autres conseils

Voici une idée farfelue avec du chewing-gum et du lacet :

Copiez tous les fichiers manuellement ou en utilisant votre méthode existante pour la première fois.Ensuite, puisque je suppose que vous êtes sur une plateforme Windows, installez SynchronisationJouet et configurez-le dans le méthode d'abonnement, ce qui copierait effectivement dans un sens uniquement les modifications apportées depuis le dernier pseudo-commit en production pour les fichiers déjà en production.Si vous souhaitez ajouter un fichier, vous pouvez simplement le copier manuellement et reprendre l'opération SyncToy.

Ok, donc ma solution finale est la suivante :

Utilisez la commande d'exportation pour exporter vers un dossier appelé "export" dans le même répertoire qu'un fichier appelé "deploy.bat", puis j'exécute le script de déploiement (v1 signifie version 1, qui correspond à la version sur laquelle je suis actuellement dans ce projet) Ce script utilise 7-Zip, que j'ai placé sur mon chemin système afin de pouvoir l'utiliser comme utilitaire de ligne de commande :

rem replace the v1 directory with the export directory
rd /s /q v1
move /y export\newIMS v1
rd /s /q export

rem remove the prepDocs directory from the project
rd /s /q v1\prepDocs

rem remove the scripts directory from the project
rd /s /q v1\scripts

rem remove individual files from project
del v1\.project
rem del v1\inc\testLoad.html
rem del v1\inc\testInc.js

SET /P version=Please enter version number:

rem zip the file up with 7-Zip and name it after whatever version number the user typed in.
7z a -r v%version%.zip v1

rem copy everything to the shared space ready for deployment
xcopy v%version%.zip /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\v%version%.zip"
xcopy v1 /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\currentVersion"

rem keep the window open until user presses any key
PAUSE

Je n'ai pas eu le temps de découvrir la solution SyncToy, alors ne considérez pas cela comme un rejet de cette méthode.Je savais juste comment faire cela, et je n'ai pas eu le temps de vérifier celui-là (en raison d'un manque de temps en ce moment).

Sources:

http://commandwindows.com/command2.htm
http://www.ss64.com/nt/

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