SVN export na FTP
Da li postoji način da se SV eksportuje dirktno preko FTP? Znači da mu dam neke FTP parametre i kažem da eksportuje u određeni dir (document root)?
Ja radim export u neki lokalni dir pa onda iz tog dir-a ručno uploadujem na server preko FTP. Da li bar postoji opcija da se eksportuje samo izmenjeno? |
|
Off Topic: ja tek skoro naucih za svn hooks - strava stvar |
Ovo je blizu ali ja ne bih da se uploaduje svaki put cim se promeni repository (može biti i opasno), nego da ja mogu ručno da ga pokrenem. Znači da umesto klasičnog export mogu da izaberem FTP umesto local dir.
|
Liči da ne bi bilo teško napraviti neki wrapper skript. Je l' baš mora preko FTP-a? Imaš li shell na serveru? Windows client OS?
UBR, koliko mi je poznato, svn export mora u lokalni dir. Možda može da se mountuje remote fs. Što se tiče delimičnog uploada, ako ne radiš upload pri svakoj promeni repozitorija, kako znaš koje izmene hoćeš da uploaduješ? |
Pa nije baš tako jednostavno. SVN je na jednom serveru, a document root na drugom pa ne može neki jednostavna script tipa "export u /home/site/html/".
Drugo, kada se commituje SVN, nas nekoliko radi na istom kodu, i onda umesto da uploadujemo na live site, prvo uploadujemo na test site, pa tek posle testiranja radimo upload na live. Moja ideja je da imam nešto što može recimo da odradi: Sve novije od revizije 834 i novije uploaduj na FTP username - password - domain ... Verovatno mnogo tražim, ali sa tim bi ovo bio kick-ass tool. |
nema :(
Bar ne da ja znam... najbliza varijanta je hook... |
pa chek, imash shell?
zasto ne uradis export u lokalni tmp dir i isti uploadujes FTP-om (ili scp, sta god) t.j. 2 posebne akcije, koje startujesh jednostavnim: #golive.sh --revision=2341 |
Jel možeš da mountuješ udaljeni FTP folder i uradiš svn export kao da je lokalni u pitanju?
I malo glupo pitanje, ali pretpostavljam da na tom sajtu nemaš šel pristup i SVN? ;) PS. sad videh da je nn pitao isto ovo prvo... BTW, mislim da svn export (za razliku od update) ne radi inkrementalno, već uvek prevlači celo stablo, tako da ne bi imao nikakve koristi ni da može. |
(evo zasto cuvam hints.txt file :) )
pokupljeno s neta nekad davno Kôd:
for i in $(svn diff --summarize -r 1403:1438 http://server/svn/project/trunk | |
Gorane overi http://beanstalkapp.com/ koji ti omogućava to što tražiš. Mi smo ih koristili dok nismo prešli na Git.
|
Ima PHP verzija rubijevog Capistrano deployment alata, ali nisam probao. Mada planiram da cim nadjem malo vremena ispitam varijante.
http://code.google.com/p/fredistrano/ |
Citat:
Šta je git? |
distribuirani version control. overi http://git-scm.com/
|
Ako imas dedicated web server (ili bar shell acc), onda stvarno ne vidim problem... ja sam uradio takvu skriptu za par sati.
lepo instaliras svn na taj server, napravis jedan folder da apache moz' da piskara u njega, i onda teras exec('svn export url/do/svna /path/na/www') da server lepo prevuce s drugog, izbegavas svoju (sporu) konekciju tako, serveri odradjuju posao sami.... a onda kad vec mozes svn export, krenuces da se zezas i sa svn log, pa ces za par minuta poceti da parsujes i xml logove, i onda ce ti biti jos zanimljivije, sa revision range i glupostima... sky is the limit. posle samo copy radi u public_html ili gdegod. meni ide u zipove :1094: Edit: ako neces da se zezas sa permisama, mozes php skriptu da stavis iza HTTPauth i lepo koristis te vrednosti za autentikaciju na svn (sa dummy log call ili nesto)... ko nema svn nalog, nece moci da tera dalje, blablabla |
Ако озбиљно узимаш предлоге за прелазак на git, проучи најпре и друге дистрибуиране системе; наводно су неки од њих лакши за коришћење и сетап: http://en.wikipedia.org/wiki/List_of...tributed_model
|
@srdjevic: mislim si propustio da primetiš da svn nije na istom serveru na kojem je i document root. Šta više, koristimo jedan repository na jednom serveru za sve projekte koji su na bar 4 različita servera. Pored toga, ni na jednom serveru nemam shell access.
|
ok, ako nemas shell da podesis to, onda prica pada u vodu...
ali... mislim da si ti propustio da primetis da postoji razlika izmedju svn klijenta i svn servera. ja pricam on instalaciji klijenta na web serveru... pa ni tvoja kucna masina nema na sebi svn server pa opet lepo prevlaci... :P jer imas svn(.exe na win) i lepo radis komande tipa svn up, svn commit, svn log i sve to i sam (ili tortoise/whatever radi to za tebe u pozadini)... dakle, svn(.exe), ne svnadmin. on onda lepo radi isto sto i tvoj kucni komp. moj jedan komp u intranetu cak radi i komite kad radi nove verzije (auto changelog generisanje i gluposti) tako da znam o cemu pricam, veruj mi na rec. |
ja jos uvek ne shvatam gde je problem :)
svn exportuje u lokalni tmp dir (stavio sam kod) i odatle se preko shell-a ftp-uje do www servera to sve ide na dev server sto se tice git-a svi ga nesto forsiraju, koliko shvatam dobar je za projekte hde radi bas puno ljudi, nemas glavni repository, nego je to sve distributed meni licno je jos i stari CVS radio posao kao i sad SVN, pa git koristim samo da pull-ujem neke open source projekte i to je to edit: sad videh "ni na jednom serveru nemam shell" ako to vazi i za dev server onda ne razumem sta bi radio inace? svn export odakle, kome |
Citat:
Što se tiče FTP-a, to možda i nije najbolja strategija za deployment (naravno, zavisi i od toga šta je na raspolaganju). Čini mi se da bi se tu već pominjani Capistrano bolje pokazao (ali traži shell i ssh). Npr, možeš da uradiš i rollback, ako nešto pođe naopačke. Rešenje je jednostavno, imaš releases direktorij u kome se nalaze nekoliko poslednjih verzija aplikacije, dok je DocumentsRoot simlinkovan na poslednji release. Ako se zezneš, ima komanda koja remote obriše stari simlink i napravi novi. Usput, još jedna dobro rešenje koje se često koristi kod deploymenta sa Capistranom - napraviš shared folder, pa pri novom releasu simlinkuješ šta treba i ne brineš o tome da će nova verzija aplikacije da obriše nešto što je potrebno/zajedničko za sve verzije. |
Bedak sto nema shell, ja koristim rsync i prostu deploy skriptu, ako imam shell ni ne dizem ftp server. Prednosti valjda ne treba da navodim. :)
|
Citat:
Meni je recimo super kod Gita što je on kompletno u jednom diru u rootu projekta, nasuprot SVNu koji ti zagadi kompletnu dir strukturu projekta sa .svn folderima. Takođe merge na Gitu radi gotovo magično, ja stvarno ne znam kako, ali radi kao zmaj. Takođe open source repo poput GitHuba čini da imaš gomile softvera i parčića koda koje vrlo lako updateuješ ukoliko to radiš putem Gita, itd. |
@Dragan Procitao sam navedeni tekst pre par dana ali ne znam koliko je objektivan s'obzirom da je autor Scott Chacon is a Git evangelist :) U svakom slucaju, ja koristim i Git i SVN ali mislim da u cu uskoro kompletno preci na Git.
|
ja obicno radim ovako kako @srdjevic kaze, na serveru na kom zelis da radis testiranje instaliras svn klijent, i onda uradis checkout direktno u web-root virtuelnog hosta (samo namestis .htaccess da zabranis pristup .svn fajlovima). Svaki sledeci put kad treba testirati kod pre objavljivanja, samo uradis svn update da povuces zeljenu reviziju i odmah moze da krene testiranje. Ako nemas shell, moze da se napise php skripta koja poziva svn...
|
Hvala Dragane, to sam odavno tražio, i meni žestoko ide na živce to što mi svn "zagađuje" strukturu svojim stvarima, godinama mi je baš to (i skoro isključivo to) smetalo da počnem da koristim SVN. Sad ću da pogledam to pa da vidim šta da radim.
|
Ako želite da jednostavno uklonite sve .svn foldere ispod nekog foldera, evo rešenja (za Win): sačuvajte ovo u tekst fajlu sa .reg ekstenzijom i onda poterajte.. Nakon toga kada uradite desni klik na neki folder odaberite opciju "Delete SVN Folders".
Kôd:
Windows Registry Editor Version 5.00 |
Radi kao zmaj... hvala.
Pre brisanja .svn bilo je: 2347 files i 872 folders, 16,3 MB Posle brisanja .svn ostaje: 825 files i 96 folders, 8,04 MB Što je mnogo - mnogo je. Eto zašto sam se toliko opirao SVN-u. Možda iracionalno jer je stvarno dobar alat za timski rad, ali mislim da su ovo mogli drugačije da reše. |
linux varijanta ovog za brisanje:
find . -name '.svn' -exec rm -rf {} \; |
Citat:
Kôd:
$ svn co https://metasploit.com/svn/framework3/trunk/ metasploit E, da, ako koristiš TortoiseSVN, postoji i TortoiseGit. Čak i ako si odlučio da ostaneš na Subversionu, Git definitivno ne bi trebalo gubiti iz vidokruga. :) |
Evo još jedan fazon za uklanjanje .svn foldera, bez po muke: jednostavno uradite export.. u isti folder :) I to je to.
Znači, desni klik na folder->TortoiseSVN->Export.. pa pokažite na isti taj folder i pojavi se i obaveštenje da će "working copy" biti "unversioned" :) |
Citat:
http://code.google.com/p/msysgit/ Mnogi sa kojima sam pricao su se razocarali u tortorisegit, pa im je ovo spas. |
Dobar uvodni tutorial za git: http://net.tutsplus.com/tutorials/ot...trol-with-git/
Ja koristim iskljucivo git na dva veca projekta, i mogu da kazem da sam jako zadovoljan. Workflow koji omogucava (to lako branche-ovanje i merge-ovanje) ga ipak stavlja nivo iznad svn-a. |
Vreme je GMT +2. Trenutno vreme je 00:40. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.