リポジトリの状態チェック
運用環境への配備は、特定のブランチでのみ実行したいとか最新の修正が取り込まれているか、とか色々調べておきたいですよね。そういう場合に使えそうなコマンドをモジュールにまとめてみました。
# Rake tasks and functions for git.
module Git
# Get current branch name.
def self.branch
`git branch | sed -e '/^[^*]/d' -e 's/* \\(.*\\)/\\1/'`.strip
end
# Check if current branch is same as the param.
def self.branch?(name)
b = branch
if b == name
return true
else
return false
end
end
UP_TO_DATE = 0
NEED_TO_PULL = 1
NEED_TO_PUSH = 2
DIVERGED = 3
# Returns remote status.
# For example, if the repo is up-to-date, returns 0.
def self.remote_status
local = `git rev-parse @`.strip
remote = `git rev-parse @{u}`.strip
base = `git merge-base @ @{u}`.strip
if local == remote
return UP_TO_DATE
elsif local == base
return NEED_TO_PULL
elsif remote == base
return NEED_TO_PUSH
else
return DIVERGED
end
end
# Check if the repo is up-to-date.
def self.up_to_date?
return remote_status == UP_TO_DATE
end
end
Rakefileで使用する場合は以下のように組み込むと良いでしょう。
Rakefile
import 'lib/tasks/git.rake'
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について