parameters: (ancestor, child)
return_statement: return merge_base == rev_parse(ancestor)
docstring: Return True if 'child' is a descendent of 'ancestor' and thus
    could be fast-forward merged.
docstring_summary: Return True if 'child' is a descendent of 'ancestor' and thus
    could be fast-forward merged.
docstring_tokens: Return True if child is a descendent of ancestor and thus could be fast - forward merged .
function: def is_fast_forward(ancestor, child):
    """
    Return True if 'child' is a descendent of 'ancestor' and thus
    could be fast-forward merged.
    """
    try:
      merge_base = check_output(['git', 'merge-base', ancestor, child]).strip()
    except:
      # If either of the commits is unknown, count this as a non-fast-forward.
      return False
    return merge_base == rev_parse(ancestor)
function_tokens: def is_fast_forward ( ancestor , child ) : try : merge_base = check_output ( [ 'git' , 'merge-base' , ancestor , child ] ) . strip ( ) except : # If either of the commits is unknown, count this as a non-fast-forward. return False return merge_base == rev_parse ( ancestor )