// returns a list of remote files in a recursive manner private List <GitNode> GetRemoteFiles(string id, string path, string branch = "master", string filename = "") { List <GitNode> remoteFiles = new List <GitNode>(); try { List <GitNode> dir = RequestFromGit <List <GitNode> >(id, path: filename, branch: branch); foreach (GitNode file in dir) { if (file.type == "tree") { remoteFiles.AddRange(GetRemoteFiles(id: id, branch: branch, filename: file.path, path: path)); } else { file.matches_local = localSha.MatchesCache(path + file.path, file.id); remoteFiles.Add(file); } } return(remoteFiles); } catch (Exception e) { Program.DEBUGLOG("GitNode get error"); return(new List <GitNode>()); } }