2008-11-11 7 views
2

J'utilise WinCVS comme client et CVSNT comme serveur de contrôle de source. Certains fichiers que je voulais ajouter à mon dépôt CVS ont été ajoutés en tant que fichiers Unicode. Maintenant, je veux recommit le même que les fichiers ANSI (aka ASCII). Cependant, malgré la suppression des anciens fichiers du repo, chaque fois que j'ajoute le fichier avec le même nom, il attribue automatiquement le codage Unicode au fichier.Modification du type de fichier une fois ajouté à CVSNT

Y a-t-il un moyen de s'en sortir? Ou en d'autres termes, puis-je changer l'encodage d'un fichier, une fois qu'il est ajouté à CVS?

Répondre

4

Il y a deux ou trois choses qui (pourraient) entrent en jeu ici:

  • vous pouvez désactiver la détection du type de fichier automatique WinCVS lui-même: Aller à l'admin | Préférences | Globals, l'option nommée « contrôle d'alimentation lors de l'ajout de fichiers » - en théorie, vous devriez être en mesure d'utiliser la commande régulière Ajouter de la barre d'outils une fois que vous avez fait ce

  • assurez-vous n'avez pas encore entrées dans votre cvswrappers (à la fois et le serveur client- côté) qui définissent les types de fichiers que vous ajoutez comme unicode

  • versions récentes de WinCVS sont livrés avec une macro pour ajouter des fichiers avec un mode k spécifique pour les cas non couverts par l'interface WinCvs (recherchez Macros | Ajouter | Extended Ajouter une sélection ... - vous devriez probablement forcer explicitement à utiliser "Text" (aka -kt) pour s'assurer que serveur exécute aucun type de fichier auto-détection soit

  • CVSNT soutient versioning des changements de type de fichier. La séquence de commande pour cela dans votre cas serait cvs update -kt suivie par cvs commit -f

  • versions récentes de WinCVS aussi sont livrés avec une macro pour effectuer ce dernier, il est sous Macros | CVS | Modifier les options de fichier

[Je suis l'auteur des deux macros citées ici donc n'hésitez pas à me contacter si elles vous posent des problèmes - vous pouvez trouver mes coordonnées dans les macros elles-mêmes]

+0

Les options 'force text' ne convertiront pas forcément Unicode en ASCII? UTF-16 à 7/8 bits ASCII? –

+0

La dernière option (Macros | CVS | Changer le type de fichier) a fonctionné pour moi; tu es cool, mec! Mon texte était ASCII n'importe comment et votre macro était exactement ce que je cherchais; Je ne pense pas que la macro "convertit réellement le contenu/l'encodage du fichier." Veuillez me corriger si je me trompe. – Jaywalker

+0

non, ils ne vont pas convertir le fichier, ils ne modifient que les "méta-données" de CVSNT à ce sujet qui affecte la façon dont il sera traité sur checkout, checkin et diff –

0

Tout d'abord, je recommande d'utiliser TortoiseCVS car il a un meilleur support CVSNT. Whie CVS et CVSNT sont très similaires, CVSNT est pasCVS. La boîte de dialogue TortoiseCVS Add affiche les types de fichiers tels qu'ils sont supposés être et vous pouvez y substituer le type de fichier.

Pour la situation existante, en supposant que vous ne souhaitez pas conserver l'historique des fichiers Unicode, vous pouvez essayer ce qui suit.

OK, d'abord l'avertissement:

Tu ne MODIFIER LA MAIN CVS REFERENTIEL (à moins que tu es vraiment désespéré)

Maintenant, pour les instructions pour briser ladite règle, à vos propres risques.

  1. Faites une sauvegarde de votre répertoire de référentiel CVSNT (simple fichier ZIP faire)
  2. Sur le client, assurez-vous que les fichiers Unicode sont effectivement supprimés localement et dans le référentiel.
  3. Dans le répertoire du référentiel CVSNT:
    1. Trouver le répertoire du module où vous avez initialement ajouté les fichiers
    2. Trouver le répertoire Attic
    3. Supprimer les fichiers et les ,v leurs extensions .
  4. Sur le client:
    1. Vérifiez que les fichiers ont ANSI encodage (ol PLAIN fichiers texte)
    2. cvs add à nouveau les fichiers
+0

à moins que cela est un très vieux CVSNT insta llation, il n'y aura pas de dossier Attic - l'Attic est uniquement pris en charge pour la compatibilité ascendante lors d'une opération sur un référentiel qui a été créé avec un serveur qui l'utilisait encore. –

+0

il n'y a pas non plus besoin de supprimer des fichiers de prise en pension comme CVSNT est parfaitement capable de versioning modifications du type de fichier (voir ma réponse) - au moins dans une version de CVSNT qui a été libéré au cours des trois dernières années ou alors ... –

+0

Ce que je décrit les travaux avec les versions cvsnt j'ai utilisé (ne pas avoir accès au moment) - ne peuvent pas discuter avec le grenier, mais tous les dépôts CVSNT que je les ai vu a (peut-être des migrations de dépôts plus). –

0

Aucune des suggestions ici m'a aidé mais cela a fonctionné

  1. sauvegarde le fichier
  2. dans cvsnt supprimer le fichier et commit
  3. restaurer le fichier
  4. dans cvsnt ajouter le fichier à partir de la ligne de commande "ajouter -kt - monfichier.html"
  5. commettras le fichier ajouté

Note: type de fichier est spécifié avec le commutateur -k suivi par type de fichier

Questions connexes