2009-08-18 13 views
22

Ovunque vada su google ottengo la stessa risposta a questo problema ma è la risposta sbagliata per me. Originariamente ho installato Subversion 1.5.6 per Windows (ho eseguito Windows Server 2008) sul mio server e ho creato un repository per un progetto. Quindi ho usato una versione 1.6.X del client Tortoise sul mio portatile per aggiornare il progetto. Tutto è stato hunky-dory fino a quando ho provato a utilizzare uno script di hook post-commit (sto aggiornando le cartelle in wwwroot su commit per riflettere le modifiche su una pagina web). Ho ricevuto un messaggio sull'effetto di "Questo client è troppo vecchio per funzionare con la copia di lavoro 'XXX'".Questo client è troppo vecchio per funzionare con la copia funzionante

Così ho disinstallato il client SVN sul mio portatile e rimosso il repository dal server. Ho quindi creato un nuovo repository sul server da zero e ho installato TortoiseSVN versione 1.5.6 pensando che la versione client è la stessa di Subversion sul server, quindi dovrebbero funzionare correttamente. Dopo aver scaricato di nuovo il repository sul mio laptop e reinstallato il mio script hook, ottengo lo stesso messaggio ...

È piuttosto meticoloso e dirompente dover continuare a cancellare i miei repository e reinstallare il mio client per trovare quelli che collaborano attraverso tentativi ed errori. Non vedo alcun motivo (e non posso trovare nessuno online) sul perché il repository sosterrebbe se sia TortoiseSVN che il mio server Subversion sono entrambi 1.5.6.

C'è qualcuno là fuori che può dare qualche idea sul motivo per cui riceverei questo messaggio? Forse anche qualcuno che potrebbe farmi sapere quale versione di TortoiseSVN devo usare affinché il mio Server SVN 1.5.6 non si lamenti. Il mio script di hook funziona dalla riga di comando sul mio server, quindi so che non è colpa sua. Grazie in anticipo.

+2

Hai ricevuto il messaggio di errore da TortoiseSVN o qualcos'altro? Che cosa sta facendo lo script hook? Stai accedendo al server svn tramite http? – leeeroy

+1

In caso di problemi con il client, perché si ricrea il repository e non si ricrea semplicemente una copia di lavoro? O hai aggiornato anche il server? – Eugene

+0

Ricevo l'errore in TortoiseSVN e nel client della riga di comando. Ecco come appare lo script del mio hook: "[PATH TO svn.exe]" aggiornamento "[PATH TO SERVER COPIATURA]" --quiet --non-interactive --nomeutente [USERNAME] --password [PASSWORD] --config-dir "[PERCORSO DI CONFIGURAZIONE DEL REPOSITARIO FILE]" Non accedo tramite http – Adamantine

risposta

14

La mia versione server di SVN era 1.5.6, ma il client TortoiseSVN che avevo installato sul server era la versione 1.6.3. Quando eseguivo il checkout della mia copia di lavoro wwwroot (o l'aggiornavo usando le opzioni di clic destro fornite da TortoiseSVN) e aggiornavo la versione di quella copia funzionante, il server SVN non poteva aggiornarlo perché era una versione inferiore.

Ho scaricato TortoiseSVN 1.5.6 dal file hippo e ho ricontrollato la copia di lavoro sul server e tutto ha funzionato alla grande!

+1

Non era esattamente questo il punto che stavo facendo? (Vedi il mio ultimo commento) – paracycle

3

Si sostiene che la causa del problema non è lo script di hook post-commit, ma la mia impressione è che sia esattamente la radice dei problemi. Quando viene eseguito lo script post-commit, come ottiene i file dal tuo server Subversion in modo che possa copiarli sul tuo server web? Non è lo di controllarli fuori? Inoltre, tu dici che tutto funzionava bene fino al hai installato lo script di hook post-commit.

Ho già lavorato in situazioni di installazione SVN client/server in modalità mista, incluso TortoiseSVN come client e non ho mai riscontrato incompatibilità finché i client che lavorano sullo stesso repository sono la stessa versione.

Potresti postare il contenuto del tuo hook post-commit in modo che possiamo elaborare ulteriormente?

+0

Sto iniziando a pensare al tuo diritto sullo script di hook. ecco il mio script di hook: "[PATH TO svn.exe]" aggiornamento "[PATH TO SERVER COPIATURA DI LAVORO]" --quiet --non-interactive --nomeutente [USERNAME] --password [PASSWORD] --config -dir "[PATH TO FILE DI CONFIGURAZIONE DEL REPOSITORY]" è un file .cmd nella directory hook del mio repository – Adamantine

+0

Esattamente quello che pensavo. Ora, qual è la versione di svn.exe che è specificata in '[PATH TO svn.exe]'? Scommetto che c'è un conflitto lì. – paracycle

+0

In una nota a margine, ecco un link a dove ho preso questa soluzione. Sembra funzionare per lui, ma non per me: http://www.codersrevolution.com/index.cfm/2008/9/15/Creating-a-postcommit-hook-for-Subversion – Adamantine

0

Se si passa da 1,6 a 1,5, potrebbe essere necessario effettuare il downgrade. Non ci dici mai come muovi il tuo repository ma devi in ​​base a come lo fai ottenere una versione del repository stesso.

http://wiki.open.collab.net/wiki/Subversion_Client_FAQ#head-ed7f8e6b7f3265c74eaf7d49dcd4aab85bae2a12

+0

non è stato necessario effettuare il downgrade del repository perché l'ho completamente cancellato e rifatto quando ho cambiato le versioni. – Adamantine

0

controllare per vedere che il comando svn vostro script di post-commit hook è in esecuzione. Verifica che la versione di questo comando corrisponda alla versione dell'ultimo client SVN per toccare il tuo repository.

Per impostazione predefinita, quando si utilizza una nuova versione di un client di subversion, il repository verrà aggiornato a tale versione. Ciò significa che improvvisamente i vecchi clienti smettono di funzionare.

+0

Aggiorna la copia di lavoro, non il repository (a meno che non si aggiorni anche il server stesso). Di solito, se si desidera un client più vecchio, è sufficiente effettuare un checkout pulito. – Eugene

0

Ho avuto lo stesso errore. Ma la causa è stata che ho verificato il progetto con un client svn 1.5 e il mio plug-in subclipse in eclipse era la versione 1.4. Quindi aggiornare il mio plug-in subclipse alla versione 1.6 ha funzionato. quindi il problema era subclipse 1.4 non funziona con i progetti che sono stati estratti con il client svn 1.5.

Spero che questo aiuti qualcuno.

1

Nel mio caso ho spostato il codice di eclissi da un posto a un altro, quindi il problema è iniziato. Per risolvere il checkout il modulo del progetto svn repo. Quindi nel vecchio progetto ho pulito tutti i file svn. (semplicemente cerca .svn e cancella) poi copio il contenuto nel progetto appena estratto, le mie modifiche sono diventate visibili e il mio progetto è aggiornato. Questo metodo può essere applicato per altri fastidiosi errori. Spero che questo aiuti qualcuno

Problemi correlati