소스 검색

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.")



불러오는 중...
취소
저장