def add_commit(repo_dir, upstream, commits, commit): if not git.valid_id(commit): print "This sha1 is not a valid commit id: %s" % commit return try: on_branch = git.commit_on_branch(repo_dir, commit, upstream) except: on_branch = False if not on_branch: print "Commit %s is not on upstream branch '%s'" % (commit, upstream) return try: full_rev = git.get_rev(repo_dir, id=commit) except git.GitError, e: full_rev = None
print " * delete-N: delete entered commit" print " * browser: (re)open the bug in a browser" user_input = raw_input(prompt % (len(commits), _list_commits())).strip() guess_re = re.compile('^guess-(?P<guess>\d+)$') delete_re = re.compile('^delete-(?P<delete>\d+)$') while user_input != 'done': guess_match = guess_re.search(user_input) delete_match = delete_re.search(user_input) if user_input == "browser": _open_browser() elif len(guesses.keys()) > 0 and user_input == "guess-all": for guess in guesses: if git.valid_id(guess): commits.append(guess) else: print "Not adding %s because it's invalid" % guess elif len(guesses) > 0 and guess_match: try: guess_num = int(guess_match.group('guess')) except ValueError: guess_num = None if guess_num is None or guess_num < 1 or guess_num > len(guesses.keys()): print "You are trying to use a guess that's invalid" else: guessed_commit = guesses.keys()[guess_num - 1] if git.valid_id(guessed_commit): add_commit(repo_dir, upstream, commits, guesses.keys()[guess_num - 1])