Newsgroup: it.comp.os.linux.sys
Titolo: Aiuto su GIT

Ciao a tutti!
 
Prima di tutto, una precisazione: io ODIO git. Lo ritengo inutilmente
complicato e assai poco funzionale, ma purtroppo devo utilizzarlo per un
progetto opensource con il quale lavoriamo...
 
Comunque, io questo progetto ho dovuto modificarlo parecchio, nel corso
dei mesi, e ho sempre creato un file .patch che contiene tutte le mie
modifiche.
Questo file l'ho creato con git-patch HEAD > miofile.patch
 
Ora il problema e' che io, da buon deficiente quale sono, ho prontamente
dimenticato di farmi una copia della versione originale del progetto.
E, ovviamente, nei mesi in cui ho sviluppato le mie modifiche, sono state
rilasciate n-mila versioni.
 
Ora, sono piuttosto sicuro che GIT mi permette di riportare la directory
di lavoro allo stato iniziale (quindi come quando io, al tempo, la
prelevai dal repository).
Pero' non sono riuscito assolutamente a capire come. La documentazione non
mi ha aiutato per niente e sto ancora bestemmiando contro questo programma.
 
So che nel Newsgroup ci sono invece parecchi fan di questo programma e
proprio a loro mi rivolgo.
Come posso ottenere la versione "originale" prima delle mie patch?
 
Grazie a tutti!
Luca Bertoncello
(
luca...@lucabert.de
)
 
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 Come posso ottenere la versione "originale" prima delle mie patch?
 
Considera che non sono un grande esperto di git ma con 'log' vedi la 
lista dei commit, vedi l'hash del commit che ti interessa e con 
'checkout <commit>' aggiorni a quell'hash.
Clona il repository prima, just in case.

 Clona il repository prima, just in case.
 
Niente da fare... Con git-log ho visto qual'e' stato l'ultimo commit e
quindi ho lanciato (da una copia della mia directory, ovviamente!)
git-checkout <quell'ID>.
Tutto a posto, nessun errore, ma i files che avevo modificato sono ancora
con le mie modifiche...
 
Altre idee?
 
Grazie


     git checkout -b mybranch 0cb75b
 
Alla fine l'ho risolta con git-reset...
Da un paio di prove sembra avermi riportato la Directory allo stato
iniziale...
 
Ciao


 iniziale...
 
Si, per funzionare funziona, ma chiaramente si mangia tutta la history
dal tuo commit in avanti. Se questo non è un problema, `git reset --hard
<YOURCOMMIT>` fa al caso tuo.
 
Saluti :)


 <YOURCOMMIT>` fa al caso tuo.
 
Si, come ho detto, a me interessa avere la directory nelle stesse
identiche condizioni di quando, mesi fa, cominciai a lavoraci sopra.
Commit non ne ho mai fatti e mai ne faro'. Ho creato un file .patch con le
mie modifiche e questo viene sempre salvato in SVN ad ogni modifica.
 
Ciao e grazie!


 mie modifiche e questo viene sempre salvato in SVN ad ogni modifica.
 
Scusa ma mi sembra che qualcosa di orribile sia in atto, non ti conviene 
piuttosto dare un commit per ogni modifica e farti stampare la patch da 
git-diff? Perché hai il repository git se poi salvi i file in subversion?

Andrea D'Amore ha scritto:
 

1) Io NON ho la possibilita' di fare un commit su GIT, ne' lo voglio fare.
Il progetto NON e' nostro e solo poche persone al mondo, come capita quasi
sempre in progetti opensource, hanno un accesso in scrittura al Server.
2) In ufficio (grazie a Odino e a me che non l'ho installato!) non c'e'
nessun Server GIT, ma solo un server SVN.
3) A me serve proprio un file .patch di TUTTE le modifiche dalla versione
iniziale a quella attuale da noi sviluppata. Se non faccio nessun commit,
con git-diff HEAD ho esattamente quello che mi serve e niente di piu' o di
meno.
4) Nel caso non fossi stato chiaro all'inizio: IO. ODIO. GIT. CON.
FERVORE! E' un programma assurdamente complicato da usare che non da'
nessun vantaggio reale rispetto a SVN o CVS. Nessuno, almeno, del quale
abbia bisogno o del quale abbia avuto notizia.
 
Grazie comunque a tutti per le dritte!


 meno.
 
Con git dovresti dare semplicemente un 'git diff <initial_version_hash> 
HEAD', per comodità dai una etichetta al commit iniziale che ti 
interessa.
Il vantaggio è che hai la storia delle tue modifiche, non dei diff file 
che devi applicare a mano se vuoi andare ad una certa versione ed 
apportare una modifica.
 
 
Non fraintendermi, non sono un evangelista di git. Ho usato abbastanza 
estensivamente svn e poco git, però ne capisco i vantaggi. Da questo 
punto di vista preferisco mercurial perché il lingo è molto simile a 
quello di subversion.

 abbia bisogno o del quale abbia avuto notizia.
 
Concordo senz'altro sul fatto che ti da troppa corda, in vero abbastanza
da impiccarti da solo, anche se alla fine ti servono sempre gli
stessi due o tre comandi.
 
Dalla mia posizione di "fan di git" sento il dovere di spiegare quello
che è, a mio avviso, il vantaggio principale: non è centralizzato. Puoi
fare i commit senza bisogno di essere online, e successivamente fare i
push — la cosa ti permette di costruire una history ben pianificata, e
separare logicamente i vari commit anche se stai lavorando (metti) sul
treno. In aggiunta il sistema di branching/stashing è uno strumento
potente.
 
Esistono comunque alternative egualmente potenti ma più semplici (anche
se meno performanti). Un mio buon amico per esempio usa Mercurial con
profitto. Ho sentito anche parlare bene di Bazaar, anche se non ci ho mai
messo mano.
 
Saluti!


 abbia bisogno o del quale abbia avuto notizia.
 
Io trovo assurdamente complicato gestire un server git.
Qualcosa si risolve con gitolite o gitosis, ma anche loro restano 
macchinosi. Non mi stupisce che github stia facendo man bassa: sono gli 
unici che sono riusciti a rendere semplice la gestione di un server.
 
Bye.
 

 apportare una modifica.
 
Il fatto che a me NON serva avere questa storia delle modifiche in GIT,
oppure il fatto che questo progetto dev'essere compilato su piu' macchine
differenti (e quindi o vai di scp oppure hai un repository) non conta vero?
 
A me serve proprio SOLO quello che ho detto: un file .patch da applicare
alla versione originale che ho in un .tar.bz2 sul Server e su ogni
macchina alla quale devo applicare la patch.
 
Ciao


 abbia bisogno o del quale abbia avuto notizia.
 
Ecco, questo e` il succo del discorso: Git (ma direi un DVCS qualsiasi) non 
ti da nessun vantaggio rispetto a Subversion (CVS, per pieta` sua, 
lasciamolo perdere) in quanto il workflow[1] che permette di gestire non si 
adatta ai tuoi scopi
 
Enrico
[1] e` questa la vera differenza tra un VCS ed un DVCS
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
 
iQEcBAEBAgAGBQJPIJZuAAoJED3SMOGZLYdYPloH+gLiYO+cXLh6DdndPJHX4m3k
VLpEo57LkIH+fBPgl5mAH7MByzRXL5G/hHkKpHBNuntgNm5xVU5hxv+54oJs1n8W
P4AG12M5q/nVjEvKajAdhQCiUBlQg6VMnTkaaDWoUlX5H6ykwtlNyP4EkuArsFF1
J4Wm3Tm8M4OD27d5Bqzsonf3swP85+STngKxFLv6k25ZdJ6vf3xPcCiWUduwLkDK
2GEMDUneuygH3oYfUwHFJMihTCfxDSj/c3IvWydhB1MugmEbIXMsP3S3dmNIwYSi
khOrjhN09Jmn+q5d0CZ1xVi/+oZqh+9/z9CIY2rNWwnL+6G+5UbFYJWxnXsL6O8=
=SSHp
-----END PGP SIGNATURE-----