Ho usato SVN 1.4 su OS X Leopard e tutto andava bene. Un paio di settimane fa ho installato una nuova copia di OS X 10.6. La versione di SVN fornita con Snow Leopard è 1.6.5. Sono andato avanti e ho creato la mia copia con 1.6.6. Sto usando il server Apache integrato e sto solo ospitando i repository localmente.Come si risolve un errore di conflitto SVN 409
Tutto sembrava funzionare bene fino a quando ho effettivamente provato a commettere qualcosa. Ogni volta che provo a commettere un cambiamento, ottengo il seguente messaggio:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/svn2': 409 Conflict (http://localhost)
Questo succede con i miei vecchi repository, così ho creato un paio di quelli nuovi. Stesso affare. Ho anche provato ad usare la versione 1.6.5 che viene fornita con il sistema ... lo stesso. Infine, ho provato ad aggiornare l'ultimo SVN stabile (1.6.9) e ho ancora lo stesso problema.
L'errore Apache registra quanto segue per ogni fallito commettere:
[Mon Mar 29 19:53:10 2010] [error] [client ::1] Could not MERGE resource "/svn/svn2/!svn/act/d399326f-c20f-424f-bb68-3bb40503b5b1" into "/svn/svn2". [409, #0]
[Mon Mar 29 19:53:10 2010] [error] [client ::1] An error occurred while committing the transaction. [409, #2]
[Mon Mar 29 19:53:10 2010] [error] [client ::1] Can't open directory '/usr/local/svn/svn2/db/transactions/5-6.txn/\xeb\xa9\x0f\x1f': No such file or directory [409, #2]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] Could not DELETE /svn/svn2/!svn/act/d399326f-c20f-424f-bb68-3bb40503b5b1. [500, #0]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] could not open transaction. [500, #2]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] Can't open file '/usr/local/svn/svn2/db/transactions/5-6.txn/props': No such file or directory [500, #2]
E dal log di accesso:
::1 - - [30/Mar/2010:13:02:20 -0400] "OPTIONS /svn/svn2 HTTP/1.1" 401 401
::1 - user [30/Mar/2010:13:02:20 -0400] "OPTIONS /svn/svn2 HTTP/1.1" 200 188
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2 HTTP/1.1" 207 647
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2 HTTP/1.1" 207 647
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2/!svn/vcc/default HTTP/1.1" 207 398
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2/!svn/bln/6 HTTP/1.1" 207 449
::1 - user [30/Mar/2010:13:02:20 -0400] "REPORT /svn/svn2/!svn/vcc/default HTTP/1.1" 200 1172
Curiosamente, il commit realtà non applicare le modifiche, ma la copia di lavoro doesn lo capisco e tutto diventa matto.
Ho provato a Google tutte le varianti a cui posso pensare per questo problema, ma i risultati della ricerca sono praticamente inutili. Non sto usando TortoiseSVN o qualcosa di speciale e commetto errori su un nuovo repository, quindi so che non è un problema con i miei vecchi repository.
Qualsiasi aiuto sarebbe molto apprezzato.
Aggiornamento
Ho provato ad aggiungere autoversionamento al mio file svn.conf. Ecco cosa dice il mio file:
LoadModule dav_svn_module /usr/libexec/apache2/mod_dav_svn.so
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
SVNAutoversioning on
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/etc/svn-auth-file
# only authenticated users may access the repository
Require valid-user
</Location>
Update (soluzione)
Volevo solo aggiornare questo con la soluzione reale nel caso in cui nessun altro sta avendo lo stesso problema con i messaggi di errore del tutto inutili. Il problema era con le parti apr e apr-util (come suggeriva scherand). Stavo costruendo una copia di entrambi usando il pacchetto delle dipendenze subversion. OS X 10.6 ha anche la sua versione. Entrambe le versioni erano 1.3.8. A quanto pare, avevo bisogno di usare le versioni che stava usando l'installazione di default di apache.
Così, ho eliminato le cartelle apr e apr-util dal mio build di subversion, per assicurarmi che non stavo ricostruendo di nuovo la mia copia di questi. Ho costruito svn dalla sorgente di nuovo, questa volta utilizzando la seguente configurazione:
./configure --with-apr=/usr/bin/ --with-apr-util=/usr/bin/ --with-ssl
Dopo la costruzione di nuovo, ho riavviato apache e generato un nuovo repo svn. Sono stato in grado di verificarlo, apportare modifiche e commit senza problemi. Ho quindi provato i miei vecchi repository e anche quelli hanno funzionato.
Grazie a tutti per l'aiuto!
Non ci sono ganci sul posto (a meno che non ci sia qualcosa di default di cui non sono a conoscenza). E no, sembra che quei due registri non siano gli stessi da impegnare. L'aggiunta del bit di autoversione al mio svn.conf non sembra avere alcun effetto sul problema. Grazie per l'aiuto. Sono alla fine del mio spirito su questo. – NerdStarGamer
Ho aggiunto un altro pensiero che ho incollato insieme da vari risultati di Google. Ha un certo senso per me, ma ammettiamolo è molto vago. – scherand
Bello. Finalmente ho funzionato. Erano gli aprs come suggerivi tu. – NerdStarGamer