Newsgroup: it.comp.www.php
Titolo: usare git sul nas Synology

Invece di 
https://github.com/
 vorrei usare un git locale.
Mi spiego...
Sul mio nas Synology ho installato Git server, ma non ho capito come 
accedervi.
Ad esempio sia con NetBeans che con PhpStorm, come url del server git 
utilizzo 
https://github.com/io/test.git
 
Ma per collegarmi al mio NAS locale come devo fare?
Impostando 
https://192.168.0.111
 non funziona, perchè sarebbe 
l'indirizzo del normale server web per accedere al mio sito web locale.
Insomma c'è qualcuno che a mai usato il servizio "Git server" di Synology?


Basta usare gugol: il primo risultato con "synology git server" è questo:
http://blog.osdev.org/git/2014/02/13/using-git-on-a-synology-nas.html
 
 
In pratica non hai il browsing, e devi usare ssh per fare il push.
 


l'avevo già visto.
In pratica non si può interfacciare con l'IDE, devo lavorare per forza 
col terminale?

 col terminale?
 
Quale IDE? Se usi TortoiseGit hai i comandi integrati con il desktop di
Windows, altrimenti dipende dall'IDE che adoperi.
Se vuoi avere una interfaccia web come Bitbucket o GitHub devi
attrezzare un webserver ad hoc (non so se il webserver integrato nel
Synology può essere modificato in tal senso).
 

 col terminale?
 
Sempre con gugol: git netbeans plugin
https://netbeans.org/kb/docs/ide/git.html
 
Ancora con gugol: git phpstorm plugin
http://www.jetbrains.com/phpstorm/webhelp/using-git-integration.html
 
 


 
cioè andrebbero ad es. scritti dei file php che a loro volta passano, 
gli appositi comandi git, alla shell (terminale)?


ma questi mi sembra che c'è li ho già installati.
Servono cmq per accedere al git tramite normale interfaccia web, o si 
possono connettere anche tramite terminale ssh?
Mi sembra di no...

 gli appositi comandi git, alla shell (terminale)?
 
Non devi scrivere niente. In ufficio abbiamo un webserver per Mercurial.
Questo webserver è disponibile sul sito di Mercurial, come modulo cgi.
Penso che anche Git abbia una cosa del genere.
Abbiamo usato un server Windows 2008, ma potevo anche usarne uno Linux.
Il modulo permette di esplorare i repository, ma non consente di
'gestirli': bisogna usare altri mezzi (per es. desktop remoto, oppure si
lascia la root dir del webserver come condivisione e la si monta come
disco di rete). Per evitare che il pirla di turno si mettesse a segare
directory "per fare spazio", abbiamo scartato queste soluzioni ed optato
per un aggeggio che si chiama 'SCM-Manager'
(
http://www.scm-manager.org
), che permette di amministrare repository di
vario genere. I due non si integrano al 100% (forse nelle ultime release
di SCM l'integrazione è migliore), ma siccome siamo in due ad usarlo,
non è che ci siano 'sti grossi problemi.
In pratica SCM è un piccolo webserver scritto in java, che gira sulla
porta 8080. Ti connetti, accedi come amministratore e puoi creare repos
di quasi tutti i tipi. Dopo aver creato il repo, dal tuo ambiente lo
cloni e sei a posto.
Sulla porta 80 ci gira invece il webserver di Mercurial, che usa come
webroot la directory dove SCM crea i repository. Quindi di default vedo
i repository di Mercurial, se li voglio amministrare basta che uso la
porta 8080.
E' diverso da usare un webserver dedicato (tipo GitHub, BitBucket, ecc),
ma siamo in due e non vedevo la necessità di fare cose troppo
sofisticate. Fossimo stati in molti con un discreto turnover, avrei
scelto qualcos'altro.
Se si accettano alcune limitazioni pratico/estetiche, si può usare anche
solo SCM-Manager.
 
 
 


Quei plugin servono per fare il commit e tutte le altre operazioni di
RC. Di norma possono usare il filesystem oppure ssh oppure http/https.
L'interfaccia web è solo un plus per "vedere" meglio la storia di un
repository, per fare RC è superflua.
 

 non è che ci siano 'sti grossi problemi.
 
l'ho installato ed ho creato un repository git.
Sembra andar bene; ma i repository dove li salva?
 


Se parli di git, non so.
Se parli di SCM-manager, li salva nella directory che hai impostato in
"Repository Config".
 


 
/home/test/.scm/repositories/svn
 
Naturalmente queste dir si possono backuppare e ripristinare al momento 
del bisogno?
Cioè i repo verrebbero riconosciuti senza fare ulteriori manovre?

 Cioè i repo verrebbero riconosciuti senza fare ulteriori manovre?
 
Git può essere backuppato a piacere, mi sembra che ad SCM devi solo
dirgli di aggiungere repo (SCM salva le descrizioni dei repository in un
suo file XML).
 


 
faccio click su import repositories e poi boh, mi esce questo
http://it.tinypic.com/view.php?pic=5b661d&s=8#.VFkuQoVk_CI
 


 
ok, ma gli ide di solito con quale protocollo si connettono (http, ssh...)?
Io in phpstorm vedo solo questo
http://it.tinypic.com/view.php?pic=oaaivo&s=8#.VFkxCoVk_CI
 


cmq uso git solo da pochi giorni, perdonatemi se faccio domande sciocche :-P

 cmq uso git solo da pochi giorni, perdonatemi se faccio domande sciocche
 
git è un po' complicato da internalizzare (o da internare :P) all'inizio, 
ma quando l'hai capito è un piacere lavorarci.
 
Devi distinguere tra repository e server. Un server contiene repository, 
ma puoi anche avere un repository locale. Ogni progetto ha il suo 
repository (repo per brevità).
 
Premettendo che non l'ho mai usato da Windows e che quindi ti lascio come 
compito per casa capire come adattare quello che ti dirò...
 
Se hai il tuo progetto in locale, diciamo sotto /home/alex/progetti/
miosito, ci entri e inizializzi il repo:
 
cd /home/alex/prgetti/miosito
git init
 
A questo punto hai un repo locale, ci puoi aggiungere file (git add 
nomefile), committare (git commit), "branchare" (git checkout -b 
nuovobranch), saltare da un branch all'altro (git checkout primobranch), 
"mergiare" (git merge branch_da_mergiare), ecc.
 
Il tutto il locale, si arrangia lui a gestire la directory .git che 
contiene il repo vero e proprio.
 
Poi hai i remote (i "server", per dirla così), a cui puoi accedere in 
vari modi. I più comuni sono ssh e http (o https).
 
Puoi avere più di un remote connesso al tuo repo.
 
Solitamente devi creare il remote sul server che dovrà ospitarlo. Ci può 
essere una interfaccia grafica per farlo (come nel caso di github o 
bitbucket, e, presumo, del tuo NAS). Compito di tale interfaccia sarà 
anche dirti l'indirizzo a cui raggiungere quel remote.
 
Diciamo che sia ssh://
192.168.1.254/miosito.git
 
 
A quel punto fai 
 
git remote add nomeremote ssh://
192.168.1.254/miosito.git
 
 
Di solito come nomeremote si usa "origin" per il server principale, ma 
puoi usare quello che vuoi, tipo "nas" o "serverinterno".
 
A questo punto puoi "pushare" o "pullare" dal remote da/verso il tuo repo 
locale:
 
git push nomeremote
 
Manda tutti i commit che hai fatto sul (branch attuale del) repo locale 
verso il repo remoto, mentre
 
git pull nomeremote
 
scarica dal server le modifiche non presenti nel tuo repo locale e fa il 
merge coi tuoi file.
 
Fine del corso intensivo. :)
 
Per il corso intermedio ci sono diversi manuali che spiegano meglio di me.
 
Bye.
 
 

 Per il corso intermedio ci sono diversi manuali che spiegano meglio di me.
 
 
 
Un grazie da parte mia per l'ottimo mini corso su GIT ... salvato:)
 
Bye 
 
 


Non credo che tu sia riuscito ad installare SCM sul Synology (se l'hai
fatto, dimmi come che ho un DS1513+). Spiegami che cosa vuoi ottenere,
che mi sono un poco perso...
 


 
non l'ho installato sul nas (almeno per ora) ma su pc


Se lavori da solo, SCM non ti serve.
Per creare repo basta git da solo.