Realizarea unei producții de producție a unui proiect PHP cu Subversion

Dacă lucrați în PHP (sau cred că orice limbaj de programare) și folosind subversiunea ca control al sursei dvs., există o modalitate de a vă lua proiectul (de exemplu):

C: \ Proiecte \ test \ .svn
  C: \ Proiecte \ test \ Docs \
  C: \ Proiecte \ test \ faq.php
  C: \ Proiecte \ test \ guestbook.php
  C: \ Proiecte \ test \ index.php
  C: \ Proiecte \ test \ test.php

și să construiască / copiați / orice ar fi așa, să buruiască anumite fișiere și să devină:

C: \ Proiecte \ test \ faq.php
  C: \ Proiecte \ test \ guestbook.php
  C: \ Proiecte \ test \ index.php

automat? M-am săturat să fac o ramură și apoi să trec prin ramură și să șterg toate folderele ".svn", directorul docs și fișierele mele de prototipuri.

Știu că aș putea folosi un fișier .bat pentru a copia doar fișierele specifice pe care le doresc, dar speram că există un fel de subversiune la un fel de pseudo ignorare a unui fișier, unde va fi încă versiunea acestuia, dar unde ați putea face un instantaneu al proiectului care ignoră fișierele pe care i le-ați spus psuedo să ignore.

Știu că am citit online undeva despre unele funcționalități care vă permit cel puțin să copiați fără dosarele .svn, dar nu o pot găsi acum.

0
fr hi bn

3 răspunsuri

Ok, deci soluția mea finală este următoarea:

Utilizați comanda de export pentru a exporta într-un director numit "export" în același director ca un fișier numit "deploy.bat", apoi execut scriptul de implementare (v1 înseamnă versiunea 1, care este versiunea pe care o folosesc în prezent proiect) Acest script utilizează 7-Zip, pe care l-am plasat pe calea sistemului meu, astfel încât să îl pot folosi ca utilitar pentru linia de comandă:

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

Nu am avut timp să verificați soluția SyncToy, așa că nu luați acest lucru pe măsură ce resping această metodă. Tocmai știam cum să fac acest lucru și nu am avut timp să verific pe cineva afară (într-o criză de timp chiar acum).

surse:

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

0
adăugat

Iată o idee plină de gingășie:

Copy all the files manually or using your existing method for the first time. Then, since I take it you're on a Windows platform, install SyncToy and configure it in the subscribe method, which would effectively one-way copy only the changes made since the last pseudo-commit to production for files already in production. If you want to add a file you can just copy it manually and resume the SyncToy operation.

0
adăugat

Dacă utilizați TortoiseSVN, puteți utiliza caracteristica de export pentru a elimina automat toate fișierele .svn. Cred că alte lucruri din SVN au aceeași trăsătură.

Right click the root project folder, TortoiseSVN > Export and tell it where you want the .svn free directory.

0
adăugat
Caracteristica de export ar trebui să funcționeze cu orice client, și anume clientul liniei de comandă; este o caracteristică standard.
adăugat autor Frank V, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT