简体   繁体   English

如何从 python 脚本运行 git-filter-repo 命令?

[英]How to run git-filter-repo commands from python script?

Trying to run git-filter-repo command from python.尝试从 python 运行 git-filter-repo 命令。 I can't figure out how this should be done.我不知道应该怎么做。 git filter-repo --path README.md --path guides/ --path tools/releases

So far I have:到目前为止,我有:

    filtering_options = git_filter_repo.FilteringOptions.default_options()
    filtering_options.source = _fragment_repo_git_directory(workspace, "svn-import")
    filtering_options.target = _main_repo_git_directory(workspace).encode()
    filtering_options.force = True

    filtering_options.replace_refs = "update no add"
    repo_filter = git_filter_repo.RepoFilter(
        filtering_options,
        #  ?????????
    )
    repo_filter.run()

You can take inspiration from the newren/git-filter-repo/contrib/filter-repo-demos/lint-history script, which does use a callback function as your #?????????您可以从newren/git-filter-repo/contrib/filter-repo-demos/lint-history脚本中获得灵感,该脚本确实使用回调 function 作为您的#????????? argument:争论:

try:
  import git_filter_repo as fr
except ImportError:
  raise SystemExit("Error: Couldn't find git_filter_repo.py.  Did you forget to make a symlink to git-filter-repo named git_filter_repo.py or did you forget to put the latter in your PYTHONPATH?")

def lint_non_binary_blobs(blob, metadata):
  ...

filter = fr.RepoFilter(args, blob_callback=lint_non_binary_blobs)
filter.run()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM