anchor.diff:  
   Future _checkoutBare(TaskContext ctx, String gitDir, String workTree,
                        String desiredBranch) {
  -  final args = _getGitArgs(gitDir, workTree);
  -  args.addAll(['checkout', '--orphan', desiredBranch]);
  +  final args = _getGitArgs(gitDir, workTree, ['checkout', '--orphan', desiredBranch]);
     return Process.run('git', args)
         .chain((ProcessResult pr) {
           _throwIfProcessFailed(ctx, pr);
  -        final args = _getGitArgs(gitDir, workTree);
  -        args.addAll(['rm', '-rf', '.']);
  +        final args = _getGitArgs(gitDir, workTree, ['rm', '-rf', '.']);
           return Process.run('git', args);
         })
         .transform((ProcessResult pr) {
  
positive.code: }
  
  Future _doCommitComplex(TaskContext ctx, String workTree, String gitDir) {
    final args = _getGitArgs(gitDir, workTree);
    // TODO: need more info for commit message
    args.addAll(['add', '--all']);
    return Process.run('git', args)
        .chain((ProcessResult pr) {
          _throwIfProcessFailed(ctx, pr);
          final args = _getGitArgs(gitDir, workTree);
          // TODO: need more info for commit message
          args.addAll(['commit', '-m', 'new goodness', '.']);
  
          return Process.run('git', args);
        })
  
negative.code: 
  Future _ensureProperBranch(TaskContext ctx, String gitDir, String workTree,
                             String desiredBranch) {
    final args = _getGitArgs(gitDir, workTree, ['rev-parse', '--abbrev-ref', 'HEAD']);
  
    return Process.run('git', args)
        .transform((ProcessResult pr) {
  