浏览代码

Proper up-to-date-check; fix when branches are empty.

tags/v0.2
Ben Kurtovic 10 年前
父节点
当前提交
fbf29b4688
共有 1 个文件被更改,包括 11 次插入1 次删除
  1. +11
    -1
      gitup/update.py

+ 11
- 1
gitup/update.py 查看文件

@@ -56,6 +56,11 @@ def _fetch_remote(remote):
remote.fetch() ### TODO: show progress
print(" done.")

def _is_up_to_date(repo, branch, upstream):
"""Return whether *branch* is up-to-date with its *upstream*."""
base = repo.git.merge_base(branch.commit, upstream.commit)
return repo.commit(base) == upstream.commit

def _rebase(repo, name):
"""Rebase the current HEAD of *repo* onto the branch *name*."""
print(" rebasing...", end="")
@@ -101,7 +106,12 @@ def _update_branch(repo, branch, merge, rebase, stasher=None):
if not upstream:
print(" skipped: no upstream is tracked.")
return
if branch.commit == upstream.commit: ### TODO: a better check is possible
try:
branch.commit, upstream.commit
except ValueError:
print(" skipped: branch contains no revisions.")
return
if _is_up_to_date(repo, branch, upstream):
print(" up to date.")
return
if stasher:


正在加载...
取消
保存