2013-05-10 2 views
1

하루가 끝나는 날마다 매일 RoR 환경에서 metric_fu를 실행하여 코드 품질을 측정합니다. 오늘까지는 모든 것이 잘 작동했습니다 ...Metric_fu - UTF-8의 유효하지 않은 바이트 시퀀스

metric_fu를 실행하려고하면 오늘부터 내 결과입니다.

$ bundle exec metric_fu -r 
F, [2013-05-10T17:11:45.980014 #26798] FATAL -- : invalid byte sequence in UTF-8 (ArgumentError) 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/git_analyzer.rb:16:in `split' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/git_analyzer.rb:16:in `get_diff' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/source_control.rb:37:in `get_updated_files_from_log' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/source_control.rb:11:in `get_updated_files_change_info' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:250:in `parse_logs_for_updated_files' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:177:in `calculate_revision_data' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:165:in `block in calculate_revision_changes' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:160:in `each' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:160:in `calculate_revision_changes' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:59:in `analyze' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/lib/churn/churn_calculator.rb:44:in `report' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/bin/churn:32:in `report_churn' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/bin/churn:40:in `run' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/main-5.2.0/lib/main/program/class_methods.rb:155:in `block in run' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/main-5.2.0/lib/main/program/class_methods.rb:144:in `catch' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/main-5.2.0/lib/main/program/class_methods.rb:144:in `run' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/main-5.2.0/lib/main/factories.rb:18:in `run' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/main-5.2.0/lib/main/factories.rb:25:in `Main' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/churn-0.0.28/bin/churn:6:in `<top (required)>' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/bin/mf-churn:11:in `load' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/bin/mf-churn:11:in `<top (required)>' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/mf-churn:19:in `load' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/mf-churn:19:in `<main>' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/metrics/churn/churn.rb:10:in `analyze': undefined method `match' for nil:NilClass (NoMethodError) 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/metrics/generator.rb:129:in `block in generate_report' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/metrics/generator.rb:127:in `each' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/metrics/generator.rb:127:in `generate_report' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/reporting/report.rb:63:in `add' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/run.rb:25:in `block in run_reports' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/run.rb:23:in `each' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/run.rb:23:in `run_reports' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/run.rb:10:in `run' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/cli/helper.rb:11:in `run' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/lib/metric_fu/cli/client.rb:18:in `run' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/metric_fu-4.1.2/bin/metric_fu:9:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/metric_fu:19:in `load' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/metric_fu:19:in `<main>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>' 

여기에서 비슷한 질문을 발견했습니다. https://github.com/jscruggs/metric_fu/issues/61.

MetricFu::Configuration.run do |config| 
    config.syntax_highlighting = false 
end 

불행하게도이 작동하지 않았다 : GitHub의에서 질문의 결과로, 나는 다음과 같은 내용으로 내 프로젝트의 루트 디렉토리에 '.metrics를'라는 이름의 파일을 만들었습니다.

코드를 제외하고 지난 며칠간 업데이트 된 것은 없으므로이 오류가 갑자기 발생하는 이유는 무엇입니까?

이 내 루비 버전입니다 : 사전에

$ ruby -v 
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0] 

감사합니다!

편집

그것은 이탈을 비활성화하여이 문제를 우회 할 수 있습니다. 당신은 다음과 같이 --no-churn을 추가하여 이탈을 해제 할 수 있습니다

$ metric_fu -r --no-churn 

편집 2

한번 --no-churn을 추가하기 때문에, Metric_fu 다시 완벽하게 작동합니다. 같은 코드가 분석되는 동안 Churn이 다음 보고서에서 활성화되었습니다. Github에서에

문제를 만든 :

답변

1

https://github.com/metricfu/metric_fu/issues/70이 문제 on the metric_fu issues page를 입력하십시오 (당신이 이전의 repo에 대한 링크를했다). 스택 추적에 따라 실제로 Churn에서 문제가 될 수 있습니다 (metric_fu는 처리하지 않음). 또한 내 how to write a bug report page을 확인하십시오. 거기에있는 버그에 대해 알려 드리겠습니다.

+0

감사합니다. 지금은 혼란을 방지하여 문제를 해결했습니다. '$ metric_fu -r --no-churn' –

0

재미있는 프로젝트 또는 파일의 다른 세부 사항에 대해서는 언급하지 않았습니다. 나는 churn에서 이것을 디버깅하려고 할 수는 있지만, 많이 벗어날 필요는 없다. metric_fu 문제 또는 변동 문제를 직접 신고 할 수 있습니다. 두 프로젝트를 모두 따르므로 두 경우 모두 후속 조치를 취할 것입니다.

+0

가능한 경우 처리에 실패한 파일을 출력하기위한 metric_fu 문제 (https://github.com/metricfu/metric_fu/issues/68)를 추가했습니다. – BF4

관련 문제