Autor Zpráva
danhill
Profil
Ahoj,
s Netbeans se zatím stále ještě seznamuji.
Ten program se mi ale líbí a pokud to bude možné, rád bych na něj přešel z Notepad++, který mi již přestává stačit.
Ikdyž je Notepad++ výborný nastroj, u větších projektů mi mnoho věcí již chybí.
Netbeans chci používat pro PHP jako hlavní program.
Je několik věcí, které mi ale zatím unikají.
Ta hlavní je, jak oboustranně propojit Netbeans s již existujícím webem.
Tedy abych byl přesnější, založit projekt, nastavit FTP a stáhnout soubory a složky dokážu.
K práci využívám tři počítače (doma,práce,ntb), tomu bych ale taky rozuměl, projekty mám na dropboxu a tedy jsou všude stejné soubory.
Bohužel jsem nepřišel na to jak rychle v netbeans synchronizovat ostrý web se soubory v projetu a zda je to opravdu nutné, mít je zdvojeně.
Netbeans při synchronizaci projektu pracuje strašně dlouho.
Porovnává jednotlivě soubor po souboru, pak mi vyhodí, co je jinak a pak ještě jednou tak dlouho vybrané soubory synchronizuje.
Vím, že mohu synchronizovat pouze soubory, které se změnily, ale to není snadné si to pamatovat, ikdyž je to mnohem rychlejší, není to pohodlné.
Hlavní problém ale je, pokud někdo, nebo něco změní soubor na webu jinak než jedním z mých tří nainstalovaných netbeansů.
Typickým příkladem může být třeba soubor, kde samotné php mění hodnoty (např. log soubory), nebo spolupráce - kde kolega má projekty na svém droboxu, nebo nouzová editace editorem z telefonu ... atd.
Tedy zapíše li php nový řádek do log souboru dojde k tomu, že na ostrém webu mám novější soubor než v projektu na dropboxu.
Když pak zapnu Netbeans, samozřejmě mi mi otevře již neaktuální soubor a vůbec ho nezajímá, že na webu je již zcela jiný soubor, nebo klidně i už tam vůbec není.
Můj dotaz tedy zní, jak se tohle řeší? Nejde třeba s Netbeansem pracovat podobně jako s Notepadem++ v kombinaci s NppFTP? Zapnu, připojím se na web a edituji rovnou ostré soubory?
Moc děkuji za radu.
TomášK
Profil
Bez ohledu na to, co používáš za editor: to, co hledáš je nástroj pro správu verzí, nepopulárnější je git. Návodů je spoustu, najdi si je a nauč se ho používat. A pokud FTP chceš pokud možno nahradit za SSH, vyvíjet na lokálním nebo virtuálníĺ serveru a ne na vzdáleném ostřem.
danhill
Profil
No jasně,ale stále mi nějak uniká synchronizace webhosting -> git ...
Existuje nějaký způsob, kdy někdo, nebo něco změní soubor na webu, aby se mi automaticky obnovil i soubor v repozitáři aniž bych to dělal ručně?
Keeehi
Profil
danhill:
Funguje to přesně opačně. Když provdeš změnu v repozitáři a nahraješ to někam (github, gitlab, bitbucket, ...) tak server/webhosting je o tom automaticky notifikován, stáhne si novou verzi repozitáře, sestaví z toho aplikaci/web a tu publikuje. Všechno, i rychlé opravy, se musejí dělat tímto způsobem a přímo na serveru se nikdy nic neupravuje.
Problém tohoto celého přístupu je, že automatické stažení nové verze repozitáře na webhostingu není jednoduchá záležitost. Proto je lepší mít na to vlastní server, který tě ničím nelimituje.
danhill
Profil
Keeehi:

Nooo - děkuji - tohle zní logicky a použitelně a takhle by se mi to libilo.
Jen dvě otázky.
1. mám hostingy u C4 - je to dotaz asi na ně, nebo na další hledání na netu, ale nevíte z hlavy, zda je reálné se tím zabývat, tedy zda je možné tohle u nich zprovoznit?
2. tohle ale stejně pořád neřeší upload hosting -> git , protože právě zmíněné soubory a složky, které se mění na straně serveru - tedy logy, htaccess (automatická blokace ip adres), složky s fotkami, přílohy zpráv atd. se prostě zpětně na git nedostanou a jestli dobře rozumím, tak se to ani tímto způsobem nezálohuje/neřeší?
Keeehi
Profil
2) Ano, tyto nové, na serveru vytvořené soubory a data zůstávají na serveru a do gitu se nedostanou. A tak je to správně. Git slouží na správu zdrojových souborů aplikace. To jsou ty, které na začátku nahráváš na server, které určují chování aplikace a bez kterých by aplikace nemohla fungovat. Data (záznamy v databázi, logy, uživateli nahrané soubory) jsou sice důležitá (tvoří obsah aplikace) ale i kdyby se náhodou smazala, funkčnost aplikace to nijak neovlivní. Uživatelé by je teoreticky mohli vytvořit znovu. Taková data do repozitáře nepatří. Nejde o to, že by byla nějak podřadná ale rozdělení co do repozitáře patří a co ne je zrovna stejné s původcem daných dat.

Pokud ti jde o zálohu dat vytvořených používáním aplikace nebo vytvořených uživateli, tak to je zase jiný proces. Je potřeba ho dělat, ale nemá téměř nic společného s nasazováním nové verze aplikace.
Poznámka bokem: Git se nebere jako zálohování zdrojových kódu. Ono to sice k tomu celkem svádí, jelikož jeden repozitář bývá typicky duplikovaný na více místech a v případě ztráty se dá vzít jeho kopie odjinud. Ovšem správný proces zálohování by měl mít nastavená nějaká pravidla a procesy. Což zde chybí, takže se to oficiálně za zálohu považovat nedá, i když ve spouště případech to člověka zahrání v situaci kde by neměl ani to.
danhill
Profil
Děkuji za odpověď ... Máš pravdu, že ty logy a obrázky atp. lze asi oželet.
Mě nejde ani tak o zálohy ... Ty dělá C4 automaticky každý den a celého webu včetně databází a zase nejsem takový střelec abych dělal zásadní změny bez aktuálních záloh ...
Mě jde spíše o to, že chci používat různé IDE,různé lidi na různých php projektech a chci mít vždy aktuální web nezávisle na tom kdo (pověřená osoba samozřejmě) nebo čím tu změnu provede.

Z C4 mi odpověděli, že zatím jejich hosting na git napojit nejde,ale že již delší dobu na tom pracují a je to údajně otázkou pár týdnů,kdy mají takovou službu spustit pro veřejnost.
Což by bylo super, tak uvidíme ... Prostě základ je tedy asi hlavně v tom, že když jakkoli změním repozitář, updatne se web a když pak kdekoli pustím netbeans,napojí se na repozítář,stáhne změny a budu v něm mít aktuální data.

Zatím používám dropbox - není to dokonalé,samozřejmě. A je to zdlouhavé - jak píšu v prvním příspěvku, při aktualizaci se kontroluje soubor po souboru a to je strašně nepraktické.
TomášK
Profil
Podpora hostingu je fajn, ale není nutná. Pokud není, dá se použít nějaký nástroj, který vezme kód z repozitáře a nahraje ho na server. Jestli máš SSH+python, tak třeba github.com/ansistrano/deploy, capistranorb.com umělo kdysi i deploy na FTP, nevim, jestil to pořád platí. Typicky chceš při nahrání nové verze provést nějaké skripty - komprese javascriptů, stylů apod. Jestli to je nastavené jako git hook, nebo v nějakém nástroji pro deployment není tak důležité, jde o to, abys dokázal na jedno kliknutí nahrát novou verzi.

Shahování a nahrávání do repozitáře je potřeba dělat ručně, nedělá se to automaticky při startu IDE. Představ si, že máš u sebe nějaké změnené soubory, někdo jiný nahraje novou verzi na server. V tu chvíli určitě nechceš, aby se ti přepsaly tvé lokální změny novou verzí. Git dokáže kontrolovat, jestli jste oba nezměnili stejný soubor a případně řve, že nedokáže změny sloučit.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: