浏览代码

Flesh out error handling for merge/rebase.

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

+ 13
- 5
gitup/update.py 查看文件

@@ -62,16 +62,17 @@ def _rebase(repo, name):
try:
res = repo.git.rebase(name)
except exc.GitCommandError as err:
if "unstaged changes" in err.stderr:
msg = err.stderr.replace("\n", " ").strip()
if "unstaged changes" in msg:
print(" error:", "unstaged changes.")
elif "uncommitted changes" in err.stderr:
elif "uncommitted changes" in msg:
print(" error:", "uncommitted changes.")
else:
try:
repo.git.rebase("--abort")
except exc.GitCommandError:
pass
print(" error:", err.stderr.replace("\n", " "))
print(" error:", msg if msg else "rebase conflict")
else:
print(" done.")

@@ -81,8 +82,15 @@ def _merge(repo, name):
try:
repo.git.merge(name)
except exc.GitCommandError as err:
print(err)
### TODO: etc
msg = err.stderr.replace("\n", " ").strip()
if "local changes" in msg and "would be overwritten" in msg:
print(" error:", "uncommitted changes.")
else:
try:
repo.git.merge("--abort")
except exc.GitCommandError:
pass
print(" error:", msg if msg else "merge conflict")
else:
print(" done.")



正在加载...
取消
保存