Domanda

Se lavori in PHP (o immagino qualsiasi linguaggio di programmazione) e usi subversion come controllo del codice sorgente, c'è un modo per prendere il tuo progetto (ad esempio):

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

e costruisci/copia/qualunque cosa in modo da eliminare determinati file e diventare:

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

automaticamente?Mi sto stancando di creare un ramo, quindi di esaminarlo ed eliminare tutte le cartelle ".svn", la directory docs e i miei file di prototipazione.

So che probabilmente potrei usare un file .bat per copiare solo i file specifici che desidero, ma speravo che ci fosse un modo con subversion per pseudo ignorare un file, dove ne verrà comunque versione, ma dove potresti creare un'istantanea del progetto che ignora i file che gli hai detto di pseudo ignorare.

So di aver letto online da qualche parte di alcune funzionalità che almeno ti consentono di copiare senza le cartelle .svn, ma non riesco a trovarle ora.

È stato utile?

Soluzione

Se utilizzi TortoiseSVN, puoi utilizzare la funzione di esportazione per eliminare automaticamente tutti i file .svn.Penso che altre cose svn abbiano la stessa caratteristica.

Fai clic con il pulsante destro del mouse sulla cartella principale del progetto, TortoiseSVN > Esporta e indica dove desideri la directory gratuita .svn.

Altri suggerimenti

Ecco un'idea stravagante: gomma e scarpe:

Copia tutti i file manualmente o utilizzando il metodo esistente per la prima volta.Quindi, visto che immagino che tu sia su una piattaforma Windows, installa SyncToy e configurarlo in metodo di iscrizione, che copierebbe effettivamente in modo unidirezionale solo le modifiche apportate dall'ultimo pseudo-commit in produzione per i file già in produzione.Se vuoi aggiungere un file puoi semplicemente copiarlo manualmente e riprendere l'operazione SyncToy.

Ok, quindi la mia soluzione finale è questa:

Utilizzare il comando export per esportare in una cartella chiamata "export" nella stessa directory di un file chiamato "deploy.bat", quindi eseguo lo script di distribuzione (v1 sta per versione 1, che è la versione in cui mi trovo attualmente in questo project) Questo script utilizza 7-Zip, che ho inserito nel mio percorso di sistema in modo da poterlo utilizzare come utilità della riga di comando:

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

Non ho avuto il tempo di provare la soluzione SyncToy, quindi non prenderlo come se rifiutassi quel metodo.Sapevo solo come farlo e non ho avuto il tempo di verificarlo (in questo momento sono a corto di tempo).

Fonti:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top