mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge pull request #2654 from github/vmg/git-linguist-fixes
Small fixes for git-linguist
This commit is contained in:
@@ -71,17 +71,20 @@ class GitLinguist
|
||||
end
|
||||
|
||||
def write_cache(object)
|
||||
tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil)
|
||||
return unless File.directory? @repo_path
|
||||
|
||||
File.open(tmp_path, "wb") do |f|
|
||||
marshal = Marshal.dump(object)
|
||||
f.write(Zlib::Deflate.deflate(marshal))
|
||||
begin
|
||||
tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil)
|
||||
File.open(tmp_path, "wb") do |f|
|
||||
marshal = Marshal.dump(object)
|
||||
f.write(Zlib::Deflate.deflate(marshal))
|
||||
end
|
||||
|
||||
File.rename(tmp_path, cache_file)
|
||||
rescue => e
|
||||
(File.unlink(tmp_path) rescue nil)
|
||||
raise e
|
||||
end
|
||||
|
||||
File.rename(tmp_path, cache_file)
|
||||
tmp_path = nil
|
||||
ensure
|
||||
(File.unlink(tmp_path) rescue nil) if tmp_path
|
||||
end
|
||||
|
||||
def load_cache
|
||||
@@ -96,24 +99,18 @@ end
|
||||
def git_linguist(args)
|
||||
incremental = true
|
||||
commit = nil
|
||||
git_dir = nil
|
||||
|
||||
parser = OptionParser.new do |opts|
|
||||
opts.banner = "Usage: git-linguist [OPTIONS] stats|breakdown|dump-cache|clear|disable"
|
||||
|
||||
opts.on("-f", "--force", "Force a full rescan") { incremental = false }
|
||||
opts.on("--git-dir=DIR", "Path to the git repository") { |v| git_dir = v }
|
||||
opts.on("--commit=COMMIT", "Commit to index") { |v| commit = v}
|
||||
end
|
||||
|
||||
parser.parse!(args)
|
||||
|
||||
git_dir ||= begin
|
||||
pwd = Dir.pwd
|
||||
dotgit = File.join(pwd, ".git")
|
||||
File.directory?(dotgit) ? dotgit : pwd
|
||||
end
|
||||
|
||||
git_dir = `git rev-parse --git-dir`.strip
|
||||
raise "git-linguist must be ran in a Git repository" unless $?.success?
|
||||
wrapper = GitLinguist.new(git_dir, commit, incremental)
|
||||
|
||||
case args.pop
|
||||
|
||||
@@ -126,12 +126,13 @@ module Linguist
|
||||
end
|
||||
|
||||
protected
|
||||
MAX_TREE_SIZE = 100_000
|
||||
|
||||
def compute_stats(old_commit_oid, cache = nil)
|
||||
return {} if current_tree.count_recursive(MAX_TREE_SIZE) >= MAX_TREE_SIZE
|
||||
|
||||
old_tree = old_commit_oid && Rugged::Commit.lookup(repository, old_commit_oid).tree
|
||||
|
||||
read_index
|
||||
|
||||
diff = Rugged::Tree.diff(repository, old_tree, current_tree)
|
||||
|
||||
# Clear file map and fetch full diff if any .gitattributes files are changed
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Linguist
|
||||
VERSION = "4.6.2"
|
||||
VERSION = "4.6.3"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user