commit: 4022e065161695e6b430c6af76359d6dd3543262
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 25 01:34:27 2016 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Thu Mar 10 21:54:40 2016 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4022e065
Add sync-git-clone-extra-opts and sync-git-pull-extra-opts
>From f3ae0003f8cb0c5f4fc8728254ee05bda38d7304 Mon Sep 17 00:00:00 2001
From: Ross Konsolebox <konsolebox <AT> 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
This allows a user more flexibility when using overlays. Such as forcing
or rebasing the pull due to local changes. It then allows any possible
git options to be passed as needed for clone or pull operations.
This is not something that would be commonly used or supported for the gentoo
tree.
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 @@ module_spec = {
'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 @@ class GitSync(NewBase):
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 @@ class GitSync(NewBase):
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")