whole_func_string: function(repo, commit){
      return commit.getTree()
      .then(function(tree){
          return Git.Diff.treeToWorkdir(repo, tree);
      })
      .then(function(diff){
          return diff.patches();
      });
  }
func_code_string: function(repo, commit){
      return commit.getTree()
      .then(function(tree){
          return Git.Diff.treeToWorkdir(repo, tree);
      })
      .then(function(diff){
          return diff.patches();
      });
  }
func_documentation_string: git.diff(repo) git.diff(repo, commit1) git.diff(repo, commit1, commit2) git.diff(repo, commit1, commit2, { 'name-only': true }) TODO: git.diff(repo, commit1, { branch: 'dev'}) git.diff(repo, {branch: 'master'}, { branch: 'dev'}) git.diff(repo, {branch: 'master'}, commit2) git.diff(repo, {tree: 'x'}, { commit: 'y'}) git.diff(repo, { path: 'file.txt' })