2008-09-11 6 views
3

Nous avons rencontré un problème avec l'utilisation de Subversion sous Windows. Un développeur a commis un fichier foo.Data.sql et plus tard un autre développeur a engagé un fichier appelé foo.data.sql. Naturellement, cela a causé un problème sur les clients Windows (tous les clients sont Windows dans nos environnements) car les fichiers sont sensibles à la casse dans Subversion mais pas dans Windows.Prévention des problèmes de boîtier dans Subversion

Nous avons réussi à résoudre ce problème en supprimant l'un des fichiers directement dans le référentiel, mais j'ai encore deux questions:

  1. Comment est-il possible pour un développeur de faire cela à l'aide d'un client Windows? At-il une copie de travail invalide, ou y a-t-il un bogue dans le client (TortoiseSVN)?
  2. Comment pouvons-nous empêcher des modifications comme celles-ci d'entrer dans le référentiel (c'est-à-dire quelqu'un a-t-il écrit un script hook qui effectue une vérification d'intégrité pour les problèmes de casse)?

Répondre

4

Il y a certainement un script hook qui vérifie la sensibilité à la casse - Sourceforge l'a comme une de leurs options. Un rapide Google se présente: http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windows et http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/case-insensitive.py

La question sera posée sur une plate-forme de fenêtres si l'utilisateur 1 a ajouté foo.data.sql et l'utilisateur 2 a ajouté foo.Data.sql avant d'obtenir une mise à jour de l'utilisateur 1.

Espérons que ça aide :)

0

1; C'est possible, car les deux fichiers proviennent de deux développeurs. On est en train de renommer ou de créer le fichier avec des cas différents et lors de la validation ne réalise pas que ce sera un ajout et non un changement de commit.

2; Check TortoiseSVN FAQ

2

Sous Windows, les fichiers sont insensibles à la casse, mais préservent la casse. Vous pouvez renommer un fichier, en changeant le cas et Windows conservera le changement. Le problème se produit lorsque Subversion essaie de créer le deuxième fichier. Windows signale que le fichier existe déjà.

Si vous souhaitez fusionner les deux fichiers en une seule copie, au lieu de supprimer le fichier dans le référentiel, vous pouvez renommer le mauvais fichier dans le référentiel (ajouter un suffixe comme '.temp'), mettre à jour le client , fusionnez dans le bon fichier, puis supprimez le fichier incorrect.

Questions connexes