From f3ae0003f8cb0c5f4fc8728254ee05bda38d7304 Mon Sep 17 00:00:00 2001 From: Ross Konsolebox <konsole...@gmail.com> Date: Sun, 24 Jan 2016 16:27:36 +0800 Subject: [PATCH] Add sync-git-clone-extra-opts and sync-git-pull-extra-opts
--- man/portage.5 | 6 ++++++ pym/portage/sync/modules/git/__init__.py | 5 ++++- pym/portage/sync/modules/git/git.py | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/man/portage.5 b/man/portage.5 index c9e70a0..7c2a8f7 100644 --- a/man/portage.5 +++ b/man/portage.5 @@ -968,6 +968,12 @@ Specifies CVS repository. Specifies clone depth to use for DVCS repositories. Defaults to 1 (only the newest commit). If set to 0, the depth is unlimited. .TP +.B sync\-git\-clone\-extra\-opts +Extra options to give to git when cloning repository (git clone). +.TP +.B sync\-git\-pull\-extra\-opts +Extra options to give to git when updating repository (git pull). +.TP .B sync\-hooks\-only\-on\-change If set to true, then sync of a given repository will not trigger postsync hooks unless hooks would have executed for a master repository or the diff --git a/pym/portage/sync/modules/git/__init__.py b/pym/portage/sync/modules/git/__init__.py index da46b7f..357eb82 100644 --- a/pym/portage/sync/modules/git/__init__.py +++ b/pym/portage/sync/modules/git/__init__.py @@ -50,7 +50,10 @@ def check_depth(self): 'exists and is a valid Git repository', }, 'validate_config': CheckGitConfig, - 'module_specific_options': (), + 'module_specific_options': ( + 'sync-git-clone-extra-opts', + 'sync-git-pull-extra-opts', + ), } } } diff --git a/pym/portage/sync/modules/git/git.py b/pym/portage/sync/modules/git/git.py index 179c0de..e6724f6 100644 --- a/pym/portage/sync/modules/git/git.py +++ b/pym/portage/sync/modules/git/git.py @@ -54,6 +54,8 @@ def new(self, **kwargs): git_cmd_opts += " --quiet" if self.repo.sync_depth is not None: git_cmd_opts += " --depth %d" % self.repo.sync_depth + if self.repo.module_specific_options.get('sync-git-clone-extra-opts'): + git_cmd_opts += " %s" % self.repo.module_specific_options['sync-git-clone-extra-opts'] git_cmd = "%s clone%s %s ." % (self.bin_command, git_cmd_opts, portage._shell_quote(sync_uri)) writemsg_level(git_cmd + "\n") @@ -79,6 +81,8 @@ def update(self): git_cmd_opts = "" if self.settings.get("PORTAGE_QUIET") == "1": git_cmd_opts += " --quiet" + if self.repo.module_specific_options.get('sync-git-pull-extra-opts'): + git_cmd_opts += " %s" % self.repo.module_specific_options['sync-git-pull-extra-opts'] git_cmd = "%s pull%s" % (self.bin_command, git_cmd_opts) writemsg_level(git_cmd + "\n") -- Brian Dolbec <dolsen>