Comment gérer visual basic 6 frm et les fichiers frx dans le contrôle source?
il s'agit toujours d'une douleur, quel que soit le système de contrôle à la source que j'ai utilisé (source sûre, cvs, clearcase...) le binaire .les fichiers frx posent toujours un problème lors de la fusion de formes visuelles de base.
je sais...Je sais...pourquoi êtes-vous à l'aide de Visual Basic...parce qu'Il ya beaucoup d'applications héritées encore écrit en l'utilisant et bien que je déteste l'admettre, je l'aime réellement l'utiliser (canards tomates)
3 réponses
vous devez juste mordre la balle et les inclure dans le système de contrôle de version. Malheureusement, ils contiennent des informations qui ne sont disponibles nulle part ailleurs dans la source. (Les bitmaps ajoutés aux commandes ImageList, par exemple.) Si vous perdez ces fichiers, vous ne pouvez pas reconstruire l'application correctement.
les fusions de Frx sont une douleur majeure. C'est pourquoi je recommande si votre système de contrôle de version permet de verrouiller assurez-vous de l'utiliser sur les fichiers frx pour éviter les fusions. Par exemple, Subversion supporte la fermeture pour éviter les problèmes avec l'édition de bitmaps et d'autres fichiers binaires.
cela dit, Mon entreprise et moi utilisons Subversion sur un projet VB6 CAD/CAM depuis plus de 5 ans et nous n'avons eu qu'un petit problème avec la fusion de frx. Dans tous les cas, il s'agissait d'une question simple à résoudre. Principalement par une personne de faire une sauvegarde de sa forme et de résoudre le problème à la main par couper et coller. Si quelqu'un fait un travail important sur l'un des formulaires qui a beaucoup de bitmaps alors nous nous assurons de le verrouiller et obtenir cette partie du projet plus vite que possible.
les DRS ne s'excusent pas de L'étrangeté de la FRX de VB les autres paquets ont le même problème à chaque fois que deux personnes éditent le même bitmap, wav ou tout autre type de fichier binaire dont dépend un logiciel.
je travaille sur ClearCase et trébuche sur exactement le même problème, et une requête Google me fait finir ici. Comme les réponses ici ne fournissent pas vraiment la technique détails sur la façon de traiter avec ces fichiers sur ClearCase, permettez-moi d'ajouter ce que j'ai fait aujourd'hui pour résoudre mon problème.
Problème:
le .les fichiers frx ont été créés avec le type" compressed_files " dans ClearCase, qui ne supporte pas les fusions, et pourrait créer des conflits qui vont l'utilisateur non averti (et vous obtenez un appel de support dans L'équipe CM).
Solution:
le script général que nous allons suivre est décrit dans ce IBM technote
- tout d'abord, vous devez comprendre quel type de manipulation vous voulez pour vos binaires: NEVER_MERGE ou copier.
La référence à ces deux nouveaux types peuvent être trouvés dans cet autre IBM technote
je choisissez personnellement le type de copie pour le .fichiers frx
vous devez créer les nouveaux types en utilisant L'Explorateur ClearCase Type.
je vous suggère de créer d'abord les nouveaux types sur un test VOB quelque part. Et une fois que vous êtes satisfait de vos tests, créez les nouveaux types dans votre VOB Admin. Si vous travaillez sur UCM, ce serait à votre niveau PVOB(s). Dans les deux cas, assurez-vous de déclarer le nouveau type Global. Si vous ne travaillez pas sur UCM, et n'avez pas de VOB administrateur, vous vous devez créer les nouveaux types dans toutes les fonctions que vous souhaitez utiliser.
il suffit de suivre les instructions sur la technote ci-dessus.
NOTE, IMPORTANT: vous devrez supprimer les nouveaux types du VOB "inférieur" si vous les avez créés dans un VOB test avant de les créer dans un VOB admin (en supposant que votre VOB test était sous le VOB Admin). Supprimer un type d'élément supprimer toutes les instances de ce type, donc ne créez pas ces nouveaux types pour tester sur réel fichiers, comme la suppression des types à partir D'un VOB de niveau inférieur va supprimer tous les fichiers qui lui sont associés !
attention de ne pas perdre de données importantes !
- Vous devez vous assurer que toute nouvelle .les fichiers frx seront créés avec le nouveau type approprié.
pour cela, vous devez changer le"fichier magique". C'est une bonne idée de centraliser les changements dans les fichiers magic (plutôt que de devoir les changer sur chaque client). Vous voulez le changer une fois, sur un serveur (par exemple votre serveur VOBs), et faites que les gens utilisent une variable d'environnement appelée "MAGIC_PATH" pour pointer vers elle.
Voir le IBM Technote
une fois que vous avez copié et renommé la valeur par défaut.magic file dans votre emplacement MAGIC_PATH, vous devez changer la définition du .fichiers frx.
Il y a en fait deux entrées pour eux dans la valeur par défaut de la magie fichier:
(...) # Match non-printable files by name (...) vb_form_compiled vb_derived compressed_file : !-printable & -name "*.[fF][rR][xX]" ; (...) # assumed to be binary (...) vb_form_compiled vb_derived compressed_file : -name "*.[fF][rR][xX]" ;
j'ai commenté tous les deux et ajouté la ligne suivante avant la dernière entrée dans la magie de fichier:
# New COPY type: frx_visual_basic vb_derived COPY : -name "*.[fF][rR][xX]" ; # catch-all, if nothing else matches compressed_file : -name "*" ; #EOF
chaque client qui définit la variable D'environnement MAGIC_PATH doit maintenant le choisir correctement, donc tout nouveau fichier créé avec .le suffixe frx aura le type d'élément" COPY".
- si vous l'avez déjà fait .les fichiers frx dans votre VOB, vous voulez les changer pour le nouveau type:
- verrouiller le VOB
- utilisez la commande suivante sur Windows à partir du DOS prompt (à partir du haut de votre VOB):
cleartool find . -all -name "*.frx" -exec "cleartool chtype COPY %CLEARCASE_XPN%"
ceci changera le type d'élément pour all *.fichiers frx pour le nouveau type de COPIE
- Déverrouillez la VOB
vous devez faire cela pour tous vos emplois.
Note: la première note technique au haut de cette réponse indique que "ce type de fusion (c.-à-d. copie) n'est pas supporté par le Client distant Rational ClearCase."à partir de la mallette 7.0.1 et du test que j'ai fait aujourd'hui, c'est maintenant pris en charge.
santé,
Thomas