added --cached option to scan for cached git files, useful in pre-com…#19
added --cached option to scan for cached git files, useful in pre-com…#19michaelr524 wants to merge 1 commit into
Conversation
pesterhazy
left a comment
There was a problem hiding this comment.
Thanks for the contribution! This seems useful. A few suggestions below to make this more general and reliable.
| (defn find-files-git-cached | ||
| [] | ||
| (let [{:keys [exit out err]} (clojure.java.shell/sh "git" "diff" | ||
| "--cached" "--name-only")] |
There was a problem hiding this comment.
could you use the -z option here, as with ls-files?
| "--cached" "--name-only")] | ||
| (when (not= exit 0) (throw (ex-info "git diff --cached failed" {:err err}))) | ||
| (->> (clojure.string/split out #"\n") | ||
| (filter #(re-matches #".*\.(clj|cljs|cljc|cljx|cljs\.hl|boot)$" %)) |
There was a problem hiding this comment.
why not use git diff --cached --name-only "*.clj" "*.cljs" ...? This would make this very similar to find-files-git
There was a problem hiding this comment.
also the duplication concerns me, you need to add new file extensions in two places
| source (clojure.set/union (find-files-source)) | ||
| git (clojure.set/union (find-files-git)))] | ||
| git (clojure.set/union (find-files-git)) | ||
| cached (clojure.set/union (find-files-git-cached)))] |
There was a problem hiding this comment.
I think git diff would be useful as well as git diff --cached. Perhaps two options?
-D --git-diff Automatically scan for changed files using git diff
-C -git-diff-cached Automatically scan for changed files using git diff --cached
…mit hooks