網頁

2016年9月29日 星期四

SVN 謎團

TortoiseSVN import 成功
SVN Checkout 失敗

錯誤訊息: zlib (uncompress): corrupt data: Decompression of svndiff data failed
每次 Checkout 失敗的位置都不一樣,只能取回部分檔案。

懷疑是網路問題,但關閉防火牆也沒有用

執行"TortoiseSVN/Clean up" 之後 "TortoiseSVN/Update to revision" 可以取回所有檔案

至 SVN伺服器 可以成功執行
svnadmin dump OldRepository>OldRepository.dmp
svnadmin create NewRepository
svnadmin load NewRepository <OldRepository.dmp
沒有錯誤,但是客戶端還是一樣的問題

懷疑是新 import 進去的檔案錯誤,想移除後再 import 一次
svndumpfilter exclude "vc/CrossMonitor.2016" < OldRepository.dmp > filtered.dmp
rm -rf test
svnadmin create test
svnadmin load test < filtered.dmp
客戶端不能 import,產生下列錯誤
Can't read file 'D:\Subversion\test\db\revs\0\246': End of file found

版本 0-245正常,256失敗
svnadmin dump OldRepository -r0:245>245.dmp
rm -rf test
svnadmin create test
svnadmin load test < 245.dmp
客戶端可以 import,但一樣不能 checkout

到另一台客戶端可以成功 Checkout

修改 MTU 從 1500 到 1400,也沒有用,命令如下
netsh interface ipv4 show subinterfaces
netsh interface ipv4 set subinterface Wi-Fi mtu=1400 store=persistent

最後乾脆建立一個空的 Repository,可以 import,也可以 checkout
甚至舊的 Repository 也可以 checkout 了,天啊!

想查也沒得查了!

2016年9月6日 星期二

SpeechSynthesisUtterance 無法說中文

之前參考 Speech Synthesis API 製作 語音學習站
發現其中 中文的發音 在部分電腦可以正常發音,有些則不行

之後參考 SpeechSynthesisUtteranceGetting Started with the Speech Synthesis API 修正


// Chrome loads voices asynchronously.
window.speechSynthesis.onvoiceschanged = function(e) {
  var synth = window.speechSynthesis;
  voices = synth.getVoices();
  var voice_1 = document.getElementById('voice_1');
  while (voice_1.options.length) {
    voice_1.remove(0);
  }
  var voice_2 = document.getElementById('voice_2');
  while (voice_2.options.length) {
    voice_2.remove(0);
  }
  voices.forEach(function(voice, i) {
  var opt1 = document.createElement("option");
  opt1.textContent = voice.name + ' (' + voice.lang + ")";
  opt1.setAttribute('data-lang', voice.lang);
  opt1.setAttribute('data-name', voice.name);
  if (voice.lang == "en-US") {
    opt1.selected = true;
  }
  voice_1.appendChild(opt1);
});