Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   [Subversion]Cambio hd e ricreazione progetti (https://www.hwupgrade.it/forum/showthread.php?t=2039516)


RaouL_BennetH 01-09-2009 14:42

[Subversion]Cambio hd e ricreazione progetti
 
Ciao a tutti :)

Il disco che avevo di base si è rotto. Ho installato tutto su di un nuovo hd, installato subversion ed ora vorrei riportare i progetti dal mio pc al pc dove risiede la nuova installazione di subversion.

Premetto che l'ip del pc non è cambiato ed ho assegnato alla creazione dei repository gli stessi nomi che c'erano sul vecchio.

Non riesco assolutamente a capire come fare il commit o portare l'intero progetto sotto il nuovo repository.

Mi dareste una mano?

grazie :)

RaouL.

RaouL_BennetH 01-09-2009 14:54

ok, scusate, devo prima fare il dump del repository... un pò come si fa con i db.

Ho trovato qui le info:

http://www.simonecarletti.it/blog/20...ubversion-svn/

magari sono utili a qualcuno.

Ciao :)

fbcyborg 11-01-2010 11:17

Ciao,

cercavo informazioni su subversion ed ho trovato questo post.
Siccome lavoro da molto ad un progetto su Eclipse, in java, ed è diventato abbastanza grande, vorrei fare in modo di utilizzare il server svn che ho appena installato sulla mia Gentoo, per tenere traccia di tutte le revisioni. Credo di avere tutti gli ingredienti, ovvero Eclipse+subeclipse plugin + subversion server, ma non so come fare per trasportare il mio progetto sul server svn.

Mi sapresti aiutare?

Mixmar 11-01-2010 18:34

Devi usare il comando "svn import" se usi il tool da riga di comando, oppure, in Eclipse, "Team -> Condividi Progetto" sul tuo progetto. Non mi ricordo esattamente i nomi, ma dovrebbero essere più o meno quelli.

fbcyborg 11-01-2010 18:43

Ok, il problema è che quando mi chiede l'url del repository non so cosa mettere:


O meglio, quando metto https://localhost/myproject si lamenta del fatto che l'url non è specificato correttamente.
Ho provato anche altre cose, come https://localhost/websvn/myproject ma niente...

Non vorrei che ci sia qualche impostazione da fare sul server.

fbcyborg 11-01-2010 19:47

Finalmente!

Grazie Antonio23!
Ora ha funzionato.

Quindi se accedo da remoto cosa inserisco invece?

Ora che ho condiviso il progetto sull'svn... come funziona per gli aggiornamenti/modifiche del progetto, ecc?

fbcyborg 11-01-2010 20:05

In realtà il server http(s) c'è!

fbcyborg 11-01-2010 20:30

Sì sì! Grazie, il server è già operativo e funzionante! :)

Mixmar 11-01-2010 21:59

Se vi interessa, la stessa cosa si può fare anche con Apache e l'apposito mod. In questo caso, se si vogliono evitare le comunicazioni in chiaro e/o il phishing, si può usarlo in congiunzione con mod_ssl.

Mixmar 11-01-2010 22:03

Quote:

Originariamente inviato da Antonio23 (Messaggio 30410591)
aggiornamenti e modifiche li fai con i comandi di svn, da riga di comando sono checkout (co) per reperire lo stato attuale, commit per..fare commit, revert ecc.ecc... insomma i soliti :P i comandi dei plugin di eclipse sono gli stessi di quelli da riga credo..

Il plugin di eclipse ha un modo secondo me ancora più intuitivo di gestire la cosa, ossia la vista sincronizzazione, che si attiva quando si sceglie "Team -> Sincronizza". Crea una visualizzazione grafica delle modifiche in ingresso, in uscita ed in conflitto, con la possibilità di comparare le versioni remote con quelle locali. Comunque, supporta anche l'uso diretto di comandi come quelli del tool da riga comando, come dice Antonio23.

fbcyborg 12-01-2010 09:31

Infatti!
Il plugin di eclipse è una figata...
Lo sto usando infatti.

fbcyborg 17-01-2010 16:49

Non ho capito bene come funziona la funzione Synchronize...
Dunque, riepilogando, se io lavoro su un progetto e ho fatto delle modifiche ad una revisione:

Se faccio commit, rendo persistenti le modifiche e aggiorno la revisione (ne creo una nuova)
Update, mi scarica l'ultima revisione.
Non capisco Synchronize. In mente ho il concetto di sincronizzazione che di solito si usa per sincronizzare un PDA con il PC quanto a appuntamenti, ecc.. ma qui, la sincronizzazione la vedo come divisa in due funzioni, appunto update e commit.

Potreste farmi chiarezza? Ho cercato nella documentazione ma non trovo una spiegazione esaustiva.

Mixmar 17-01-2010 19:19

La funzione di "synchronize" è in realtà un' "invenzione" del plugin di Eclipse (ma penso che qualcosa di simile esista anche per altri tipi di interfacce per subversion) per visualizzare facilmente i dati. Come hai notato tu, Subversion definisce solo le funzioni di update e di commit.

L'analogia però con la sincronia del PDA non è completa: le differenze nascono considerando che Subversion è nato per la scrittura di software in modo collaborativo, quindi può capitare che le modifiche fatte da due sviluppatori diversi in modo concorrente vadano in conflitto.

Invece quando si aggiorna il PDA col portatile e viceversa, normalmente l'utente è l'unico ad aver modificato i suoi dati, e quando lavora col PDA non lavora col portatile e viceversa.

Se invece uno sviluppatore sviluppa il software, e agisce sullo stesso file di un'altro, facilmente si finirà per modificare le stesse parti, creando così un conflitto, che andra risolto in fase di sincronizzazione.

Senza la funzione di sincronizzazione "dedicata", quello che si dovrebbe fare è verificare gli eventuali conflitti, risolverli (per questo si può usare la funzione merge), aggiornare il contenuto con update e poi "committare" i propri cambiamenti con commit.

Con Eclipse, è molto più facile perchè si possono visualizzare istantaneamente gli elementi in conflitto (icona rossa), da aggiornare (icona blu) e da inviare (icona nera). Si può procedere allo stesso modo, risolvendo il conflitti e poi aggiornando e "committando". Io suggerirei di procedere in questo ordine, per evitare il rischio di sovrascrivere involontariamente modifiche altrui.

fbcyborg 17-01-2010 19:30

Grazie per la preziosa spiegazione :)

Ok, allora approfitto per fare un esempio, che credo (a questo punto) che sia inerente alla questione di sincronizzazione.

Supponiamo che 2 sviluppatori stiano modificando (inconsapevolmente o no) lo stesso file.
Stanno magari lavorando nella stessa funzione e alla riga xx, uno scrive ad esempio (per farla facile):
Codice:

System.out.println("Ciao come stai?");
Mentre l'altro scrive:
Codice:

System.out.println("Ciao come va?");
A questo punto, se vado su sincronizza, cosa succede?
Si genera un "conflitto"?
Lo so forse potrei fare una prova, ma ora sono da solo :)

Mixmar 17-01-2010 21:08

Quote:

Originariamente inviato da fbcyborg (Messaggio 30492130)
Grazie per la preziosa spiegazione :)
A questo punto, se vado su sincronizza, cosa succede?
Si genera un "conflitto"?
Lo so forse potrei fare una prova, ma ora sono da solo :)

Sì, esatto, subversion rileva che la stessa riga è stata modificata da due persone diverse, e ci sono due revisioni in conflitto, e te lo segnala. A questo punto, hai tre scelte:
  1. scaricare la versione che sta sul server, sovrascrivendo la tua
  2. ingnorare la versione che sta sul server, sovrascrivendola con la tua
  3. effettuare un merge, cioè costruire una terza versione che riassume le modifiche di tutte e due, e inviare quella.

In realtà, subversion non controlla da chi è stata fatta la modifica, ma semplicemente se i cambiamente provengono da una copia del repository col numero di versione più basso di quella corrente, altrimenti si limita a creare una nuova revisione.

Per esempio, nel tuo caso, se la versione di base fosse la 1, e due sviluppatori la scaricano, poi il primo la modifica e fa commit, sul repository avresti la 2: a questo punto il secondo, la cui copia è ancora ferma alla 1, prova a fare commit ma il sistema segnala un errore perchè cerca di aggiornare una revisione 2 con la sua 1.

Questo implica anche che per esempio tu possa in realtà fare una prova, anche essendo da solo: semplicemente, fai il checkout del progetto in due directory diverse, e modifichi la stessa riga nello stesso file nelle due copie. A questo punto fai il commit di uno dei due: se provi a fare "synchronize" sul secondo, vedrai apparire il conflitto.

fbcyborg 17-01-2010 21:22

Ho capito!

Grazie! :)

fbcyborg 16-02-2010 17:37

Salve di nuovo.

Ho un problema con il server, o meglio quando faccio commit da Eclipse.
Ho creato un nuovo repository e voglio metterci dentro un altro progetto.

Al primo tentativo di condividere il progetto ricevo dei messaggi che riportano dei problemi di accesso. Ad esempio:

"An internal error occurred during: "Synchronizing SVN".
The resource is inaccessible: /MyProject/config.xml."

La cosa strana è che quel file è leggibile da tutti, e oltretutto quando ho fatto commit, sono riuscito a scrivere quel file sul server svn.

Non capisco cosa succeda. Ho anche provato a fare un refresh del progetto, ma non funziona.

Inoltre, mi sapreste dire come si cancella una certa revisione di un progetto sul server svn?

EDIT: Ho risolto. In pratica il riferimento a config.xml non so perché me lo impostava come "/Myproject/config.xml", e quindi con un a lettera minuscola invece che maiuscola nella dir del progetto. Non sapendo come modificare quel riferimento ho eliminato il repository e l'ho ricreato, con il nome del progetto come lo vuole lui. :(

fbcyborg 21-02-2010 11:26

Ho un problema con delle directory che rimangono fuori dal version control.

Allo stesso livello delle directory bin/ e src/ del mio progetto, ne ho altre tre, che non riesco a inserire sul server svn, con la conseguenza che quando vado a fare il checkout non me le tira giù, ovviamente.
Se le seleziono e faccio Team->Commit, non me le prende.

Come posso fare per inserirle sul server?

EDIT: ho risolto. Il problema è che queste directory contenevano la dir .svn/ quindi il sistema le rilevava come già presenti sul server svn. Cancellandole non ci sono stati problemi a farne l'upload.

fbcyborg 24-03-2010 20:48

Salve di nuovo.

Siccome volevo lavorare al mio progetto da un altro PC, ho fatto una Update e mi sono scaricato i sorgenti aggiornati dal repository, senza alcun problema.
Ora ho fatto delle modifiche, e vorrei fare un commit sul server. Il problema è che mi da il seguente errore:
Quote:

Authentication error.
svn: Commit failed (details follow):
svn: Authorization failed
Eppure da locale riesco a fare commit quando voglio.
Inoltre ho verificato anche i permessi della dir /var/svn/myproject, che sono 777.
EDIT: per fortuna nel frattempo ho trovato la soluzione a questo URL.
L'unica cosa che non mi piace è la memorizzazione in chiaro delle password nel file passwd.
C'è una soluzione a questo problema?

fbcyborg 11-02-2011 11:17

Sto scrivendo un documento in LaTeX e vorrei utilizzare svn per tracciare tutte le modifiche. Siccome sto usando Kile su KDE, qual'è il modo migliore per fare commit e update? Provavo da riga di comando ma non sono molto pratico.


Tutti gli orari sono GMT +1. Ora sono le: 23:20.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.