class MsPac::VersionControl

Public Class Methods

new(vcs) click to toggle source
# File lib/mspac/version_control.rb, line 28
def initialize(vcs)
    case vcs
    when "bzr"
        raise MsPac::Error::UnsupportedVCS.new(vcs)
    when "git", "hg", "powerpellet"
        @vcs = vcs
    when "svn"
        raise MsPac::Error::UnsupportedVCS.new(vcs)
    else
        raise MsPac::Error::UnsupportedVCS.new
    end
end

Public Instance Methods

clone(repo) click to toggle source
# File lib/mspac/version_control.rb, line 2
def clone(repo)
    return if (repo.nil? || repo.empty?)

    case @vcs
    when "git", "hg"
        system("#{@vcs} clone #{repo}")
    when "powerpellet"
        # do nothing
    else
        raise MsPac::Error::UnsupportedVCS.new(@vcs)
    end
end
ignore_file_perms(name) click to toggle source
# File lib/mspac/version_control.rb, line 15
def ignore_file_perms(name)
    case @vcs
    when "git"
        Dir.chdir(name) do
            system("git config core.filemode false")
        end
    when "hg", "powerpellet"
        # do nothing
    else
        raise MsPac::Error::UnsupportedVCS.new(@vcs)
    end
end
revision() click to toggle source
# File lib/mspac/version_control.rb, line 41
def revision
    case @vcs
    when "git"
        return %x(
            git log --oneline | head -n 1 | awk '{print $1}'
        )
    when "hg"
        return %(hg tip --template "{node}")
    when "powerpellet"
        return "powerpellet"
    else
        raise MsPac::Error::UnsupportedVCS.new(@vcs)
    end
end
update() click to toggle source
# File lib/mspac/version_control.rb, line 56
def update
    case @vcs
    when "git"
        system("git reset && git pull")
    when "hg"
        system("hg pull && hg update")
    when "powerpellet"
        # do nothing
    else
        raise MsPac::Error::UnsupportedVCS.new(@vcs)
    end
end