|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
"""
|
|
|
|
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]
|
|
|
|
target_repo = sys.argv[2]
|
|
|
|
|
|
|
|
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),
|
|
|
|
|
|
|
|
def my_blob_callback(blob):
|
|
|
|
global object_count
|
|
|
|
object_count += 1
|
|
|
|
print_progress()
|
|
|
|
|
|
|
|
def my_commit_callback(commit):
|
|
|
|
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()
|