Comment réparer un SVN 409 Erreur de Conflit de
J'ai utilisé pour l'utilisation de SVN 1.4 sur OS X Leopard et tout allait bien. Il y A quelques semaines, j'ai installé une nouvelle copie de mac OS X 10.6. La version de SVN qui est livré avec Snow Leopard est 1.6.5. Je suis allé de l'avant et construire ma propre copie avec 1.6.6. Je suis en utilisant le construit dans le serveur apache et juste héberger des dépôts à l'échelle locale.
Tout semble bien fonctionner jusqu'à ce que j'ai effectivement essayé de commettre quelque chose. Chaque fois que je tente de commettre un changement, je reçois le message suivant:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/svn2': 409 Conflict (http://localhost)
Ce qui se passe avec mon vieux référentiels, donc j'ai créé un couple de nouveaux. Même affaire. J'ai aussi essayé d'utiliser la version 1.6.5 qui vient avec le système...de même. Enfin, j'ai essayé la mise à niveau vers la dernière version stable de SVN (1.6.9) et toujours le même problème.
Apache journaux d'erreur suivants pour chaque pas commettre:
[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]
Et du journal des accès:
::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
Curieusement, la validation ne valider les changements, mais la copie de travail ne voit pas et que tout est tordu.
J'ai essayé de Google à chaque variation que je pense de ce problème, mais les résultats de la recherche sont assez inutile. Je ne suis pas en utilisant TortoiseSVN ou quelque chose de spécial et s'engage échouer sur un nouveau référentiel, donc je sais que ce n'est pas un problème avec mon vieux repos.
Toute aide serait grandement appréciée.
Mise à jour
J'ai essayé d'ajouter autoversioning à mon svn.fichier conf. Voici ce que mes fichiers dit:
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>
Mise À Jour (Solution)
Je voulais juste mettre à jour cette avec la solution réelle au cas où quelqu'un d'autre est d'avoir le même problème avec l'complètement inutile messages d'erreur. Le problème était avec l'apr et apr-util pièces (comme scherand suggéré). J'ai été la construction d'une copie de l'aide de la subversion des dépendances de package. OS X 10.6 aussi a sa propre version. Les deux versions ont été 1.3.8. Apparemment, si j'ai besoin d'utiliser les versions par défaut l'installation d'apache a été à l'aide.
Donc, j'ai supprimé l'apr et apr-util dossiers de ma subversion construire, pour s'assurer que je n'étais pas la construction de ma propre copie de ces à nouveau. J'ai construit svn à partir de la source de nouveau, cette fois en utilisant la configuration suivante:
./configure --with-apr=/usr/bin/--with-apr-util=/usr/bin/--with-ssl
Après la construction de nouveau, j'ai redémarré apache, et a créé un nouveau repo svn. J'ai été en mesure de le vérifier, de faire des changements, et de s'engager sans aucun problème. J'ai ensuite essayé de faire de mon vieux repos et qui a été travaillé en tant que bien.
Merci à tous pour l'aide!
OriginalL'auteur NerdStarGamer | 2010-03-30
Vous devez vous connecter pour publier un commentaire.
Je suis sur de la glace très fine ici (409 pas très précis), mais je suis capable de formuler deux questions:
S'il y a des crochets, êtes-vous sûr qu'ils ne contiennent pas d'erreurs? Pourriez-vous désactiver pour un test? Si Autoversioning n'est pas activé, pourriez-vous essayer de l'activer pour un test? Cela devrait travailler le long de la lignes de
lors de l'utilisation de
mod_dav_svn
(voir le Lien Autoversioning ci-dessus).Peut-être que ce serait aider à faire la lumière sur votre problème et nous (et/ou de Google :)) pourrait prendre à partir de là.
Btw: Les journaux que vous avez posté ne sont pas de la même livraison, droit? La différence de temps serait énorme?!?
Edit:
Toutes mes excuses si vous avez trouvé qu'il y a longtemps, mais je vais donner un coup de feu: Ne peut pas FUSIONNER des ressources lors de la validation (Apache 2.0.55) est quelque chose que Google a trouvé pour moi 🙂
L'OP, il écrit que "l'Apache dicte la version de APR à utiliser". Cela signifie que vous devez référencer le bon AVR-lors de la compilation de la version SVN. J'ai installé SVN (v1.6.9) à travers MacPorts sur mon système (OS X 10.6). Je ne suis pas d'utiliser WebDAV ou Apache en local, mais j'ai AVR 1.3.12_1 installé (seulement pour la référence). L'OP suggère d'utiliser des
--with-apxs=/path/to/bin/apxs
lors de la compilation de SVN bien que je ne suis pas sûr si cela s'applique à votre situation (j'ai commencé à deviner il y a longtemps, vous remarquerez peut-être :)).Toute chance que vous pouvez cocher la case AVR-version Apache attend vs celui utilisé pour construire SVN (par exemple, vous pourriez utiliser
sudo port installed apr
pour voir ce AVR-versions live sur votre système si vous utilisez MacPorts)?Juste pour faire référence à un extrait de La construction d'Apache comme Vous le Souhaitez:
J'ai ajouté une autre pensée que j'ai collé ensemble de divers Google sur les résultats. Il fait une sorte de sens pour moi, mais il est vrai qu'il est très vague.
Nice. J'ai enfin réussi à le faire fonctionner. Il était de ceux aprs comme vous l'avez suggéré.
OriginalL'auteur scherand
J'ai deux idées de l'endroit où le problème peut se cacher, qui sont bien sûr des suppositions sauvages, alors soyez prévenus.
D'une part, il peut juste être un fichier de problème d'autorisations. Je sais, ça a l'air bête, mais peut-être il y a un fichier de configuration, ou un crochet comme scherand suggéré, ou même un dossier à l'intérieur de la structure du référentiel qui a été rendu illisible, soit par la mise à jour de 10.6 ou lors de la construction de la nouvelle version svn, j'aimerais vérifier qu'.
La seconde idée est de vérifier la compatibilité de la svn de la copie de travail-client-serveur-référentiel des versions. Les gars de la subversion jure que les deux 1.5 et 1.6 ne pas casser la compatibilité du référentiel de niveau avec 1.4 (mais ils le font que sur les copies de travail). Mais il ne serait pas mal de vérifier que le format de l'ensemble de la pile est cohérent. Et pendant que vous y êtes, assurez-vous que l'apache bibliothèques que vous avez construit sont compatibles avec l'apache 2.2.11 qui vient avec 10.6 (encore une fois, ils devraient le faire, mais on ne sait jamais)
Et enfin, bonne chance.
chown -R www:www /usr/svn/
sur l'ensemble de mes dépôts. J'ai même essayé d'ouvrir les permissions à 777 juste pour voir si elle aurait un effet. Il n'a pas. Est-il un autre paramètre autorisations que je suis en manque ici? J'ai d'abord supposé que le problème était avec mon ancien référentiels, donc j'ai essayé de la mettre à jour, ce qui ne semble pas faire quoi que ce soit. J'ai aussi à ce point créé plusieurs marque nouvelle repos pour les tests. Même erreur avec ceux qui sont trop.Je ne peux pas voir les problèmes avec svn 1.6.9 et la valeur par défaut d'apache 2.2.11. Je suis peut-être raté quelque chose? Quand j'ai construit ma copie de subversion, je n'ai pas utiliser toutes les options lors de la configuration. Cela pourrait-il être une partie du problème?
OriginalL'auteur Javier
D'abord établir une base de référence. Sur un stock d'installation de Snow Leopard (10.6.3) voici exactement ce que j'ai fait.
Créé "/etc/apache2/autres/svn.conf" avec comme contenu:
Créé subversion dossier de référentiel et de "test":
Par un utilisateur normal, le répertoire d'accueil:
Maintenant, si tout cela a fonctionné comme il se doit, ensuite, vous avez un stock de travail 1.6.5 dépôt subversion servi par apache. Si elle n'a pas, alors vous êtes probablement mélange apple fourni svn binaires/libs avec votre propre (macports, etc) ou il y a des problèmes d'autorisations. Faire sûr vous êtes à l'aide de l'apple fourni binaires. Apple ne modifier la source légèrement et j'ai couru dans des problèmes de compatibilité lors du mélange de 'ports' avec 'stock' dans le passé. Comme pour les autorisations, apache s'exécute en tant qu'utilisateur _www, groupe _www. Assurez-vous que tous les fichiers et répertoires sont la propriété en tant que telle, et n'oubliez pas de mettre à jour chaque fois que vous utilisez svnadmin ou quelque chose d'autre à manipuler directement le référentiel svn.
Puisque c'est à ce travail, déplacez votre "svn2' référentiel de retour dans /usr/local/svn (si vous ne l'avez pas déjà), procéder à une nouvelle caisse quelque part, et effectuer un test de validation.
Si vous avez toujours des problèmes, essayez de mettre à niveau le référentiel.
Répéter la caisse /validation de test.
En dernier recours, de vidage et de la charge de la logithèque.
Répéter la caisse /validation de test, cette fois avec /svn/svn3.
Profiter de votre référentiel fixe... je l'espère 🙂
mise à jour
Il y a peut être un bug dans la ligne de commande de subversion client. Après avoir fait:
Avis de la sortie de svn log (au moins pour moi) n'est rien. Svn log de tortoise est fine, ce qui indique que le serveur (comme ci-dessus) fonctionne correctement.
Une autre chose à essayer est d'accéder au dépôt via "fichier" au lieu de "http". Copier l'intégralité du dépôt de votre répertoire d'accueil ou dans un endroit de votre utilisateur est le propriétaire, alors check it out (ie. svn checkout /Utilisateurs/Partagé/svn/svn2) et d'essayer de s'engager.
OriginalL'auteur h0tw1r3
Avez-vous essayé Les Versions le client SVN pour OSX? Ce n'est pas une solution à votre problème, sauf peut être une alternative. Moi et mon équipe a eu quelques problèmes à obtenir SVN et OSX pour parler les uns aux autres correctement donc allé à la recherche d'autres clients et les Versions travaillé pour nous.
Je comprends. Désolé je ne peux pas être de plus d'aide.
OriginalL'auteur Rob Segal
OriginalL'auteur Solon
Cela a résolu le conflit pour moi: j'ai fait une sauvegarde de mes fichiers en local, puis tiré tout à partir du serveur. Puis, quand je l'ai inséré et poussé mes fichiers de sauvegarde, la 409 conflit d'erreur n'apparaît pas encore.
Ce qui concerne,
Kevin
OriginalL'auteur kevinweber