2010-10-25 37 views
5

Je veux faire ce qui suit:checkout utilisateur unique dans SVN

Lorsqu'un utilisateur modifie un fichier à partir SVN, aucun autre utilisateur peut éditer ce fichier jusqu'à ce que le premier utilisateur engage ses changements. C'est-à-dire qu'il y aurait un certain type de writelock sur les fichiers dans svn .

Est-ce possible dans SVN? Comment faire? Est-il possible de définir ceci pour un seul fichier ou répertoire (pas pour l'ensemble du dépôt)?

Pourquoi cela serait-il utile? Les conflits sur les fichiers binaires et certains autres ne peuvent pas être facilement résolus. Je voudrais définir mes fichiers excel dans svn pour être verrouillé en écriture de la manière décrite ci-dessus.

Je souhaiterais un guide sur la façon de le faire dans VisualSVN ou TortoiseSVN que j'utilise.

Répondre

4

Vous pouvez définir la propriété svn:needs-lock sur ces fichiers, puis le fichier est extrait en lecture seule. Si vous voulez le modifier, vous devez verrouiller le fichier avec svn lock. Ce workflow est là pour exactement ce cas.

Voir ici pour info sur svn:needs-lock.

2

La commande "svn lock" empêche d'autres personnes de valider les modifications apportées à un fichier. Il ne peut pas vous empêcher d'éditer le fichier, puisque svn n'a aucun contrôle sur le fichier lui-même une fois qu'il a été extrait. Vous pouvez demander à tout le monde de verrouiller le fichier binaire avant de le modifier afin d'empêcher quelqu'un d'effectuer des modifications qu'il ne peut pas valider.

0
  1. Vous ne pouvez pas faire un tel writelock si quelqu'un a déjà une copie de travail. Vous pouvez mettre un verrou régural. Mais il ne peut être mis que par fichier et non par répertoire entier. Ensuite, un autre utilisateur peut ne pas valider ses modifications jusqu'à ce que le verrou soit libéré. Si vous voulez le faire pour le répertoire entier, vous devez écrire un script hook. Cela est exécuté du côté serveur, lors d'événements, par ex. commit event, .... Vous pourriez mettre plus de logique pour interdire les caisses. Mais ce n'est pas comment nous devrions travailler sous svn. La possiblité du développement parallèle est l'une des caractéristiques clés de svn. Writelock n'est pas efficace pourquoi quelqu'un ne devrait pas travailler sur sa copie de travail en parallèle. Il aura besoin de fusionner vers la nouvelle version de toute façon.