Sha256: c0e305fe34f9f3dc430b395ab124be29416d9a67c7d72e0f8c578dfaa5955ed8

Contents?: true

Size: 749 Bytes

Versions: 4

Compression:

Stored size: 749 Bytes

Contents

module Retest
  module VersionControl
    module Git

      module_function

      def installed?
        system "git -C . rev-parse 2>/dev/null"
      end

      def name
        'git'
      end

      def files(extensions: [])
        result = (untracked_files + tracked_files).sort
        unless extensions.empty?
          result.select! { |file| /\.(?:#{extensions.join('|')})$/.match?(file) }
        end
        result
      end

      def diff_files(branch)
        `git diff #{branch} --name-only --diff-filter=ACMRT -z`.split("\x0")
      end

      def untracked_files
        `git ls-files --other --exclude-standard -z`.split("\x0")
      end

      def tracked_files
        `git ls-files -z`.split("\x0")
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
retest-2.1.0 lib/retest/version_control/git.rb
retest-2.0.1 lib/retest/version_control/git.rb
retest-2.0.0 lib/retest/version_control/git.rb
retest-2.0.0.pre5 lib/retest/version_control/git.rb