2009-07-15 6 views
6

Existe-t-il actuellement une fonctionnalité qui permet une extraction exclusive dans SVN?Subversion Exclusif Checkout et Subversion Plugin pour Delphi

Y at-il un bon plugin pour Delphi qui permet l'accès via IDE?

+0

Bienvenue dans Stack Overflow. Pour référence future, cela aurait vraiment dû être deux messages distincts, pas deux questions dans un seul article. –

+0

Ok, merci pour le conseil. – Acron

Répondre

11

SVN a un concept de "locking" qui correspond à peu près à la caisse exclusive. Par exemple, dans TortoiseSVN, cette option est affichée via les entrées de menu Verrouiller et Libérer verrouiller.

JCL contient un expert en contrôle de version SVN qui fonctionne assez bien. En plus d'autres choses, tt vous donne accès à la fonctionnalité de verrouillage de l'IDE.

8

TortoiseSVN peut être added into the Delphi tools menu. Je n'ai pas essayé cela moi-même, puisque je suis content de l'utiliser comme extension Explorer.

En ce qui concerne la commande exclusive, je suppose que vous voulez dire qu'une seule personne peut l'éditer à la fois? Ce n'est pas vraiment l'idée derrière Subversion, l'idée est que vous avez des copies de travail et ensuite vérifier vos modifications. Il va ensuite essayer de fusionner vos changements (cela fonctionne généralement la plupart du temps). S'il y a des conflits, vous devrez les résoudre manuellement.

+0

Comment ces conflits sont-ils visibles? Par exemple si quelqu'un change un paramètre de chaîne en int. – Acron

+0

Si quelqu'un fait un changement simple comme ça, vous ne verrez pas de conflit, il le fusionnera lors de la validation. Si vous dites que quelqu'un change une chaîne en int et que vous changez aussi la même chaîne en un vrai, vous aurez un conflit. Le conflit serait visible lors de l'engagement et vous auriez des options sur la façon de le résoudre. Voir cette URL pour plus d'informations - http://tortoisesvn.net/docs/release/TortoiseSVN_fr/tsvn-dug-conflicts.html – Pauk

+0

+1 pour le lien wiki - J'utilise cette méthode, et c'est génial. Je recommande également d'ajouter "Open Folder Here" qui est juste explorer.exe $ PATH ($ EDNAME) Cela vous donne accès à n'importe quoi d'autre dans Tortoise, facilement. –

0

Que voulez-vous dire par «paiement exclusif»? Voulez-vous dire qu'après que vous vérifiez, personne d'autre ne peut vérifier? Cela s'appelle un verrou et subversion peut le faire (voir Locking), bien que ce ne soit pas recommandé en général car le but du contrôle de version est de permettre à plusieurs personnes de travailler simultanément sur l'élément versionné.

+0

Vous avez raison. Je voulais dire que personne ne peut vérifier après que je l'ai fait jusqu'à ce que je m'engage quand le verrou est désactivé. – Acron

0

Pour la première partie, j'utilisais Visual Source Safe qui supporte le verrouillage (vous devez vérifier avant utilisation), SVN a une commande de verrouillage, mais c'est contre son concept, vous avez besoin de peu de temps pour vous y habituer, et vous n'utiliserez plus jamais la commande de verrouillage. Pour la deuxième partie de votre question, The TortoiseSVN peut être utilisé comme outil externe, ou vous pouvez le faire fonctionner avec File Browser fourni avec Delphi 2007 et au-dessus, et vous pouvez utiliser IBrowser qui fonctionne avec les anciennes versions.

et Subversion add-ins for Delphi résument les plug-ins SVN disponibles pour Delphi IDE, à côté de SourceConneXion qui est un produit commercial.

2

Je crois que l'une des raisons pour lesquelles les gens s'enquièrent parfois du verrouillage d'éléments dans un référentiel Subversion réside dans le fait qu'ils ont leurs DFM Delphi enregistrés dans un format binaire, ce qui rend problématique la fusion/fusion.

Une alternative à la conversion de DFM etc en texte est l'utilisation de Beyond Compare de Scooter Software. Au-delà de Compare est écrit en Delphi, et sait nativement comment lire les DFM binaires. Cela signifie qu'il devient alors moins un problème (ou même aucun problème) si vos DFM sont stockés dans Subversion en binaire ou en texte. Beyond Compare V3 fait également une fusion à trois voies, ce qui facilite grandement la fusion de plusieurs validations, etc. Même en ignorant la possibilité de différer les DFM binaires, c'est encore un meilleur visualiseur de différences que les outils intégrés de TortoiseSVN. Je peux le recommander fortement, et c'est très peu coûteux. Actuellement, les seules choses que je verrouille dans notre référentiel sont les bibliothèques de type COM (* .tlb et leurs fichiers * _TLB.pas associés).

+0

Point intéressant sur les DFM de forme binaire mais il est assez facile de les convertir en texte sur masse. Depuis Delphi 1 il y a un fichier appelé Convert.exe dans le dossier bin qui va le faire. Par exemple. 'convert -i -t -s c: \ files \ *. dfm' – Pauk

+0

Aussi, +1 pour Beyond Compare, c'est une application géniale. Je dois admettre que je le préfère à TortoiseMerge. – Pauk

+0

Nous utilisons un outil interne dans le cadre de notre processus d'internalisation qui nécessite (actuellement) que nos DFM restent binaires. L'utilisation de Beyond Compare fait de cette restriction héritée un non-problème pour nous. Si un DFM est binaire ou non est maintenant sans importance puisque BC va heureusement comparer les versions binaires et non-binaires du même DFM par exemple. –

1

Peut-être que je suis naïf, mais pourquoi voudrait-on aller à la peine énorme de fusionner leurs changements? La fusion pourrait être simple si les programmeurs éditaient des fichiers texte dont le contenu est facilement compris, et qui pourraient donc être fusionnés en vertu de la connaissance par les programmeurs des significations des changements. Toutefois, si vous utilisez SVN avec MS Visual Studio, où les changements apportés à un fichier modifient fréquemment d'autres fichiers que vous ne connaissez pas, et où l'encodage des informations dans ces fichiers peut être complètement inconnu des programmeurs (qui donc N'avoir aucun concept de comment interpréter beaucoup moins fusionner de tels fichiers) et peut même être binaire, pourquoi iriez-vous à l'énorme problème et le risque d'avoir plusieurs personnes simultanément éditer des choses?

Le paradigme de verrouillage est simple. Une seule personne édite à la fois. La fusion n'est jamais requise. Les programmeurs n'ont pas besoin de connaître les encodages des fichiers (éventuellement binaires) qu'ils ne réalisent même pas qu'ils modifient. Personne ne peut piétiner les changements de quelqu'un d'autre. Le verrouillage (c'est-à-dire le verrouillage par défaut) me semble beaucoup préférable.