2009-03-16 6 views
1

Lorsque je modifie une propriété (disons, svn: ignore) sur le répertoire le plus haut que j'ai extrait (la plupart du temps c'est trunk), en utilisant TortoiseSVN le (s) client (s) parcourent récursivement le projet complet.Comment faire des commits non récursifs avec TortoiseSVN?

Gros arbre, beaucoup de données, prend beaucoup de temps.

Comment puis-je éviter cela? Il y a peut-être des changements ailleurs mais je sais que je ne m'intéresse pas à eux et je les décoche quand même. Je suis au courant de la fonctionnalité de vérification clairsemée, mais je ne vois pas comment je peux l'appliquer ici car je n'ai pas une caisse clairsemée. Ai-je besoin de créer une deuxième extraction, d'appliquer les modifications/valider et de mettre à jour mon autre copie?

+0

J'ai été mis à jour pour refléter vos nouveaux termes. La solution de contournement que j'ai mentionné devrait faire ce que vous voulez. –

+0

Bien que pas vraiment satisfait, ce n'est pas votre faute ;-) donc j'ai accepté. Merci beaucoup! – mark

Répondre

7

Essayez:

svn commit --non-recursive [target] 

[Edit:. L'OP mis à jour sa question pour préciser qu'il fait référence à TortoiseSVN, pas la ligne de commande Subversion régulière]

Non, TortoiseSVN ne fournit pas un moyen direct de commettre de manière non récursive. Toutefois, si vous validez quelque chose au niveau supérieur d'un répertoire mais et non quelque chose de plus bas (par exemple, vous le désélectionnez), cela entraîne nécessairement un commit non récursif. Voir here.

Ainsi, il existe une solution de contournement. Si vous voulez vraiment, vraiment, faire cela et que vous n'aimez pas la ligne de commande, faites un changement trivial dans un fichier dans un répertoire sous-jacent, validez votre vrai fichier en désélectionnant le changement fictif, puis annulez le changement fictif. Cela forcera TortoiseSVN à faire une validation non récursive.

+0

Vous avez parfaitement raison et je m'excuse que je n'ai pas été précis en premier lieu. Je suis spécifiquement à la recherche d'une solution avec TortoiseSVN. J'ai mis à jour la question pour bien refléter cela. – mark

0

Étant donné que vous effectuez une opération sur un répertoire, la tortue suppose qu'elle peut affecter tout ce qui se trouve à l'intérieur de celle-ci, et donc tout le long de votre copie de travail.

Le contrôle de la copie de travail devrait être assez rapide, même pour un grand repo, car il est une opération locale sur le système de fichiers sans exploitation du réseau impliqué

Après tortue a trouvé tous les fichiers modifiés, vous pouvez choisir seulement celui (s) que vous aimez et commettre seulement ceux. En tout état de cause, la différence réside dans la façon dont les répertoires sont traités différemment des fichiers simples, et cette différence de traitement peut même relayer le comportement de subversion elle-même, et pas seulement Tortoise.

+0

Complètement à droite, mais avec svn vous avez le commutateur --non-récursif pour éviter cela. En ce moment je me demande si je ne peux pas trouver cette fonctionnalité dans TortoiseSVN ou si elle n'existe pas du tout. – mark

Questions connexes