web-dev-qa-db-fra.com

Comment dire explicitement à SVN de traiter un fichier comme du texte, pas comme binaire

J'ai archivé un certain nombre de fichiers dans SVN sans avoir configuré correctement leurs types Mime. SVN les a initialement classées comme binaires.

Depuis, j'ai défini leur type Mime dans SVN via propset sur "text/plain; charset = UTF-8" et I'vc s'est assuré que tous les fichiers sont signés UTF-8. Quand je fais 'svn blame filename', svn dit que le fichier est binaire et ne me donne pas une sortie de type blâme explicite.

Avez-vous des suggestions pour convaincre SVN qu'il s'agit vraiment de fichiers texte? 

39
DWright

Définir la propriété svn: mime-type sur "text/plain" aide:

svn propset svn:mime-type text/plain build.xml
svn commit build.xml

En outre, vous pouvez forcer Subversion à traiter un fichier en tant que texte lorsque vous blâmez:

svn blame file/to/blame --force
51
Stefan

J'ai eu le même problème: j'ai archivé un certain nombre de fichiers utf8 (encodage natif pour Linux), dont certains ont été capturés à tort comme binaires et affichant "(bin)". Je ne me suis pas penché sur la cause de l'erreur, mais j'ai vérifié ce qu'il y avait là ...

$ svn propget svn:mime-type *

... a noté que les fichiers texte correctement archivés ne possédaient aucune propriété svn: mime, et a simplement supprimé la propriété svn: mime-type des fichiers texte mal binaires mal réinstallés.

$ svn propdel svn:mime-type [mislabeled-text-file...]
$ svn ci -m "zap binary mime-types" [mislabeled-text-file...]

Cela semble avoir fonctionné sans effet néfaste. Mise en garde: Je ne sais pas du tout comment Windows se comporterait dans ce cas, même si cela est facilement vérifiable.

4
smaines

Cette réponse a la même idée, mais en sens inverse. Les citations qui y figurent sont toujours pertinentes pour votre requête.

1
Eddie Parker

Une fois que vous avez ajouté un fichier au référentiel, vous devez probablement également définir le type dans le REPOSITORY. Utilisez l'URL du référentiel au lieu du chemin de la copie de travail dans votre commande propset.

0
Jim P.

On dirait que les manipulations avec le type mime ne convainc pas svn de traiter un fichier comme un texte. Mais si le type mime correct a été défini avant la première validation, svn traitera le fichier correctement. Par exemple, svn ajoute Eclipse .project et .classpath en tant qu'application/xml et les traite en tant que bin. Mais si avant de vous engager, vous le changez en text/xml, ils seront traités comme du texte. 

0
andrei