Parfois, je souhaite obtenir un fichier d'un référentiel à utiliser dans un projet qui n'est pas sous contrôle source. Disons que ce n'est qu'un fichier plein de fonctions utilitaires pratiques. Je sais que je peux juste à une exportation forte> SVN forte>, mais j'aimerais pouvoir faire une mise à jour L'important est que je ne veux pas pouvoir commettre des modifications apportées au dossier du nouveau projet; Je veux juste pouvoir faire des mises à jour pour rafraîchir le fichier. P>
Y a-t-il un moyen de vérifier un fichier en lecture seule? p>
7 Réponses :
Cela ressemble émulant les CVS en lecture seule caisse , et je ne pense qu'il a été mis en œuvre dans Subversion . p>
Le scénario idéal serait de supprimer un accès pour le côté serveur, mais je suppose que votre besoin utilisateur de modifier un fichier dans un certain espace de travail, alors que pas em> modifier (et comiting) le même fichier dans un autre environnement (par exemple dans ce projet qui ne sont pas sous le contrôle de la source). p>
Une autre possibilité serait de fusionner ce fichier dans un branche SVN déclaré en lecture seule strong> (par un par répertoire paramètre d'accès ).
De cette façon, vous pouvez mettre à jour le fichier dans cette branche, mais vos utilisateurs qui CheckOut ce fichier ne sera pas en mesure de livrer ce fichier, tout en conservant la possibilité de commettre dans le dépôt. P>
Vous avez probablement une forme d'automatisation de construction (marque, fourmi, etc.) pour la compilation. Pourquoi ne pas ajouter une étape de «mise à jour» à votre fichier de fabrication, qui ressemble à quelque chose comme ceci: alors chaque fois que quelqu'un serait taper svn update code> ils peuvent taper
faire de la mise à jour code> et avoir le même effet. P> p>
Une façon de le faire est, lorsque vous consultez le fichier, ajoutez une propriété à celle-ci (localement!) Comme Ce que vous pouvez faire est, écrit un crochet de pré-validation qui fait un Lorsque vous faites une mise à jour Cela peut être surchargé, mais s'il s'agit d'une fonctionnalité que vous souhaitez utiliser souvent, elle peut être utile. P> Readonly code> ou d'une autre. Vous pouvez même scripter une séquence de paiement en lecture seule qui le fait pour vous en une étape. Ceci, en soi, ne rend pas le fichier en lecture seule. P>
svnlook Propget code> dans la transaction potentielle, et si
lisonly code> est défini, interdisant le commit. < / p>
svn régulière code> Ça doit fonctionner correctement sans travail supplémentaire. P>
Pourquoi ne pas créer d'utilisateur Subversion qui n'a lu que l'accès au référentiel, puis utilisez cet utilisateur pour effectuer les commandes / mises à jour. p>
Notez que la base de données Berkeley backend Accès . Voir la Utilisable d'une entrée en lecture seule i> dans la table.
Comme déjà mentionné, définissez le bit en lecture seule. En Eclipse, cliquez avec le bouton droit de la souris sur le fichier et cochez "Lecture seule". P>
p>
Comment aimez-vous une idée de définir des attributs en lecture seule pour vérifier les fichiers? Je me promène s'il est possible d'automatiser cette action dans une sorte de gestionnaire / crochet post-paiement? P>
Cela ne vous empêchera pas de commettre les changements. P>
Le problème principal est que vous souhaitez vous assurer que vous ne pouvez pas commettre de modifications que vous apportez, les fichiers que vous avez payés doivent être en lecture / écriture mais vous ne souhaitez pas autoriser les fichiers de modifications à être vérifiés. De temps en temps, vous voulez être capable de Pour moi, la solution consistait à faire exécuter Linux / Mac Vous pouvez exécuter Malheureusement, je ne suis pas sûr de ce que l'équivalent Windows serait. P> svn up code> ces fichiers aussi. p>
.svn code> non écrite p>
chmod -r -w .svn code>. Si vous essayez de vérifier quoi que ce soit dans, vous obtiendrez une erreur lisée. Vous pouvez toujours diffuser, blâmer et etc. L'inconvénient est que cela vous empêchera de
svn up code> jusqu'à ce que vous effectuiez l'annuaire lisible à nouveau. Cependant, vous pouvez simplement basculer l'écriture sur / éteinte lorsque vous devez le faire (
chmod -r + w .svn code>). P>
Pourquoi ne pas simplement faire une autre exportation?
Oui, c'est une bonne idée, merci. Les commandes d'exportation sont un peu lourdes; Vous devez inclure l'URL du référentiel long, votre nom d'utilisateur et votre mot de passe. C'est bien de vérifier parce que vous obtenez le fichier .svn qui se souvient de tout ce genre de choses. Néanmoins, bonne réponse.
Vous ne dites pas la plate-forme sur laquelle vous vous trouvez, mais avec la tortue SVN Exporter est à peu près une opération à un clic.