mirror of
https://github.com/newren/git-filter-repo.git
synced 2024-07-06 18:32:14 +02:00
filter-repo (python3): ensure stdin and args are bytes instead of strings
Signed-off-by: Elijah Newren <newren@gmail.com>
This commit is contained in:
parent
effcd5b9ff
commit
8b8d6b4b43
@ -1897,16 +1897,17 @@ class FilteringOptions(object):
|
||||
"files matching none of those options."))
|
||||
|
||||
path.add_argument('--path-match', '--path', metavar='DIR_OR_FILE',
|
||||
type=os.fsencode,
|
||||
action=FilteringOptions.AppendFilter, dest='path_changes',
|
||||
help=_("Exact paths (files or directories) to include in filtered "
|
||||
"history. Multiple --path options can be specified to get "
|
||||
"a union of paths."))
|
||||
path.add_argument('--path-glob', metavar='GLOB',
|
||||
path.add_argument('--path-glob', metavar='GLOB', type=os.fsencode,
|
||||
action=FilteringOptions.AppendFilter, dest='path_changes',
|
||||
help=_("Glob of paths to include in filtered history. Multiple "
|
||||
"--path-glob options can be specified to get a union of "
|
||||
"paths."))
|
||||
path.add_argument('--path-regex', metavar='REGEX',
|
||||
path.add_argument('--path-regex', metavar='REGEX', type=os.fsencode,
|
||||
action=FilteringOptions.AppendFilter, dest='path_changes',
|
||||
help=_("Regex of paths to include in filtered history. Multiple "
|
||||
"--path-regex options can be specified to get a union of "
|
||||
@ -1914,31 +1915,32 @@ class FilteringOptions(object):
|
||||
|
||||
rename = parser.add_argument_group(title=_("Renaming based on paths"))
|
||||
rename.add_argument('--path-rename', '--path-rename-prefix',
|
||||
metavar='OLD_NAME:NEW_NAME', dest='path_changes',
|
||||
metavar='OLD_NAME:NEW_NAME', dest='path_changes', type=os.fsencode,
|
||||
action=FilteringOptions.AppendFilter,
|
||||
help=_("Prefix to rename; if filename starts with OLD_NAME, "
|
||||
"replace that with NEW_NAME. Multiple --path-rename "
|
||||
"options can be specified."))
|
||||
|
||||
refrename = parser.add_argument_group(title=_("Renaming of refs"))
|
||||
refrename.add_argument('--tag-rename', metavar='OLD:NEW',
|
||||
refrename.add_argument('--tag-rename', metavar='OLD:NEW', type=os.fsencode,
|
||||
help=_("Rename tags starting with OLD to start with NEW. For "
|
||||
"example, --tag-rename foo:bar will rename tag foo-1.2.3 "
|
||||
"to bar-1.2.3; either OLD or NEW can be empty."))
|
||||
|
||||
helpers = parser.add_argument_group(title=_("Shortcuts"))
|
||||
helpers.add_argument('--subdirectory-filter', metavar='DIRECTORY',
|
||||
action=FilteringOptions.HelperFilter,
|
||||
action=FilteringOptions.HelperFilter, type=os.fsencode,
|
||||
help=_("Only look at history that touches the given subdirectory "
|
||||
"and treat that directory as the project root. Equivalent "
|
||||
"to using '--path DIRECTORY/ --path-rename DIRECTORY/:'"))
|
||||
helpers.add_argument('--to-subdirectory-filter', metavar='DIRECTORY',
|
||||
action=FilteringOptions.HelperFilter,
|
||||
action=FilteringOptions.HelperFilter, type=os.fsencode,
|
||||
help=_("Treat the project root as instead being under DIRECTORY. "
|
||||
"Equivalent to using '--path-rename :DIRECTORY/'"))
|
||||
|
||||
people = parser.add_argument_group(title=_("Filtering of names/emails"))
|
||||
people.add_argument('--mailmap', dest='mailmap', metavar='FILENAME',
|
||||
type=os.fsencode,
|
||||
help=_("Use specified mailmap file (see git-shortlog(1) for "
|
||||
"details on the format) when rewriting author, committer, "
|
||||
"and tagger names and emails. If the specified file is "
|
||||
@ -1988,8 +1990,9 @@ class FilteringOptions(object):
|
||||
"CALLBACKS section below."))
|
||||
|
||||
location = parser.add_argument_group(title=_("Location to filter from/to"))
|
||||
location.add_argument('--source', help=_("Git repository to read from"))
|
||||
location.add_argument('--target',
|
||||
location.add_argument('--source', type=os.fsencode,
|
||||
help=_("Git repository to read from"))
|
||||
location.add_argument('--target', type=os.fsencode,
|
||||
help=_("Git repository to overwrite with filtered history"))
|
||||
|
||||
misc = parser.add_argument_group(title=_("Miscellaneous options"))
|
||||
@ -2947,7 +2950,8 @@ class RepoFilter(object):
|
||||
|
||||
def _setup_input(self, use_done_feature):
|
||||
if self._args.stdin:
|
||||
self._input = sys.stdin
|
||||
self._input = sys.stdin.detach()
|
||||
sys.stdin = None # Make sure no one tries to accidentally use it
|
||||
self._fe_orig = None
|
||||
else:
|
||||
skip_blobs = (self._blob_callback is None and
|
||||
|
@ -58,8 +58,8 @@ filter = fr.FastExportFilter('.',
|
||||
checkpoint_callback = handle_checkpoint,
|
||||
everything_callback = track_everything)
|
||||
|
||||
filter.run(input = sys.stdin,
|
||||
output = open(os.devnull, 'w'),
|
||||
filter.run(input = sys.stdin.detach(),
|
||||
output = open(os.devnull, 'wb'),
|
||||
fast_import_pipes = None,
|
||||
quiet = True)
|
||||
# DO NOT depend upon or use _IDS directly you external script writers. I'm
|
||||
|
Loading…
Reference in New Issue
Block a user