2009-01-19 15 views
35

MIM türlerini doğru şekilde ayarlamadan SVN'ye kontrol ettiğim birkaç dosyam var. SVN başlangıçta bunları ikili olarak sınıflandırdı.SVN'ye bir dosyayı ikili olarak değil, metin olarak işlemesi için açıklık nasıl söylenir

Mime türlerini SVN'de propset aracılığıyla "text/plain; charset = UTF-8" olarak ayarladım ve tüm dosyaların UTF-8 imzalı olduğundan emin olduk. 'Svn blame dosyaadı' yaptığımda, svn, dosyanın ikili olduğunu ve bana açık bir suç tipi çıktı vermediğini söylüyor.

Bunlar gerçekten metin dosyaları olduğunu SVN nasıl ikna hakkında herhangi bir öneriniz?

+0

Uygun olmayan mime türünü pardus döndürür mü? –

+0

Etkileşim için teşekkürler! Evet, propget doğru türden döner. Ben bir tane yaptım: svn propget svn: Mime türü dosya adı Çıkış: text/plain; charset = UTF-8 – DWright

+1

@DWright, sadece onaylamak için, svn-propset, yerel çalışma kopyasındaki türünü değiştirir ve depoda değiştirilecek olan tür için bir svn commit_'ı siler. Her iki türün de çalışabilmesi için svn diff/svn suçlamasıyla eşleşmesi ve "fark edilebilir" olması gerekir. – Fox

cevap

46

svn Ayar: mim tipi özelliğini sadece "metin/düz" yardımcı olur: Ayrıca

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

, sen suçlamaya zaman metin olarak bir dosya tedavi etmek Subversion zorlayabilirsiniz:

svn blame file/to/blame --force 
+0

Teşekkürler. - İhtiyacım olan şeyi bayrak yaptı. Ayrıca sadece "text/plain" kullanmayı denedim ama bu onu değiştirmedi. – DWright

+7

Gelecek okuyucular için: svn propset svn: mime-type text/plain build.xml –

+0

Use'find. -name * .proto | xargs svn propset svn: mime-type text/düz 'tüm' proto 'dosyasını düz metin dosyası olarak işaretlemek için: –

1

This answer aynı fikre sahip, ancak tersi. Buradaki alıntılar hala sorgunuzla alakalı.

+0

Evet, bunu tersten denedim ve özelliği metne/düzlüğe ayarladım. Çalışmıyor gibiydi. – DWright

0

Depoya bir dosya ekledikten sonra, muhtemelen REPOSITORY üzerinde bir tür de ayarlamanız gerekir. Propset komutunuzdaki çalışma kopyasının yolu yerine, havuzun URL'sini kullanın.

+1

Bu yanlış (veya yanlış olması için yeterince açık değil). Subversion özellikleri, herhangi bir dosya değişikliğinde olduğu gibi, bunları kontrol ettiğinizde depoya bağlıdır. – yam655

0

MIME tipi manipülasyonlar, bir dosyayı metin olarak işlemek için svn'yi ikna etmemektedir. Ancak, ilk bağlamadan önce uygun mime-tipi ayarlanmışsa, svn dosyayı düzgün bir şekilde ele almalıdır. Örneğin, svn eclipse .project ve .classpath'ı application/xml olarak ekler ve bunları bin olarak kabul eder. Ancak, ilk işlemden önce metni/xml olarak değiştirirseniz, bunlar metin olarak kabul edilir.

2

Aynı sorun vardı: Bazıları utf8 dosyalarını (Linux için yerel kodlama) kontrol ettim, bazıları hatalı olarak ikili olarak alındı ​​ve "(bin)" gösteriliyordu. Hiç mim özelliği ve sadece svn silindi: Ben

$ svn propget svn:mime-type * 

... doğru kontrol-metin dosyaları hiçbir svn olduğunu kaydetti ... hata oluştu nasıl eski defterleri, ama orada ne kontrol etmedi : metin dosyalarından mime-type özelliği yanlış ikili olarak hatalı.

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

Bu hiçbir kötü etkisi ile çalışmış gibi görünüyor. Caveat usor: Bu davada Windows'un nasıl davranacağı hakkında hiçbir fikrim yok, ancak bu kolayca test edilebilir.