git-filter-repo/t/t9391/print_progress.py
Elijah Newren e333be7b17 filter-repo: consistently use bytestrings for directory names
Signed-off-by: Elijah Newren <newren@gmail.com>
2019-10-21 09:09:23 -07:00

42 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Please see the
***** API BACKWARD COMPATIBILITY CAVEAT *****
near the top of git-filter-repo
"""
import sys
import git_filter_repo as fr
if len(sys.argv) != 3:
raise SystemExit("Syntax:\n %s SOURCE_REPO TARGET_REPO")
source_repo = sys.argv[1].encode()
target_repo = sys.argv[2].encode()
total_objects = fr.GitUtils.get_total_objects(source_repo) # blobs+trees
total_commits = fr.GitUtils.get_commit_count(source_repo)
object_count = 0
commit_count = 0
def print_progress():
global object_count, commit_count, total_objects, total_commits
print("\rRewriting commits... %d/%d (%d objects)"
% (commit_count, total_commits, object_count), end='')
def my_blob_callback(blob, metadata):
global object_count
object_count += 1
print_progress()
def my_commit_callback(commit, metadata):
global commit_count
commit_count += 1
print_progress()
args = fr.FilteringOptions.parse_args(['--force', '--quiet'])
filter = fr.RepoFilter(args,
blob_callback = my_blob_callback,
commit_callback = my_commit_callback)
filter.run()