Module: Avm::Git::Scms::Git::Commits

Defined in:
lib/avm/git/scms/git/commits.rb

Instance Method Summary collapse

Instance Method Details

#commit(source) ⇒ Avm::Git::Scms::Git::Commit?

Returns:



9
10
11
12
13
14
15
16
17
18
# File 'lib/avm/git/scms/git/commits.rb', line 9

def commit(source)
  if source.is_a?(::Avm::Git::Scms::Git::Commit)
    return source if source.git_repo == git_repo

    raise 'Not same Git repository'
  end
  git_repo.commitize(source).if_present do |v|
    ::Avm::Git::Scms::Git::Commit.new(self, v)
  end
end

#commit_if_change(commit_info = nil) ⇒ Avm::Git::Scms::Git::Commit?

Parameters:

  • commit_info (Avm::Scms::CommitInfo) (defaults to: nil)

Returns:



22
23
24
25
26
27
# File 'lib/avm/git/scms/git/commits.rb', line 22

def commit_if_change(commit_info = nil)
  tracker = ::Avm::Git::Scms::Git::ChangeTracker.new(self, commit_info)
  tracker.start
  yield
  tracker.stop
end

#head_commitAvm::Git::Scms::Git::Commit



30
31
32
# File 'lib/avm/git/scms/git/commits.rb', line 30

def head_commit
  commit(git_repo.head)
end

#reset_and_commit(commit_to_reset, commit_info) ⇒ Avm::Git::Scms::Git::Commit

Parameters:

  • commit_info (Avm::Scms::CommitInfo)

Returns:



36
37
38
39
# File 'lib/avm/git/scms/git/commits.rb', line 36

def reset_and_commit(commit_to_reset, commit_info)
  git_repo.command('reset', '--soft', commit(commit_to_reset).git_commit.id).execute!
  commit_dirty(commit_info)
end