Newsgroup: it.lavoro.professioni.webmaster
Titolo: cvs per progetto in asp

Ciao,
probabilmente non scrivo una cosa del tutto in tema a questo ng però 
confido nella vostra esperienza per risolvere un problema.
la situazione è la seguente:
devo coordinare il lavoro di alcuni programmatori (team di sviluppo, in 
asp) che stanno all'estero e che lavorano su un server loro con altri 
sviluppatori che stanno in italia e che lavorano sulla parte di sito in 
produzione.
Per gestire meglio le cose avevo pensato di mettere su un sistema di 
CVS però non so bene come fare e quali strumenti usare (solitamente ho 
sempre gestito tutto su linux e con eclipse ma sono ignorante in 
materia di asp, non so se esistono tool gratuiti nè come si usano e che 
cosa richiedono)
Quindi:
quali strumenti software mi potreste consigliare? (meglio a costo zero) 
e quale soluzione hardware è necessaria? (tipo, un host intermedio su 
cui far girare il cvs? ...?)
Grazie,
ciao
-- 
Giacomo
  np: (Foobar is not active ;-)

 in materia di asp, non so se esistono tool gratuiti
Il CVS non dipende mica dal contenuto dei file che metti nel repository, 
puoi usare quello che vuoi svn/git/cvs e trovi anche dei server già 
pronti tipo github o Google Code.

 pronti tipo github o Google Code.
ok, immaginavo ma... per loro che usano asp, c'è un tool che posso 
consigliare che sia integrato con visual studio?
per me che non uso asp ma che dovrei fare da supervisore, posso usare 
un cvs qualsiasi integrato tipo CVSNT?
quant a github o google code, ci si può .. "fidare"?
dare in pasto a terzi tutto il sorgente di un progetto... mmm :-/


 cui far girare il cvs? ...?)
Ti serve un server dove installare, appunto, il server CVS, e devi 
configurarlo perche` gli utenti abbiano accesso solo tramite login e 
password, disabilitando l'anonymous (altrimenti chiunque ti scarica il 
codice).
Sui client puoi usare un qualsiasi client CVS (e` un protocollo standard). 
Quindi per Linux direttamente cvs da commandline, o quelli integrati in 
Eclipse, Netbeans, Anjuta, Gedit, ecc.
Sotto Windows io faccio usare WinCVS, e mi pare ci sia anche una versione 
per Mac. Non conosco niente di integrato con Visual Studio.
Ah, se vuoi un consiglio visto che parti da zero, piuttosto che CVS usa 
Subversion.
Secondo me GIT, Mercurial e sistemi distribuiti vari sono troppo 
complicati per "non programmatori" (io faccio usare CVS anche ai grafici e 
agli htmlisti, e gia` fanno fatica cosi`...)
Bye.

 Subversion.
interessante
penso che opterò per questa soluzione
ora cerco di documentarmi..
grazie
ciao :)


 
Non sono d'accordo.
La UI di Mercurial è progettata molto bene, e su Windows è anche 
disponibile TortoiseHg.
Io ormai uso Mercurial anche per progetti strettamente personali, dove ha 
diverse funzionalità interessanti che mancano a Subversion.
Se devi collaborare con molte persone, ci sono complicazione intrinseche 
nel gestire il workflow.
Ciao  Manlio

 dare in pasto a terzi tutto il sorgente di un progetto... mmm :-/
Come professionalità mi fido più di loro che del repository che ho in 
locale sul mio computer. Per quanto riguarda problemi di sicurezza mi 
sembra che i repository GCode si possano proteggere con password, devi 
vedere se svn va anche su SSL, mi pare di sì ma non sono sicuro.

 vedere se svn va anche su SSL, mi pare di sì ma non sono sicuro.
ok, devo informarmi.
Grazie!


 agli htmlisti, e gia` fanno fatica cosi`...)
Sono d'accordo con Manlio. Una volta che provi (e capisci) Mercurial (o 
git, monotone, bazaar, insomma i repository "distribuiti") tutto il 
resto ti sembra un giocattolo.
Mercurial lo puoi usare anche come useresti un cvs standard ma poi a 
seconda delle esigenze di sviluppo puoi crearti cloni locali del 
repository, repository di staging, e fare test o con le classiche branch 
o usando le mqueue...
Con cvs avevo problemi (anche per l'uso di porte non standard). Ora con 
mercurial ho un sito (linux con apache) protetto da password con tutti i 
miei repository accessibili da tutto il mondo via http/https.
Francesco

 [...]
Ciao

 Ora ad ogni modifica che devo committare faccio:
Più o meno lo stesso processo che faccio io.
Quello che mi rimane difficile nei progetti web è organizzare al meglio 
il lavoro. Esempio: progetto che unisce apache, php, mysql e svariati 
file su file system.
Non è possibile duplicare la struttura in locale sulle macchine quindi 
abbiamo sviluppato in due persone, in remoto (vi) SULLO STESSO ALBERO di 
sviluppo (sul server ci sono 3 ambienti, sviluppo test e produzione)
Volendo fare una prova di sviluppo parallelo l'ideale sarebbe un clone 
che poi posso buttare o se accettato fare il merge. Ma fare un clone 
implica che devi creare un "altro sito" su apache..... quindi modificare 
il dns o lavorare su hosts, modificare i puntamenti all'albero delle 
dir... probabilmente è più lungo a scriverlo che a farlo...
Un qnew sarebbe meglio ma in questo specifico caso (una sola "sandbox") 
avremmo dovuto lavorare entrambi su questo nuovo sviluppo....
O mi è sfuggito qualcosa ?
Francesco

 dir... probabilmente è più lungo a scriverlo che a farlo...
Io (con CVS) ho il server CVS sullo stesso server di test. A qualsiasi 
commit, in automatico tramite loginfo, faccio un update nella directory 
corrispondente al virtualhost di test.
Non ho ancora trovato un metodo altrettanto "automatico" in subversion per 
richiamare un comando ad ogni commit, ma svn lo uso solo per progetti 
personali, visto che ormai in azienda siamo stabilizzati su CVS, quindi mi 
arrangio a mano.
Sul server di test non ho configurato un vhost per ogni sito, ma scrivo il 
codice in modo che funzioni sia nella webroot che in una sottocartella, 
quindi per i test avro`
http://servertest/www.example.com/.
..
Quando il sito in test e` pronto, lo pubblico manualmente sul server in 
produzione, sempre tramite cvs (checkout o update), e li` c'e` il vhost 
http://www.example.com
Visto che sono praticamente il solo sviluppatore, il processo produttivo 
segue la fase: prototipo grafico->html->programmazione serverside->test
In questo modo il grafico e l'htmlista non devono avere un ambiente web 
completo in locale, e provano le modifiche direttamente sul server di test 
(facendo commit), mentre io ho un ambiente web locale su cui sviluppo, e 
pubblico in test (faccio commit) quando ho una "unita`" completa.
Bye.

 [...]
Ciao

 pubblico in test (faccio commit) quando ho una "unita`" completa.
1bis) ok, non avevo letto bene e quindi hai risposto alla 1)... hai in 
locale un ambiente..
In questo tuo specifico workflow cvs va benissimo (ma cvs è causa o 
effetto ???). non hai citato una cosa, prima di fare il commit devi fare 
un update, se no ti dovrebbe rifiutare il commit. In mercurial hai una 
copia in locale del repository, dove fai i commit, e quando pronto puoi 
fare il push verso il repository remoto. Anche qui devi prima fare 
l'update ma volendo (e sapendo quello che andrai a combinare) puoi 
forzare il  push creando automaticamente un branch di cui potrai fare il 
merge dopo.
La comodità di Mercurial è che tu potresti mettere il repository su un 
portatile, andartene a lavorare dove vuoi, COMMITTARE in locale per 
mantenere il presupposto 1 commit -> 1 feature/bug, poi quando sei di 
nuovo connesso alla rete, procedere al push verso il repository.
Francesco

 [...]
Ciao  Manlio

 merge dopo.
Spero di non aver dato l'impressione di disprezzare i sistemi distribuiti. 
Non li ho ancora studiati a fondo, ma l'idea in generale mi piace.
Il mio problema e` che i miei utenti hanno gia` difficolta` a capire cosa 
fare quando un commit di un file binario gli genera un conflitto.
Non ci provo (o meglio, ci ho provato una volta) a spiegargli cosa sia un 
branch... :/
Ora come ora devo risolvere io tutti i conflitti. Mi mandano i file 
modificati per email e io faccio update/copy/commit. :(
Per questo dicevo che per non programmatori puo` essere complicato.
 
Bye.

 Per questo dicevo che per non programmatori puo` essere complicato.
Si, è vero.
Ci sono diversi scenari d'uso in cui Mercurial fa cose che cvs non può 
fare.... ma esula dall'ambito "webmaster"
Ciao,
Francesco

 così cambi la configurazione a seconda se sei in locale o in produzione.
Si, questo è normale.
Come detto in altro post ho necessità di puntare a delle directory di 
scambio dati con i "produttori" e devo quindi modificare i file di 
configurazione.
In pratica se faccio un "hg clone sito sito-2" devo poi editare alcuni 
altri file. Potrei mettere il comando all'interno di uno script che 
oltre al clone mi crei questa directory di scambio dati (che deve essere 
sotto un altro albero) e mi modifichi i file come necessario..
Niente di particolare o di non realizzabile, probabilmente non c'è stato 
veramente bisogno di questa cosa.
Un problema, ma è colpa nostra, l'abbiamo avuto quando a metà dello 
sviluppo della feature A ci hanno chiesto di sviluppare ed entrare in 
produzione con la feature B; poiché il mio collega (non pratico di vcs) 
non avevao seguito il giusto workflow per le piccole patch rilasciate ci 
siamo trovati senza l'aiuto di Mercurial, che ci avrebbe fatto molto 
comodo, e abbiamo dovuto fare branch/merge a manina.
Francesco

 vedere se svn va anche su SSL, mi pare di sÃ¬ ma non sono sicuro.
Github ha progetti privati.
Io ci tengo qualche milione di euro di sorgenti, mi fido abbastanza (ma bevo 
molto, che sia ben chiaro).
  ngw
-- 
Nicholas Wieland, Zooppa, CTO
H-Farm, 420 Maritime Building,
911 Western Ave, 98104, Seattle, W
http://www.zooppa.com
http://www.nofeed.org

):

Ma proprio per niente.
Tra CVS e Subversion non so quale sia il peggiore, a performance e a 
stabilita'. In subversion branchare e taggare e' di una inutilita' clamorosa, 
visto che poi e' quasi impossibile fare un grosso merge (a meno che non si 
perdano letteralmente giorni).
Io ho usato sia git che mercurial, ed e' una bella lotta. Subversion no, non 
vedo perche' usare qualcosa di cosi' inferiore quando ci sono alternative 
ottime e gratuite.


 ottime e gratuite.
Quello che leggevo di git è che ha una interfaccia molto frammentata per 
l'utente, cioè è una raccolta di pezzi che lavorano in modo indipentente 
e questo è visto come più difficile rispetto ad una interfaccia omogenea 
come subversion.
Di fatto io non l'ho mai usato ma se non ricordo male nello stesso sito 
di git c'è una pagina "Git Subversion comparison" o qualcosa di simile 
che si propone una analisi obiettiva, forse è sul wiki.
Saltando di palo in frasca vedo che quando riporti il mio messaggio le 
accentate vengono male perché io ho postato in UTF-8 e tu hai risposto 
iin Latin9, ma il tuo newsreader cambia effettivamente la codifica o ho 
problemi io a leggere Latin9?

 molto, che sia ben chiaro).
Cin cin!

 problemi io a leggere Latin9?
Il mio newsreader e' una merda totale, si.
Git e' un programma per Unix, e ne segue la filosofia. Io lo uso per github, 
ma quando lo devo usare io vado di linea di comando.


 alternative ottime e gratuite.
Perche` ci sono utenti a cui non serve la potenza di git e mercurial, e 
gli basta un "log" delle modifiche con possibilita` di ripristinarle (cosa 
che faccio io perche` nessun'altro e` capace) e una gestione centralizzata 
dei progetti.
Bye.

 CUT
Dovrebbe essere tornato tutto normale.
  ngw
-- 
Nicholas Wieland (ngw)
Zooppa CTO
911 Western Avenue, Suite 420
Seattle, WA  98104  USA

 "release_1_0" o qualcosa del genere, poi svuoto tutto e ripartiamo da zero.
Allora non ti serve a nulla. Voglio dire, anche con una cosa come
capistrano potresti fare 3 trucchetti per avere lo stesso risultato.
Io parlo di controllo di versioni, ovvero tracking di chi fa cosa,
branch del sorgente che va poi mergiato indietro, cherry-picking dei
commit da un branch all'altro ecc.


 un branch all'altro ecc.
A me serviva qualcosa di multipiattaforma (quindi niente roba 
proprietaria MS o Apple), con inferfaccia grafica per Windows e OSX, 
semplice da usare e solo per poter recuperare versioni precedenti del 
materiale, e per sapere chi le ha committate.
CVS lo sapevano vagamente usare e ho tenuto quello.
Ah, quando facciamo i colloqui non mi e` ancora mai capitato nessuno che 
li sapesse usare, i software di controllo versione.
Mi devo adattare a quello che ho o che posso avere.
Bye.

, plugin per Finder.

 interfaccia simile, figurarsi a qualcosa di totalmente diverso.
Alessandro, come ti capisco ! Anche fra i programmatori esperti la 
diffusione di strumenti di versioning è bassa. Quando gliene parli 
cadono dalle nuvole !
Francesco
PS: riallacciandomi ad un thread di qualche giorno nel quale si 
sosteneva che un professore in quanto professore aveva l'obbligo morale 
e materiale di imparare ad usare un cms, penso che tu possa obbligare 
grafici e programmatori ad usare, anzi, ad imparare a menadito, l'uso di 
cvs !
E se non lo imparano, li devi licenziare perché sfaticati !

 E se non lo imparano, li devi licenziare perché sfaticati !
Boh, a me sembrano davvero 3 comandi. Non riesco a vedere tutta questa
difficoltà, nemmeno da scomodare la parola "imparare" onestamente.
  ngw
-- 
Nicholas Wieland (ngw)
Zooppa CTO
911 Western Avenue, Suite 420
Seattle, WA  98104  USA
http://www.zooppa.com
http://www.nofeed.org

 
Credo sia proprio questione di "forma mentis".
Ciao  Manlio

 Credo sia proprio questione di "forma mentis".
Sia chiaro che la mia era una provocazione...