module Avm::Git::Scms::Git::Commits

def commit(source)

Returns:
  • (Avm::Git::Scms::Git::Commit, nil) -
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

def commit_dirty(commit_info = nil)

Returns:
  • (Avm::Git::Scms::Git::Commit, nil) -

Parameters:
  • commit_info (Avm::Scms::CommitInfo) --
def commit_dirty(commit_info = nil)
  return nil unless git_repo.dirty?
  commit_info = ::Avm::Scms::CommitInfo.assert(commit_info)
  commit_info = commit_info.message(COMMIT_DIRTY_DEFAULT_MESSAGE) if
    commit_info.message.blank?
  git_repo.command('add', '.').execute!
  run_commit(commit_info)
  head_commit
end

def commit_if_change(commit_info = nil)

Returns:
  • (Avm::Git::Scms::Git::Commit, nil) -

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

def head_commit

Returns:
  • (Avm::Git::Scms::Git::Commit) -
def head_commit
  commit(git_repo.head)
end

def reset_and_commit(commit_to_reset, commit_info)

Returns:
  • (Avm::Git::Scms::Git::Commit) -

Parameters:
  • commit_info (Avm::Scms::CommitInfo) --
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