anchor.diff:      final uri = Uri.parse(gitUri);
       if (uri.scheme.isEmpty || uri.scheme == 'file') {
         final pathSegments = uri.pathSegments;
  -      targetDirName = pathSegments.elementAt(pathSegments.length - 1);
  +      targetDirName = pathSegments.elementAt(pathSegments.length - 2);
       }
     }
   
  
positive.code:   _log.info('cloning git repo $gitUri into parent directory $parentDirectory '
        '$extraLogMessagePart');
  
    await runGit(['clone', gitUri, targetDirName ?? ''],
        processWorkingDir: parentDirectory.path);
  
    _log.finest('successfully cloned git repo $gitUri into parent directory '
        '$parentDirectory $extraLogMessagePart');
  
    return gitWorkspaceDir(gitUri, parentDirectory);
  }
  
  Future<GitDir> pull(String gitUri, Directory gitDirectory) async {
  
negative.code: 
  Logger _log = new Logger('jefe.git');
  
  Future<GitDir> gitWorkspaceDir(String gitUri, Directory parentDirectory,
          {String targetDirName}) =>
      GitDir.fromExisting(gitWorkspacePath(gitUri, parentDirectory,
          targetDirName: targetDirName));
  
  String gitWorkspaceName(String gitUri, {String targetDirName}) =>
      targetDirName != null ? targetDirName : p.basenameWithoutExtension(gitUri);
  
  String gitWorkspacePath(String gitUri, Directory parentDirectory,
          {String targetDirName}) =>
      p.join(parentDirectory.path,
          gitWorkspaceName(gitUri, targetDirName: targetDirName));
  
  enum OnExistsAction { pull, ignore }
  
  