import svn.remote import os outputFolder = "repo" if not os.path.exists(outputFolder): os.makedirs(outputFolder) ignoreDirectory = ["trunk/downloads"] ignoreFile = ["*"]; githubUrl = "https://github.com/Lougarou/backtestfbprophet" r = svn.remote.RemoteClient(githubUrl) revision = r.info()["commit_revision"] print("revision: ",revision) print("I know this is awfully slow") entries = r.list_recursive() print("exporting...") for entry in entries: directory = entry[0] filename = entry[1]["name"] if ("branches" in directory): #this was only for my case you can remove this! continue if (directory in ignoreDirectory): #you can add more conditions if you want I needed only folder skipping continue x = svn.remote.RemoteClient(githubUrl+'/'+directory+"/"+filename) #create folder if doesnt exist locally if not os.path.exists(outputFolder+"/" + directory): os.makedirs(outputFolder+"/" + directory) print(outputFolder+"/" + directory + "/" + filename) x.export(outputFolder+"/"+directory+"/"+filename, revision=revision)