hrbrmstr / cloc

🔢 R package to the perl cloc script (which counts blank lines, comment lines, and physical lines of source code in source files/trees/archives)
Other
58 stars 4 forks source link

is cloc_git by commit supposed to already work? #3

Open maelle opened 6 years ago

maelle commented 6 years ago

I get a bug using it 😢 but understand if it's not implemented yet!

hrbrmstr commented 6 years ago

aye, it should work:

library(cloc)
getwd()
## [1] "/Users/hrbrmstr/packages/hrbrthemes"

cloc_git(".", "4ea652b9ccee7cecec394eaa4a765ff975235e9b")
## # A tibble: 6 x 10
##   source   language file_count file_count_pct   loc     loc_pct blank_lines
##    <chr>      <chr>      <int>          <dbl> <int>       <dbl>       <int>
## 1      .       HTML         21     0.43750000  2556 0.656563062         620
## 2      .          R         17     0.35416667   807 0.207295145         157
## 3      .   Markdown          4     0.08333333   247 0.063447213          74
## 4      .        CSS          2     0.04166667   230 0.059080401          60
## 5      .       YAML          2     0.04166667    40 0.010274852           9
## 6      . JavaScript          2     0.04166667    13 0.003339327           1
## # ... with 3 more variables: blank_line_pct <dbl>, comment_lines <int>,
## #   comment_line_pct <dbl>

cloc_git(".", "b2ce784686e8368c7163a75cc417b318d9a45379")
## # A tibble: 6 x 10
##   source   language file_count file_count_pct   loc     loc_pct blank_lines
##    <chr>      <chr>      <int>          <dbl> <int>       <dbl>       <int>
## 1      .       HTML         21     0.41176471  2556 0.628318584         620
## 2      .          R         19     0.37254902   920 0.226155359         180
## 3      .   Markdown          4     0.07843137   305 0.074975418          83
## 4      .        CSS          2     0.03921569   230 0.056538840          60
## 5      .       YAML          3     0.05882353    44 0.010816126           9
## 6      . JavaScript          2     0.03921569    13 0.003195674           1
## # ... with 3 more variables: blank_line_pct <dbl>, comment_lines <int>,
## #   comment_line_pct <dbl>

It might just be an issue with my horribad documentation :-)

maelle commented 6 years ago

Oh my maybe I'm using hash instead of identifier 😱🙈

maelle commented 6 years ago

Oh actually sha=identifier?! I get this error

Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  line 1 did not have 5 elements
maelle commented 6 years ago

If I print dat (yes my debugging methods could be better) when using

I get

``` r
> getwd()
[1] "C:/Users/Maelle/Documents/cloc"
> cloc::cloc_git(getwd(), "3643cd09d4b951b1b35d32dffe35985dfe7756c4")
[1] ""                                                         
[2] "1 error:"                                                 
[3] "Unable to read:  3643cd09d4b951b1b35d32dffe35985dfe7756c4"
 Show Traceback

 Rerun with Debug
 Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  line 1 did not have 5 elements 
hrbrmstr commented 6 years ago

doing the same…one sec

hrbrmstr commented 6 years ago
setwd("~/packages/cloc")

getwd()
## [1] "/Users/hrbrmstr/packages/cloc"

cloc::cloc_git(getwd(), "3643cd09d4b951b1b35d32dffe35985dfe7756c4")
## # A tibble: 4 x 10
##   source language file_count file_count_pct   loc      loc_pct blank_lines blank_line_pct
##    <chr>    <chr>      <int>          <dbl> <int>        <dbl>       <int>          <dbl>
## 1   cloc     Perl          1          0.125 10059 0.9880168942         787    0.933570581
## 2   cloc Markdown          2          0.250    60 0.0058933307          31    0.036773428
## 3   cloc        R          4          0.500    52 0.0051075533          22    0.026097272
## 4   cloc     YAML          1          0.125    10 0.0009822218           3    0.003558719
## # ... with 2 more variables: comment_lines <int>, comment_line_pct <dbl>setwd("~/packages/cloc")

I'll be able to fire up windows here later tonight and see if it's something related to Windows file system ops and the perl script and i shld try to have this fail more gracefully anyway so tis a good find regardless.

maelle commented 6 years ago

Do you think one could use git2r to create a copy of the repo as it was at that commit and then run cloc on it? I will need to do such a copy to look at the NAMESPACE at a given commit anyway.

hrbrmstr commented 6 years ago

i have been able to replicate the issue (i get a diff error) on Windows and may have a workaround soon. interestingly enough it works from an RStudio Terminal and from CMD.EXE so it's likely a problem with the system() call (that I'll switch over to processx in a bit).

maelle commented 6 years ago

Cool!

For my current use case I am git resetting hard at the commit bc I need to parse the NAMESPACE at that commit too so it is just easiee 😁

hrbrmstr commented 6 years ago

hrm. still getting unable to read the specific commit tag. will keep poking

hrbrmstr commented 6 years ago

hrm. mebbe this? https://github.com/AlDanial/cloc/issues/252

maelle commented 6 years ago

ah in this case better to wait and suggest the approach of copying and git resetting?

hrbrmstr commented 6 years ago

it'll now clone remote repos provided they are specified like they are for devtools (git://)