Retrofit `repo` class as context-man to cleanup global mman on repo-delete by ankostis · Pull Request #555 · gitpython-developers/GitPython
:param kwargs: is a dict of keyword arguments. This function accepts the same optional keyword arguments as execute().
``Examples``:: It contains key-values for the following: - the :meth:`execute()` kwds, as listed in :var:`execute_kwargs`; - "command options" to be converted by :meth:`transform_kwargs()`; - the `'insert_kwargs_after'` key which its value must match one of ``*args``, and any cmd-options will be appended after the matched arg.
Examples::
git.rev_list('master', max_count=10, header=True)
turns into::
git rev-list max-count 10 --header master
:return: Same as ``execute``""" # Handle optional arguments prior to calling transform_kwargs # otherwise these'll end up in args, which is bad. _kwargs = dict() for kwarg in execute_kwargs: try: _kwargs[kwarg] = kwargs.pop(kwarg) except KeyError: pass exec_kwargs = dict((k, v) for k, v in kwargs.items() if k in execute_kwargs) opts_kwargs = dict((k, v) for k, v in kwargs.items() if k not in execute_kwargs)
insert_after_this_arg = kwargs.pop('insert_kwargs_after', None) insert_after_this_arg = opts_kwargs.pop('insert_kwargs_after', None)
# Prepare the argument list opt_args = self.transform_kwargs(**kwargs) opt_args = self.transform_kwargs(**opts_kwargs) ext_args = self.__unpack_args([a for a in args if a is not None])
if insert_after_this_arg is None:
call = [self.GIT_PYTHON_GIT_EXECUTABLE]
return self.execute(call, **_kwargs) return self.execute(call, **exec_kwargs)
def _parse_object_header(self, header_line): """