DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web Hosting, web serveri i operativni sistemi (http://www.devprotalk.com/forumdisplay.php?f=11)
-   -   SVN export na FTP (http://www.devprotalk.com/showthread.php?t=7867)

bluesman 15. 09. 2009. 01:22

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?

LiquidBrain 15. 09. 2009. 01:42

http://blog.betabong.com/2008/08/14/...upload-to-ftp/

jel to?

robi-bobi 15. 09. 2009. 11:27

Off Topic: ja tek skoro naucih za svn hooks - strava stvar

bluesman 15. 09. 2009. 12:31

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.

nn.nn 15. 09. 2009. 16:48

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š?

bluesman 15. 09. 2009. 17:32

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.

LiquidBrain 15. 09. 2009. 18:04

nema :(

Bar ne da ja znam... najbliza varijanta je hook...

robi-bobi 15. 09. 2009. 18:25

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

jablan 15. 09. 2009. 18:28

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.

robi-bobi 15. 09. 2009. 18:37

(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 |
awk '{ print $2 }'); do p=$(echo $i | sed -e 's{http://server/svn/project/trunk/{{');
mkdir -p $(dirname $p); svn export $i $p; done


Dragan Babić 15. 09. 2009. 18:58

Gorane overi http://beanstalkapp.com/ koji ti omogućava to što tražiš. Mi smo ih koristili dok nismo prešli na Git.

zira 15. 09. 2009. 19:02

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/

bluesman 15. 09. 2009. 19:26

Citat:

Originalno napisao Dragan Babić (Napišite 73231)
Gorane overi http://beanstalkapp.com/ koji ti omogućava to što tražiš. Mi smo ih koristili dok nismo prešli na Git.

Uh, izgleda ok, ali nešto nisam za "još jedan servis", već mi je muka i ovo što do sada koristim, ima dana kada jednostavno i ne stignem da overim sve. Da ne govorimo kolika nam je lista url-ova, username-ova i passworda.

Šta je git?

xippi 15. 09. 2009. 19:46

distribuirani version control. overi http://git-scm.com/

srdjevic 15. 09. 2009. 20:13

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

Dragi Tata 15. 09. 2009. 20:35

Ако озбиљно узимаш предлоге за прелазак на git, проучи најпре и друге дистрибуиране системе; наводно су неки од њих лакши за коришћење и сетап: http://en.wikipedia.org/wiki/List_of...tributed_model

bluesman 15. 09. 2009. 21:48

@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.

srdjevic 15. 09. 2009. 22:04

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.

robi-bobi 15. 09. 2009. 22:46

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

nn.nn 15. 09. 2009. 23:22

Citat:

Originalno napisao bluesman (Napišite 73223)
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.

Mnogo ili ne, proof-of-concept je ovde. Nije PHP, ali verujem da će biti jasno. Bilo bi još i jednostavnije ako prethodno uradiš svn export (pozivom iz skripte).

Š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.

kodi 16. 09. 2009. 04:02

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. :)

Dragan Babić 16. 09. 2009. 08:15

Citat:

Originalno napisao bluesman (Napišite 73233)
Šta je git?

Pogledaj ovaj link, frišak je: http://carsonified.com/blog/web-apps...ersion-to-git/

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.

jasmanac 16. 09. 2009. 09:57

@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.

ivanhoe 16. 09. 2009. 11:02

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...

bluesman 16. 09. 2009. 11:22

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.

degojs 17. 09. 2009. 06:45

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""


bluesman 17. 09. 2009. 13:11

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.

ivanhoe 17. 09. 2009. 13:39

linux varijanta ovog za brisanje:
find . -name '.svn' -exec rm -rf {} \;

nn.nn 17. 09. 2009. 14:36

Citat:

Originalno napisao bluesman (Napišite 73318)
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.

Onda će ti se dopasti poređenje:

Kôd:

$ svn co https://metasploit.com/svn/framework3/trunk/ metasploit
$ du -hs metasploit
150M    metasploit
$ git svn clone https://metasploit.com/svn/framework3/trunk/ metasploit
$ du -hs metasploit
97M    metasploit

Pri tome, git kopija repozitorija sadrži celu istoriju, a svn lokalno samo working directory (svn export ostavlja 56 MB). Koliko znam, komanda git-svn ti omogućava i da lokalno koristiš git, a da nastaviš da komituješ u centralni svn repozitorij na serveru.

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. :)

degojs 18. 09. 2009. 01:43

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" :)

mbabuskov 19. 10. 2009. 20:06

Citat:

Originalno napisao nn.nn (Napišite 73322)
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. :)

U svakom slucaju preporucujem da se isproba git-gui i gitk koji dolaze uz msysgit:

http://code.google.com/p/msysgit/

Mnogi sa kojima sam pricao su se razocarali u tortorisegit, pa im je ovo spas.

Bojan Zivanovic 29. 10. 2009. 13:44

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.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.