public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-05 20:24 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-05 20:24 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/05 20:24:10

  Modified:             ChangeLog
  Added:                git-r3.eclass
  Log:
  Introduce the new git eclass.

Revision  Changes    Path
1.947                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.947&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.947&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.946&r2=1.947

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.946
retrieving revision 1.947
diff -u -r1.946 -r1.947
--- ChangeLog	5 Sep 2013 17:04:26 -0000	1.946
+++ ChangeLog	5 Sep 2013 20:24:10 -0000	1.947
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.946 2013/09/05 17:04:26 tomwij Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.947 2013/09/05 20:24:10 mgorny Exp $
+
+  05 Sep 2013; Michał Górny <mgorny@gentoo.org> +git-r3.eclass:
+  Introduce the new git eclass.
 
   05 Sep 2013; Tom Wijsman <TomWij@gentoo.org> kernel-2.eclass:
   Added support for experimental genpatches.



1.1                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.1&content-type=text/plain

Index: git-r3.eclass
===================================================================
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.1 2013/09/05 20:24:10 mgorny Exp $

# @ECLASS: git-r3.eclass
# @MAINTAINER:
# Michał Górny <mgorny@gentoo.org>
# @BLURB: Eclass for fetching and unpacking git repositories.
# @DESCRIPTION:
# Third generation eclass for easing maitenance of live ebuilds using
# git as remote repository. The eclass supports lightweight (shallow)
# clones and bare clones of submodules.

case "${EAPI:-0}" in
	0|1|2|3|4|5)
		;;
	*)
		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
		;;
esac

if [[ ! ${_GIT_R3} ]]; then

inherit eutils

fi

EXPORT_FUNCTIONS src_unpack

if [[ ! ${_GIT_R3} ]]; then

# @ECLASS-VARIABLE: EGIT3_STORE_DIR
# @DESCRIPTION:
# Storage directory for git sources.
#
# EGIT3_STORE_DIR=${DISTDIR}/git3-src

# @ECLASS-VARIABLE: EGIT_REPO_URI
# @REQUIRED
# @DESCRIPTION:
# URIs to the repository, e.g. git://foo, https://foo. If multiple URIs
# are provided, the eclass will consider them as fallback URIs to try
# if the first URI does not work.
#
# It can be overriden via env using ${PN}_LIVE_REPO variable.
#
# Example:
# @CODE
# EGIT_REPO_URI="git://a/b.git https://c/d.git"
# @CODE

# @ECLASS-VARIABLE: EVCS_OFFLINE
# @DEFAULT_UNSET
# @DESCRIPTION:
# If non-empty, this variable prevents any online operations.

# @ECLASS-VARIABLE: EGIT_BRANCH
# @DEFAULT_UNSET
# @DESCRIPTION:
# The branch name to check out. If unset, the upstream default (HEAD)
# will be used.
#
# It can be overriden via env using ${PN}_LIVE_BRANCH variable.

# @ECLASS-VARIABLE: EGIT_COMMIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# The tag name or commit identifier to check out. If unset, newest
# commit from the branch will be used. If set, EGIT_BRANCH will
# be ignored.
#
# It can be overriden via env using ${PN}_LIVE_COMMIT variable.

# @ECLASS-VARIABLE: EGIT_CHECKOUT_DIR
# @DESCRIPTION:
# The directory to check the git sources out to.
#
# EGIT_CHECKOUT_DIR=${WORKDIR}/${P}

# @ECLASS-VARIABLE: EGIT_NONSHALLOW
# @DEFAULT_UNSET
# @DESCRIPTION:
# Disable performing shallow fetches/clones. Shallow clones have
# a fair number of limitations. Therefore, if you'd like the eclass to
# perform complete clones instead, set this to a non-null value.
#
# This variable is to be set in make.conf. Ebuilds are not allowed
# to set it.

# @FUNCTION: _git-r3_env_setup
# @INTERNAL
# @DESCRIPTION:
# Set the eclass variables as necessary for operation. This can involve
# setting EGIT_* to defaults or ${PN}_LIVE_* variables.
_git-r3_env_setup() {
	debug-print-function ${FUNCNAME} "$@"

	local esc_pn livevar
	esc_pn=${PN//[-+]/_}

	livevar=${esc_pn}_LIVE_REPO
	EGIT_REPO_URI=${!livevar:-${EGIT_REPO_URI}}
	[[ ${!livevar} ]] \
		&& ewarn "Using ${livevar}, no support will be provided"

	livevar=${esc_pn}_LIVE_BRANCH
	EGIT_BRANCH=${!livevar:-${EGIT_BRANCH}}
	[[ ${!livevar} ]] \
		&& ewarn "Using ${livevar}, no support will be provided"

	livevar=${esc_pn}_LIVE_COMMIT
	EGIT_COMMIT=${!livevar:-${EGIT_COMMIT}}
	[[ ${!livevar} ]] \
		&& ewarn "Using ${livevar}, no support will be provided"

	# Migration helpers. Remove them when git-2 is removed.

	if [[ ${EGIT_SOURCEDIR} ]]; then
		eerror "EGIT_SOURCEDIR has been replaced by EGIT_CHECKOUT_DIR. While updating"
		eerror "your ebuild, please check whether the variable is necessary at all"
		eerror "since the default has been changed from \${S} to \${WORKDIR}/\${P}."
		eerror "Therefore, proper setting of S may be sufficient."
		die "EGIT_SOURCEDIR has been replaced by EGIT_CHECKOUT_DIR."
	fi

	if [[ ${EGIT_MASTER} ]]; then
		eerror "EGIT_MASTER has been removed. Instead, the upstream default (HEAD)"
		eerror "is used by the eclass. Please remove the assignment or use EGIT_BRANCH"
		eerror "as necessary."
		die "EGIT_MASTER has been removed."
	fi

	if [[ ${EGIT_HAS_SUBMODULES} ]]; then
		eerror "EGIT_HAS_SUBMODULES has been removed. The eclass no longer needs"
		eerror "to switch the clone type in order to support submodules and therefore"
		eerror "submodules are detected and fetched automatically."
		die "EGIT_HAS_SUBMODULES is no longer necessary."
	fi

	if [[ ${EGIT_PROJECT} ]]; then
		eerror "EGIT_PROJECT has been removed. Instead, the eclass determines"
		eerror "the local clone path using path in canonical EGIT_REPO_URI."
		eerror "If the current algorithm causes issues for you, please report a bug."
		die "EGIT_PROJECT is no longer necessary."
	fi

	if [[ ${EGIT_BOOTSTRAP} ]]; then
		eerror "EGIT_BOOTSTRAP has been removed. Please create proper src_prepare()"
		eerror "instead."
		die "EGIT_BOOTSTRAP has been removed."
	fi

	if [[ ${EGIT_NOUNPACK} ]]; then
		eerror "EGIT_NOUNPACK has been removed. The eclass no longer calls default"
		eerror "unpack function. If necessary, please declare proper src_unpack()."
		die "EGIT_NOUNPACK has been removed."
	fi
}

# @FUNCTION: _git-r3_set_gitdir
# @USAGE: <repo-uri>
# @INTERNAL
# @DESCRIPTION:
# Obtain the local repository path and set it as GIT_DIR. Creates
# a new repository if necessary.
#
# <repo-uri> may be used to compose the path. It should therefore be
# a canonical URI to the repository.
_git-r3_set_gitdir() {
	debug-print-function ${FUNCNAME} "$@"

	local repo_name=${1#*://*/}

	# strip common prefixes to make paths more likely to match
	# e.g. git://X/Y.git vs https://X/git/Y.git
	# (but just one of the prefixes)
	case "${repo_name}" in
		# cgit can proxy requests to git
		cgit/*) repo_name=${repo_name#cgit/};;
		# pretty common
		git/*) repo_name=${repo_name#git/};;
		# gentoo.org
		gitroot/*) repo_name=${repo_name#gitroot/};;
		# google code, sourceforge
		p/*) repo_name=${repo_name#p/};;
		# kernel.org
		pub/scm/*) repo_name=${repo_name#pub/scm/};;
	esac
	# ensure a .git suffix, same reason
	repo_name=${repo_name%.git}.git
	# now replace all the slashes
	repo_name=${repo_name//\//_}

	local distdir=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}
	: ${EGIT3_STORE_DIR:=${distdir}/git3-src}

	GIT_DIR=${EGIT3_STORE_DIR}/${repo_name}

	if [[ ! -d ${EGIT3_STORE_DIR} ]]; then
		(
			addwrite /
			mkdir -m0755 -p "${EGIT3_STORE_DIR}"
		) || die "Unable to create ${EGIT3_STORE_DIR}"
	fi

	addwrite "${EGIT3_STORE_DIR}"
	if [[ ! -d ${GIT_DIR} ]]; then
		mkdir "${GIT_DIR}" || die
		git init --bare || die

		# avoid auto-unshallow :)
		touch "${GIT_DIR}"/shallow || die
	fi
}

# @FUNCTION: _git-r3_set_submodules
# @USAGE: <file-contents>
# @INTERNAL
# @DESCRIPTION:
# Parse .gitmodules contents passed as <file-contents>
# as in "$(cat .gitmodules)"). Composes a 'submodules' array that
# contains in order (name, URL, path) for each submodule.
_git-r3_set_submodules() {
	debug-print-function ${FUNCNAME} "$@"

	local data=${1}

	# ( name url path ... )
	submodules=()

	local l
	while read l; do
		# submodule.<path>.path=<path>
		# submodule.<path>.url=<url>
		[[ ${l} == submodule.*.url=* ]] || continue

		l=${l#submodule.}
		local subname=${l%%.url=*}

		submodules+=(
			"${subname}"
			"$(echo "${data}" | git config -f /dev/fd/0 \
				submodule."${subname}".url)"
			"$(echo "${data}" | git config -f /dev/fd/0 \
				submodule."${subname}".path)"
		)
	done < <(echo "${data}" | git config -f /dev/fd/0 -l)
}

# @FUNCTION: git-r3_fetch
# @USAGE: [<repo-uri> [<remote-ref> [<local-id>]]]
# @DESCRIPTION:
# Fetch new commits to the local clone of repository.
#
# <repo-uri> specifies the repository URIs to fetch from, as a space-
# -separated list. The first URI will be used as repository group
# identifier and therefore must be used consistently. When not
# specified, defaults to ${EGIT_REPO_URI}.
#
# <remote-ref> specifies the remote ref or commit id to fetch.
# It is preferred to use 'refs/heads/<branch-name>' for branches
# and 'refs/tags/<tag-name>' for tags. Other options are 'HEAD'
# for upstream default branch and hexadecimal commit SHA1. Defaults
# to the first of EGIT_COMMIT, EGIT_BRANCH or literal 'HEAD' that
# is set to a non-null value.
#
# <local-id> specifies the local branch identifier that will be used to
# locally store the fetch result. It should be unique to multiple
# fetches within the repository that can be performed at the same time
# (including parallel merges). It defaults to ${CATEGORY}/${PN}/${SLOT}.
# This default should be fine unless you are fetching multiple trees
# from the same repository in the same ebuild.
#
# The fetch operation will affect the EGIT_STORE only. It will not touch
# the working copy, nor export any environment variables.
# If the repository contains submodules, they will be fetched
# recursively.
git-r3_fetch() {
	debug-print-function ${FUNCNAME} "$@"

	local repos=( ${1:-${EGIT_REPO_URI}} )
	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
	local local_ref=refs/heads/${local_id}/__main__

	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"

	local -x GIT_DIR
	_git-r3_set_gitdir ${repos[0]}

	# try to fetch from the remote
	local r success
	for r in ${repos[@]}; do
		einfo "Fetching ${remote_ref} from ${r} ..."

		local is_branch lookup_ref
		if [[ ${remote_ref} == refs/heads/* || ${remote_ref} == HEAD ]]
		then
			is_branch=1
			lookup_ref=${remote_ref}
		else
			# ls-remote by commit is going to fail anyway,
			# so we may as well pass refs/tags/ABCDEF...
			lookup_ref=refs/tags/${remote_ref}
		fi

		# first, try ls-remote to see if ${remote_ref} is a real ref
		# and not a commit id. if it succeeds, we can pass ${remote_ref}
		# to 'fetch'. otherwise, we will just fetch everything

		# split on whitespace
		local ref=(
			$(git ls-remote "${r}" "${lookup_ref}")
		)

		# now, another important thing. we may only fetch a remote
		# branch directly to a local branch. Otherwise, we need to fetch
		# the commit and re-create the branch on top of it.

		local ref_param=()
		if [[ ! ${ref[0]} ]]; then
			local EGIT_NONSHALLOW=1
		fi

		if [[ ! -f ${GIT_DIR}/shallow ]]; then
			# if it's a complete repo, fetch it as-is
			:
		elif [[ ${EGIT_NONSHALLOW} ]]; then
			# if it's a shallow clone but we need complete,
			# unshallow it
			ref_param+=( --unshallow )
		else
			# otherwise, just fetch as shallow
			ref_param+=( --depth 1 )
		fi

		if [[ ${ref[0]} ]]; then
			if [[ ${is_branch} ]]; then
				ref_param+=( -f "${remote_ref}:${local_id}/__main__" )
			else
				ref_param+=( "refs/tags/${remote_ref}" )
			fi
		fi

		# if ${remote_ref} is branch or tag, ${ref[@]} will contain
		# the respective commit id. otherwise, it will be an empty
		# array, so the following won't evaluate to a parameter.
		set -- git fetch --no-tags "${r}" "${ref_param[@]}"
		echo "${@}" >&2
		if "${@}"; then
			if [[ ! ${is_branch} ]]; then
				set -- git branch -f "${local_id}/__main__" \
					"${ref[0]:-${remote_ref}}"
				echo "${@}" >&2
				if ! "${@}"; then
					die "Creating branch for ${remote_ref} failed (wrong ref?)."
				fi
			fi

			success=1
			break
		fi
	done
	[[ ${success} ]] || die "Unable to fetch from any of EGIT_REPO_URI"

	# recursively fetch submodules
	if git cat-file -e "${local_ref}":.gitmodules &>/dev/null; then
		local submodules
		_git-r3_set_submodules \
			"$(git cat-file -p "${local_ref}":.gitmodules || die)"

		while [[ ${submodules[@]} ]]; do
			local subname=${submodules[0]}
			local url=${submodules[1]}
			local path=${submodules[2]}
			local commit=$(git rev-parse "${local_ref}:${path}")

			if [[ ! ${commit} ]]; then
				die "Unable to get commit id for submodule ${subname}"
			fi

			git-r3_fetch "${url}" "${commit}" "${local_id}/${subname}"

			submodules=( "${submodules[@]:3}" ) # shift
		done
	fi
}

# @FUNCTION: git-r3_checkout
# @USAGE: [<repo-uri> [<checkout-path> [<local-id>]]]
# @DESCRIPTION:
# Check the previously fetched tree to the working copy.
#
# <repo-uri> specifies the repository URIs, as a space-separated list.
# The first URI will be used as repository group identifier
# and therefore must be used consistently with git-r3_fetch.
# The remaining URIs are not used and therefore may be omitted.
# When not specified, defaults to ${EGIT_REPO_URI}.
#
# <checkout-path> specifies the path to place the checkout. It defaults
# to ${EGIT_CHECKOUT_DIR} if set, otherwise to ${WORKDIR}/${P}.
#
# <local-id> needs to specify the local identifier that was used
# for respective git-r3_fetch.
#
# The checkout operation will write to the working copy, and export
# the repository state into the environment. If the repository contains
# submodules, they will be checked out recursively.
git-r3_checkout() {
	debug-print-function ${FUNCNAME} "$@"

	local repos=( ${1:-${EGIT_REPO_URI}} )
	local out_dir=${2:-${EGIT_CHECKOUT_DIR:-${WORKDIR}/${P}}}
	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}

	local -x GIT_DIR GIT_WORK_TREE
	_git-r3_set_gitdir ${repos[0]}
	GIT_WORK_TREE=${out_dir}
	mkdir -p "${GIT_WORK_TREE}"

	einfo "Checking out ${repos[0]} to ${out_dir} ..."

	if ! git cat-file -e refs/heads/"${local_id}"/__main__
	then
		if [[ ${EVCS_OFFLINE} ]]; then
			die "No local clone of ${repos[0]}. Unable to work with EVCS_OFFLINE."
		else
			die "Logic error: no local clone of ${repos[0]}. git-r3_fetch not used?"
		fi
	fi

	set -- git checkout -f "${local_id}"/__main__ .
	echo "${@}" >&2
	"${@}" || die "git checkout ${local_id}/__main__ failed"

	# diff against previous revision (if any)
	local new_commit_id=$(git rev-parse --verify "${local_id}"/__main__)
	local old_commit_id=$(
		git rev-parse --verify "${local_id}"/__old__ 2>/dev/null
	)

	if [[ ! ${old_commit_id} ]]; then
		echo "GIT NEW branch -->"
		echo "   repository:               ${repos[0]}"
		echo "   at the commit:            ${new_commit_id}"
	else
		echo "GIT update -->"
		echo "   repository:               ${repos[0]}"
		# write out message based on the revisions
		if [[ "${old_commit_id}" != "${new_commit_id}" ]]; then
			echo "   updating from commit:     ${old_commit_id}"
			echo "   to commit:                ${new_commit_id}"

			git --no-pager diff --stat \
				${old_commit_id}..${new_commit_id}
		else
			echo "   at the commit:            ${new_commit_id}"
		fi
	fi
	git branch -f "${local_id}"/{__old__,__main__} || die

	# recursively checkout submodules
	if [[ -f ${GIT_WORK_TREE}/.gitmodules ]]; then
		local submodules
		_git-r3_set_submodules \
			"$(<"${GIT_WORK_TREE}"/.gitmodules)"

		while [[ ${submodules[@]} ]]; do
			local subname=${submodules[0]}
			local url=${submodules[1]}
			local path=${submodules[2]}

			git-r3_checkout "${url}" "${GIT_WORK_TREE}/${path}" \
				"${local_id}/${subname}"

			submodules=( "${submodules[@]:3}" ) # shift
		done
	fi

	# keep this *after* submodules
	export EGIT_DIR=${GIT_DIR}
	export EGIT_VERSION=${new_commit_id}
}

# @FUNCTION: git-r3_peek_remote_ref
# @USAGE: [<repo-uri> [<remote-ref>]]
# @DESCRIPTION:
# Peek the reference in the remote repository and print the matching
# (newest) commit SHA1.
#
# <repo-uri> specifies the repository URIs to fetch from, as a space-
# -separated list. When not specified, defaults to ${EGIT_REPO_URI}.
#
# <remote-ref> specifies the remote ref to peek.  It is preferred to use
# 'refs/heads/<branch-name>' for branches and 'refs/tags/<tag-name>'
# for tags. Alternatively, 'HEAD' may be used for upstream default
# branch. Defaults to the first of EGIT_COMMIT, EGIT_BRANCH or literal
# 'HEAD' that is set to a non-null value.
#
# The operation will be done purely on the remote, without using local
# storage. If commit SHA1 is provided as <remote-ref>, the function will
# fail due to limitations of git protocol.
#
# On success, the function returns 0 and writes hexadecimal commit SHA1
# to stdout. On failure, the function returns 1.
git-r3_peek_remote_ref() {
	debug-print-function ${FUNCNAME} "$@"

	local repos=( ${1:-${EGIT_REPO_URI}} )
	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}

	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"

	local r success
	for r in ${repos[@]}; do
		einfo "Peeking ${remote_ref} on ${r} ..." >&2

		local is_branch lookup_ref
		if [[ ${remote_ref} == refs/heads/* || ${remote_ref} == HEAD ]]
		then
			is_branch=1
			lookup_ref=${remote_ref}
		else
			# ls-remote by commit is going to fail anyway,
			# so we may as well pass refs/tags/ABCDEF...
			lookup_ref=refs/tags/${remote_ref}
		fi

		# split on whitespace
		local ref=(
			$(git ls-remote "${r}" "${lookup_ref}")
		)

		if [[ ${ref[0]} ]]; then
			echo "${ref[0]}"
			return 0
		fi
	done

	return 1
}

git-r3_src_fetch() {
	debug-print-function ${FUNCNAME} "$@"

	[[ ${EVCS_OFFLINE} ]] && return

	if [[ ! ${EGIT3_STORE_DIR} && ${EGIT_STORE_DIR} ]]; then
		ewarn "You have set EGIT_STORE_DIR but not EGIT3_STORE_DIR. Please consider"
		ewarn "setting EGIT3_STORE_DIR for git-r3.eclass. It is recommended to use"
		ewarn "a different directory than EGIT_STORE_DIR to ease removing old clones"
		ewarn "when git-2 eclass becomes deprecated."
	fi

	_git-r3_env_setup
	git-r3_fetch
}

git-r3_src_unpack() {
	debug-print-function ${FUNCNAME} "$@"

	_git-r3_env_setup
	git-r3_src_fetch
	git-r3_checkout
}

# https://bugs.gentoo.org/show_bug.cgi?id=482666
git-r3_pkg_outofdate() {
	debug-print-function ${FUNCNAME} "$@"

	local new_commit_id=$(git-r3_peek_remote_ref)
	ewarn "old: ${EGIT_VERSION}"
	ewarn "new: ${new_commit_id}"
	[[ ${new_commit_id} && ${old_commit_id} ]] || return 2

	[[ ${EGIT_VERSION} != ${new_commit_id} ]]
}

_GIT_R3=1
fi





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-05 22:40 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-05 22:40 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/05 22:40:12

  Modified:             ChangeLog git-r3.eclass
  Log:
  Do not pass --depth when updating a branch, it trrigers issues in git. Instead, use it for the first fetch only.

Revision  Changes    Path
1.949                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.949&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.949&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.948&r2=1.949

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.948
retrieving revision 1.949
diff -u -r1.948 -r1.949
--- ChangeLog	5 Sep 2013 20:39:41 -0000	1.948
+++ ChangeLog	5 Sep 2013 22:40:12 -0000	1.949
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.948 2013/09/05 20:39:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.949 2013/09/05 22:40:12 mgorny Exp $
+
+  05 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Do not pass --depth when updating a branch, it trrigers issues in git.
+  Instead, use it for the first fetch only.
 
   05 Sep 2013; Michał Górny <mgorny@gentoo.org> git-2.eclass:
   Support using git-r3 backend in git-2.



1.2                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.2&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.2&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.1&r2=1.2

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- git-r3.eclass	5 Sep 2013 20:24:10 -0000	1.1
+++ git-r3.eclass	5 Sep 2013 22:40:12 -0000	1.2
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.1 2013/09/05 20:24:10 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.2 2013/09/05 22:40:12 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -314,27 +314,35 @@
 			$(git ls-remote "${r}" "${lookup_ref}")
 		)
 
-		# now, another important thing. we may only fetch a remote
-		# branch directly to a local branch. Otherwise, we need to fetch
-		# the commit and re-create the branch on top of it.
-
 		local ref_param=()
 		if [[ ! ${ref[0]} ]]; then
 			local EGIT_NONSHALLOW=1
 		fi
 
-		if [[ ! -f ${GIT_DIR}/shallow ]]; then
-			# if it's a complete repo, fetch it as-is
-			:
-		elif [[ ${EGIT_NONSHALLOW} ]]; then
-			# if it's a shallow clone but we need complete,
-			# unshallow it
-			ref_param+=( --unshallow )
+		# 1. if we need a non-shallow clone and we have a shallow one,
+		#    we need to unshallow it explicitly.
+		# 2. if we want a shallow clone, we just pass '--depth 1'
+		#    to the first fetch in the repo. passing '--depth'
+		#    to further requests usually results in more data being
+		#    downloaded than without it.
+		# 3. in any other case, we just do plain 'git fetch' and let
+		#    git to do its best (on top of shallow or non-shallow repo).
+
+		if [[ ${EGIT_NONSHALLOW} ]]; then
+			if [[ -f ${GIT_DIR}/shallow ]]; then
+				ref_param+=( --unshallow )
+			fi
 		else
-			# otherwise, just fetch as shallow
-			ref_param+=( --depth 1 )
+			# 'git show-ref --heads' returns 1 when there are no branches
+			if ! git show-ref --heads -q; then
+				ref_param+=( --depth 1 )
+			fi
 		fi
 
+		# now, another important thing. we may only fetch a remote
+		# branch directly to a local branch. Otherwise, we need to fetch
+		# the commit and re-create the branch on top of it.
+
 		if [[ ${ref[0]} ]]; then
 			if [[ ${is_branch} ]]; then
 				ref_param+=( -f "${remote_ref}:${local_id}/__main__" )





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-09 16:01 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-09 16:01 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/09 16:01:17

  Modified:             ChangeLog git-r3.eclass
  Log:
  Introduce smart switching between "git fetch" and "git fetch --depth 1" to save bandwidth.

Revision  Changes    Path
1.954                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.954&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.954&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.953&r2=1.954

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.953
retrieving revision 1.954
diff -u -r1.953 -r1.954
--- ChangeLog	8 Sep 2013 22:54:23 -0000	1.953
+++ ChangeLog	9 Sep 2013 16:01:16 -0000	1.954
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.953 2013/09/08 22:54:23 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.954 2013/09/09 16:01:16 mgorny Exp $
+
+  09 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Introduce smart switching between "git fetch" and "git fetch --depth 1" to
+  save bandwidth.
 
   08 Sep 2013; Michał Górny <mgorny@gentoo.org> git-2.eclass:
   Inherit git-r3 unconditionally to avoid metadata variancy. The eclass is



1.3                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.3&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.3&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.2&r2=1.3

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- git-r3.eclass	5 Sep 2013 22:40:12 -0000	1.2
+++ git-r3.eclass	9 Sep 2013 16:01:17 -0000	1.3
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.2 2013/09/05 22:40:12 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.3 2013/09/09 16:01:17 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -247,6 +247,93 @@
 	done < <(echo "${data}" | git config -f /dev/fd/0 -l)
 }
 
+# @FUNCTION: _git-r3_smart_fetch
+# @USAGE: <git-fetch-args>...
+# @DESCRIPTION:
+# Try fetching without '--depth' and switch to '--depth 1' if that
+# will involve less objects fetched.
+_git-r3_smart_fetch() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	local sed_regexp='.*Counting objects: \([0-9]*\), done\..*'
+
+	# start the main fetch
+	local cmd=( git fetch --progress "${@}" )
+	echo "${cmd[@]}" >&2
+
+	# we copy the output to the 'sed' pipe for parsing. whenever sed finds
+	# the process count, it quits quickly to avoid delays in writing it.
+	# then, we start a dummy 'cat' to keep the pipe alive
+
+	"${cmd[@]}" 2>&1 \
+		| tee >(
+			sed -n -e "/${sed_regexp}/{s/${sed_regexp}/\1/p;q}" \
+				> "${T}"/git-r3_main.count
+			exec cat >/dev/null
+		) &
+	local main_pid=${!}
+
+	# start the helper process
+	_git-r3_sub_fetch() {
+		# wait for main fetch to get object count; if the server doesn't
+		# output it, we won't even launch the parallel process
+		while [[ ! -s ${T}/git-r3_main.count ]]; do
+			sleep 0.25
+		done
+
+		# ok, let's see if parallel fetch gives us smaller count
+		# --dry-run will prevent it from writing to the local clone
+		# and sed should terminate git with SIGPIPE
+		local sub_count=$(git fetch --progress --dry-run --depth 1 "${@}" 2>&1 \
+			| sed -n -e "/${sed_regexp}/{s/${sed_regexp}/\1/p;q}")
+		local main_count=$(<"${T}"/git-r3_main.count)
+
+		# let's be real sure that '--depth 1' will be good for us.
+		# note that we have purely objects counts, and '--depth 1'
+		# may involve much bigger objects
+		if [[ ${main_count} && ${main_count} -ge $(( sub_count * 3/2 )) ]]
+		then
+			# signal that we want shallow fetch instead,
+			# and terminate the non-shallow fetch process
+			touch "${T}"/git-r3_want_shallow || die
+			kill ${main_pid} &>/dev/null
+			exit 0
+		fi
+
+		exit 1
+	}
+	_git-r3_sub_fetch "${@}" &
+	local sub_pid=${!}
+
+	# wait for main process to terminate, either of its own
+	# or by signal from subprocess
+	wait ${main_pid}
+	local main_ret=${?}
+
+	# wait for subprocess to terminate, killing it if necessary.
+	# if main fetch finished before it, there's no point in keeping
+	# it alive. if main fetch was killed by it, it's done anyway
+	kill ${sub_pid} &>/dev/null
+	wait ${sub_pid}
+
+	# now see if subprocess wanted to tell us something...
+	if [[ -f ${T}/git-r3_want_shallow ]]; then
+		rm "${T}"/git-r3_want_shallow || die
+
+		# if fetch finished already (wasn't killed), ignore it
+		[[ ${main_ret} -eq 0 ]] && return 0
+
+		# otherwise, restart as shallow fetch
+		einfo "Restarting fetch using --depth 1 to save bandwidth ..."
+		local cmd=( git fetch --progress --depth 1 "${@}" )
+		echo "${cmd[@]}" >&2
+		"${cmd[@]}"
+		main_ret=${?}
+	fi
+
+	return ${main_ret}
+}
+
 # @FUNCTION: git-r3_fetch
 # @USAGE: [<repo-uri> [<remote-ref> [<local-id>]]]
 # @DESCRIPTION:
@@ -325,9 +412,12 @@
 		#    to the first fetch in the repo. passing '--depth'
 		#    to further requests usually results in more data being
 		#    downloaded than without it.
-		# 3. in any other case, we just do plain 'git fetch' and let
-		#    git to do its best (on top of shallow or non-shallow repo).
+		# 3. if we update a shallow clone, we try without '--depth'
+		#    first since that usually transfers less data. however,
+		#    we use git-r3_smart_fetch that can switch into '--depth 1'
+		#    if that looks beneficial.
 
+		local fetch_command=( git fetch )
 		if [[ ${EGIT_NONSHALLOW} ]]; then
 			if [[ -f ${GIT_DIR}/shallow ]]; then
 				ref_param+=( --unshallow )
@@ -336,6 +426,8 @@
 			# 'git show-ref --heads' returns 1 when there are no branches
 			if ! git show-ref --heads -q; then
 				ref_param+=( --depth 1 )
+			else
+				fetch_command=( _git-r3_smart_fetch )
 			fi
 		fi
 
@@ -354,7 +446,7 @@
 		# if ${remote_ref} is branch or tag, ${ref[@]} will contain
 		# the respective commit id. otherwise, it will be an empty
 		# array, so the following won't evaluate to a parameter.
-		set -- git fetch --no-tags "${r}" "${ref_param[@]}"
+		set -- "${fetch_command[@]}" --no-tags "${r}" "${ref_param[@]}"
 		echo "${@}" >&2
 		if "${@}"; then
 			if [[ ! ${is_branch} ]]; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-13 15:04 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-13 15:04 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/13 15:04:36

  Modified:             ChangeLog git-r3.eclass
  Log:
  Do not leak EGIT_NONSHALLOW over loop iterations. Failing URL may cause non-shallow attempt to be made. When attempting next URL in the list, we should try shallow again.

Revision  Changes    Path
1.962                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.962&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.962&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.961&r2=1.962

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.961
retrieving revision 1.962
diff -u -r1.961 -r1.962
--- ChangeLog	13 Sep 2013 11:22:52 -0000	1.961
+++ ChangeLog	13 Sep 2013 15:04:36 -0000	1.962
@@ -1,6 +1,11 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.961 2013/09/13 11:22:52 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.962 2013/09/13 15:04:36 mgorny Exp $
+
+  13 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Do not leak EGIT_NONSHALLOW over loop iterations. Failing URL may cause
+  non-shallow attempt to be made. When attempting next URL in the list, we
+  should try shallow again.
 
   13 Sep 2013; Michał Górny <mgorny@gentoo.org> eutils.eclass:
   Commit the version of einstalldocs() Council agreed upon.



1.4                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.4&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.4&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.3&r2=1.4

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- git-r3.eclass	9 Sep 2013 16:01:17 -0000	1.3
+++ git-r3.eclass	13 Sep 2013 15:04:36 -0000	1.4
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.3 2013/09/09 16:01:17 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.4 2013/09/13 15:04:36 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -401,9 +401,10 @@
 			$(git ls-remote "${r}" "${lookup_ref}")
 		)
 
+		local nonshallow=${EGIT_NONSHALLOW}
 		local ref_param=()
 		if [[ ! ${ref[0]} ]]; then
-			local EGIT_NONSHALLOW=1
+			nonshallow=1
 		fi
 
 		# 1. if we need a non-shallow clone and we have a shallow one,
@@ -418,7 +419,7 @@
 		#    if that looks beneficial.
 
 		local fetch_command=( git fetch )
-		if [[ ${EGIT_NONSHALLOW} ]]; then
+		if [[ ${nonshallow} ]]; then
 			if [[ -f ${GIT_DIR}/shallow ]]; then
 				ref_param+=( --unshallow )
 			fi





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-13 15:08 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-13 15:08 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/13 15:08:37

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fail early on unreachable URLs. If ls-remote fails due to server being unreachable, there is no point in attempting to fetch.

Revision  Changes    Path
1.963                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.963&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.963&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.962&r2=1.963

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.962
retrieving revision 1.963
diff -u -r1.962 -r1.963
--- ChangeLog	13 Sep 2013 15:04:36 -0000	1.962
+++ ChangeLog	13 Sep 2013 15:08:37 -0000	1.963
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.962 2013/09/13 15:04:36 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.963 2013/09/13 15:08:37 mgorny Exp $
+
+  13 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fail early on unreachable URLs. If ls-remote fails due to server being
+  unreachable, there is no point in attempting to fetch.
 
   13 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Do not leak EGIT_NONSHALLOW over loop iterations. Failing URL may cause



1.5                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.5&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.5&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.4&r2=1.5

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- git-r3.eclass	13 Sep 2013 15:04:36 -0000	1.4
+++ git-r3.eclass	13 Sep 2013 15:08:37 -0000	1.5
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.4 2013/09/13 15:04:36 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.5 2013/09/13 15:08:37 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -398,9 +398,12 @@
 
 		# split on whitespace
 		local ref=(
-			$(git ls-remote "${r}" "${lookup_ref}")
+			$(git ls-remote "${r}" "${lookup_ref}" || echo __FAIL__)
 		)
 
+		# normally, ref[0] is a hash, so we can do magic strings here
+		[[ ${ref[0]} == __FAIL__ ]] && continue
+
 		local nonshallow=${EGIT_NONSHALLOW}
 		local ref_param=()
 		if [[ ! ${ref[0]} ]]; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-19  9:37 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-19  9:37 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/19 09:37:14

  Modified:             ChangeLog git-r3.eclass
  Log:
  Do not even create shallow repository when EGIT_NONSHALLOW is set. Otherwise, the eclass tries to unshallow it and that breaks broken git servers like Google Code.

Revision  Changes    Path
1.979                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.979&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.979&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.978&r2=1.979

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.978
retrieving revision 1.979
diff -u -r1.978 -r1.979
--- ChangeLog	18 Sep 2013 22:48:10 -0000	1.978
+++ ChangeLog	19 Sep 2013 09:37:14 -0000	1.979
@@ -1,6 +1,11 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.978 2013/09/18 22:48:10 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.979 2013/09/19 09:37:14 mgorny Exp $
+
+  19 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Do not even create shallow repository when EGIT_NONSHALLOW is set. Otherwise,
+  the eclass tries to unshallow it and that breaks broken git servers like
+  Google Code.
 
   18 Sep 2013; Michał Górny <mgorny@gentoo.org> distutils-r1.eclass:
   Fix accepting arguments in distutils_install_for_testing.



1.6                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.6&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.6&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.5&r2=1.6

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- git-r3.eclass	13 Sep 2013 15:08:37 -0000	1.5
+++ git-r3.eclass	19 Sep 2013 09:37:14 -0000	1.6
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.5 2013/09/13 15:08:37 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.6 2013/09/19 09:37:14 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -208,8 +208,10 @@
 		mkdir "${GIT_DIR}" || die
 		git init --bare || die
 
-		# avoid auto-unshallow :)
-		touch "${GIT_DIR}"/shallow || die
+		if [[ ! ${EGIT_NONSHALLOW} ]]; then
+			# avoid auto-unshallow :)
+			touch "${GIT_DIR}"/shallow || die
+		fi
 	fi
 }
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-19  9:42 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-19  9:42 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/19 09:42:32

  Modified:             ChangeLog git-r3.eclass
  Log:
  Strip trailing slashes from repo URI when determining local copy directory.

Revision  Changes    Path
1.980                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.980&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.980&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.979&r2=1.980

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.979
retrieving revision 1.980
diff -u -r1.979 -r1.980
--- ChangeLog	19 Sep 2013 09:37:14 -0000	1.979
+++ ChangeLog	19 Sep 2013 09:42:32 -0000	1.980
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.979 2013/09/19 09:37:14 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.980 2013/09/19 09:42:32 mgorny Exp $
+
+  19 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Strip trailing slashes from repo URI when determining local copy directory.
 
   19 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Do not even create shallow repository when EGIT_NONSHALLOW is set. Otherwise,



1.7                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.7&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.7&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.6&r2=1.7

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- git-r3.eclass	19 Sep 2013 09:37:14 -0000	1.6
+++ git-r3.eclass	19 Sep 2013 09:42:32 -0000	1.7
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.6 2013/09/19 09:37:14 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.7 2013/09/19 09:42:32 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -171,6 +171,9 @@
 
 	local repo_name=${1#*://*/}
 
+	# strip the trailing slash
+	repo_name=${repo_name%/}
+
 	# strip common prefixes to make paths more likely to match
 	# e.g. git://X/Y.git vs https://X/git/Y.git
 	# (but just one of the prefixes)





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-25 10:49 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-25 10:49 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/25 10:49:11

  Modified:             ChangeLog git-r3.eclass
  Log:
  Update git URI stripping for gnome.org.

Revision  Changes    Path
1.985                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.985&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.985&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.984&r2=1.985

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.984
retrieving revision 1.985
diff -u -r1.984 -r1.985
--- ChangeLog	24 Sep 2013 19:53:06 -0000	1.984
+++ ChangeLog	25 Sep 2013 10:49:11 -0000	1.985
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.984 2013/09/24 19:53:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.985 2013/09/25 10:49:11 mgorny Exp $
+
+  25 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Update git URI stripping for gnome.org.
 
   24 Sep 2013; Michał Górny <mgorny@gentoo.org> python-any-r1.eclass:
   Introduce python_gen_any_dep to generate any-of dependencies matching



1.8                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.8&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.8&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.7&r2=1.8

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- git-r3.eclass	19 Sep 2013 09:42:32 -0000	1.7
+++ git-r3.eclass	25 Sep 2013 10:49:11 -0000	1.8
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.7 2013/09/19 09:42:32 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.8 2013/09/25 10:49:11 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -178,6 +178,8 @@
 	# e.g. git://X/Y.git vs https://X/git/Y.git
 	# (but just one of the prefixes)
 	case "${repo_name}" in
+		# gnome.org... who else?
+		browse/*) repo_name=${repo_name#browse/};;
 		# cgit can proxy requests to git
 		cgit/*) repo_name=${repo_name#cgit/};;
 		# pretty common





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-25 11:19 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-25 11:19 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/25 11:19:09

  Modified:             ChangeLog git-r3.eclass
  Log:
  Support EGIT_REPO_URI being an array. This is needed for tests.

Revision  Changes    Path
1.986                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.986&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.986&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.985&r2=1.986

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.985
retrieving revision 1.986
diff -u -r1.985 -r1.986
--- ChangeLog	25 Sep 2013 10:49:11 -0000	1.985
+++ ChangeLog	25 Sep 2013 11:19:09 -0000	1.986
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.985 2013/09/25 10:49:11 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.986 2013/09/25 11:19:09 mgorny Exp $
+
+  25 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Support EGIT_REPO_URI being an array. This is needed for tests.
 
   25 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Update git URI stripping for gnome.org.



1.9                  eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.9&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.9&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.8&r2=1.9

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- git-r3.eclass	25 Sep 2013 10:49:11 -0000	1.8
+++ git-r3.eclass	25 Sep 2013 11:19:09 -0000	1.9
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.8 2013/09/25 10:49:11 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.9 2013/09/25 11:19:09 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -44,6 +44,8 @@
 #
 # It can be overriden via env using ${PN}_LIVE_REPO variable.
 #
+# Can be a whitespace-separated list or an array.
+#
 # Example:
 # @CODE
 # EGIT_REPO_URI="git://a/b.git https://c/d.git"
@@ -372,7 +374,11 @@
 git-r3_fetch() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	local repos=( ${1:-${EGIT_REPO_URI}} )
+	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
+		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	fi
+
+	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
@@ -381,11 +387,11 @@
 	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"
 
 	local -x GIT_DIR
-	_git-r3_set_gitdir ${repos[0]}
+	_git-r3_set_gitdir "${repos[0]}"
 
 	# try to fetch from the remote
 	local r success
-	for r in ${repos[@]}; do
+	for r in "${repos[@]}"; do
 		einfo "Fetching ${remote_ref} from ${r} ..."
 
 		local is_branch lookup_ref
@@ -521,12 +527,16 @@
 git-r3_checkout() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	local repos=( ${1:-${EGIT_REPO_URI}} )
+	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
+		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	fi
+
+	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local out_dir=${2:-${EGIT_CHECKOUT_DIR:-${WORKDIR}/${P}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
 
 	local -x GIT_DIR GIT_WORK_TREE
-	_git-r3_set_gitdir ${repos[0]}
+	_git-r3_set_gitdir "${repos[0]}"
 	GIT_WORK_TREE=${out_dir}
 	mkdir -p "${GIT_WORK_TREE}"
 
@@ -618,14 +628,18 @@
 git-r3_peek_remote_ref() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	local repos=( ${1:-${EGIT_REPO_URI}} )
+	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
+		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	fi
+
+	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
 
 	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"
 
 	local r success
-	for r in ${repos[@]}; do
+	for r in "${repos[@]}"; do
 		einfo "Peeking ${remote_ref} on ${r} ..." >&2
 
 		local is_branch lookup_ref





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-26 12:38 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-26 12:38 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/26 12:38:38

  Modified:             ChangeLog git-r3.eclass
  Log:
  Update doc on EGIT_NONSHALLOW.

Revision  Changes    Path
1.990                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.990&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.990&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.989&r2=1.990

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.989
retrieving revision 1.990
diff -u -r1.989 -r1.990
--- ChangeLog	26 Sep 2013 11:58:41 -0000	1.989
+++ ChangeLog	26 Sep 2013 12:38:38 -0000	1.990
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.989 2013/09/26 11:58:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.990 2013/09/26 12:38:38 mgorny Exp $
+
+  26 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Update doc on EGIT_NONSHALLOW.
 
   26 Sep 2013; Michał Górny <mgorny@gentoo.org> distutils-r1.eclass:
   Wrap symlinks installed to PYTHON_SCRIPTDIR as well.



1.10                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.10&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.10&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.9&r2=1.10

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- git-r3.eclass	25 Sep 2013 11:19:09 -0000	1.9
+++ git-r3.eclass	26 Sep 2013 12:38:38 -0000	1.10
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.9 2013/09/25 11:19:09 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.10 2013/09/26 12:38:38 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -86,8 +86,10 @@
 # a fair number of limitations. Therefore, if you'd like the eclass to
 # perform complete clones instead, set this to a non-null value.
 #
-# This variable is to be set in make.conf. Ebuilds are not allowed
-# to set it.
+# This variable can be set in make.conf and ebuilds. The make.conf
+# value specifies user-specific default, while ebuilds may use it
+# to force deep clones when the server does not support shallow clones
+# (e.g. Google Code).
 
 # @FUNCTION: _git-r3_env_setup
 # @INTERNAL





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-26 21:04 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-26 21:04 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/26 21:04:42

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix parsing EGIT_REPO_URI. Bug #486080.

Revision  Changes    Path
1.991                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.991&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.991&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.990&r2=1.991

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.990
retrieving revision 1.991
diff -u -r1.990 -r1.991
--- ChangeLog	26 Sep 2013 12:38:38 -0000	1.990
+++ ChangeLog	26 Sep 2013 21:04:42 -0000	1.991
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.990 2013/09/26 12:38:38 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.991 2013/09/26 21:04:42 mgorny Exp $
+
+  26 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fix parsing EGIT_REPO_URI. Bug #486080.
 
   26 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Update doc on EGIT_NONSHALLOW.



1.11                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.11&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.11&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.10&r2=1.11

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- git-r3.eclass	26 Sep 2013 12:38:38 -0000	1.10
+++ git-r3.eclass	26 Sep 2013 21:04:42 -0000	1.11
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.10 2013/09/26 12:38:38 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.11 2013/09/26 21:04:42 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -376,11 +376,15 @@
 git-r3_fetch() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
-		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	local repos
+	if [[ ${1} ]]; then
+		repos=( ${1} )
+	elif [[ $(declare -p EGIT_REPO_URI) == "declare -a"* ]]; then
+		repos=( "${EGIT_REPO_URI[@]}" )
+	else
+		repos=( ${EGIT_REPO_URI} )
 	fi
 
-	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
@@ -529,11 +533,15 @@
 git-r3_checkout() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
-		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	local repos
+	if [[ ${1} ]]; then
+		repos=( ${1} )
+	elif [[ $(declare -p EGIT_REPO_URI) == "declare -a"* ]]; then
+		repos=( "${EGIT_REPO_URI[@]}" )
+	else
+		repos=( ${EGIT_REPO_URI} )
 	fi
 
-	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local out_dir=${2:-${EGIT_CHECKOUT_DIR:-${WORKDIR}/${P}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
 
@@ -630,11 +638,15 @@
 git-r3_peek_remote_ref() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	if [[ $(declare -p EGIT_REPO_URI) != "declare -a"* ]]; then
-		local EGIT_REPO_URI=( ${EGIT_REPO_URI} )
+	local repos
+	if [[ ${1} ]]; then
+		repos=( ${1} )
+	elif [[ $(declare -p EGIT_REPO_URI) == "declare -a"* ]]; then
+		repos=( "${EGIT_REPO_URI[@]}" )
+	else
+		repos=( ${EGIT_REPO_URI} )
 	fi
 
-	local repos=( "${1:-${EGIT_REPO_URI[@]}}" )
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-09-27 16:22 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-27 16:22 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/27 16:22:28

  Modified:             ChangeLog git-r3.eclass
  Log:
  Always fetch all branches when doing non-shallow fetch.

Revision  Changes    Path
1.992                eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.992&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.992&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.991&r2=1.992

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.991
retrieving revision 1.992
diff -u -r1.991 -r1.992
--- ChangeLog	26 Sep 2013 21:04:42 -0000	1.991
+++ ChangeLog	27 Sep 2013 16:22:28 -0000	1.992
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.991 2013/09/26 21:04:42 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.992 2013/09/27 16:22:28 mgorny Exp $
+
+  27 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Always fetch all branches when doing non-shallow fetch.
 
   26 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Fix parsing EGIT_REPO_URI. Bug #486080.



1.12                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.12&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.12&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.11&r2=1.12

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- git-r3.eclass	26 Sep 2013 21:04:42 -0000	1.11
+++ git-r3.eclass	27 Sep 2013 16:22:28 -0000	1.12
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.11 2013/09/26 21:04:42 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.12 2013/09/27 16:22:28 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -445,6 +445,8 @@
 			if [[ -f ${GIT_DIR}/shallow ]]; then
 				ref_param+=( --unshallow )
 			fi
+			# fetch all branches
+			ref_param+=( "refs/heads/*:refs/remotes/origin/*" )
 		else
 			# 'git show-ref --heads' returns 1 when there are no branches
 			if ! git show-ref --heads -q; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-05 16:48 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-05 16:48 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/05 16:48:25

  Modified:             ChangeLog git-r3.eclass
  Log:
  Add missing git DEPEND wrt bug #487026.

Revision  Changes    Path
1.1009               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1009&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1009&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1008&r2=1.1009

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1008
retrieving revision 1.1009
diff -u -r1.1008 -r1.1009
--- ChangeLog	5 Oct 2013 13:40:57 -0000	1.1008
+++ ChangeLog	5 Oct 2013 16:48:25 -0000	1.1009
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1008 2013/10/05 13:40:57 caster Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1009 2013/10/05 16:48:25 mgorny Exp $
+
+  05 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Add missing git DEPEND wrt bug #487026.
 
   05 Oct 2013; Vlastimil Babka <caster@gentoo.org> java-ant-2.eclass:
   Convert comments for eclass manpages. Heavily based on work from ercpe, bug



1.13                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.13&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.13&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.12&r2=1.13

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- git-r3.eclass	27 Sep 2013 16:22:28 -0000	1.12
+++ git-r3.eclass	5 Oct 2013 16:48:25 -0000	1.13
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.12 2013/09/27 16:22:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.13 2013/10/05 16:48:25 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -29,6 +29,8 @@
 
 if [[ ! ${_GIT_R3} ]]; then
 
+DEPEND=">=dev-vcs/git-1.8.2.1"
+
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
 # @DESCRIPTION:
 # Storage directory for git sources.





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-09 17:14 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-09 17:14 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/09 17:14:07

  Modified:             ChangeLog git-r3.eclass
  Log:
  Skip submodules that have update=none specified in config. Fixes bug #487262.

Revision  Changes    Path
1.1015               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1015&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1015&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1014&r2=1.1015

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1014
retrieving revision 1.1015
diff -u -r1.1014 -r1.1015
--- ChangeLog	8 Oct 2013 11:19:48 -0000	1.1014
+++ ChangeLog	9 Oct 2013 17:14:07 -0000	1.1015
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1014 2013/10/08 11:19:48 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1015 2013/10/09 17:14:07 mgorny Exp $
+
+  09 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Skip submodules that have update=none specified in config. Fixes bug #487262.
 
   08 Oct 2013; Michał Górny <mgorny@gentoo.org> git-2.eclass, git-r3.eclass:
   Fix git-r3 -> git-2 dependency leak, as noted in bug #487026.



1.15                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.15&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.15&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.14&r2=1.15

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- git-r3.eclass	8 Oct 2013 11:19:48 -0000	1.14
+++ git-r3.eclass	9 Oct 2013 17:14:07 -0000	1.15
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.14 2013/10/08 11:19:48 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.15 2013/10/09 17:14:07 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -252,6 +252,11 @@
 		l=${l#submodule.}
 		local subname=${l%%.url=*}
 
+		# skip modules that have 'update = none', bug #487262.
+		local upd=$(echo "${data}" | git config -f /dev/fd/0 \
+			submodule."${subname}".update)
+		[[ ${upd} == none ]] && continue
+
 		submodules+=(
 			"${subname}"
 			"$(echo "${data}" | git config -f /dev/fd/0 \





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-13  7:14 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-13  7:14 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/13 07:14:59

  Modified:             ChangeLog git-r3.eclass
  Log:
  Respect EVCS_OFFLINE in git-r3_fetch.

Revision  Changes    Path
1.1021               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1021&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1021&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1020&r2=1.1021

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1020
retrieving revision 1.1021
diff -u -r1.1020 -r1.1021
--- ChangeLog	12 Oct 2013 15:12:59 -0000	1.1020
+++ ChangeLog	13 Oct 2013 07:14:58 -0000	1.1021
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1020 2013/10/12 15:12:59 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1021 2013/10/13 07:14:58 mgorny Exp $
+
+  13 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Respect EVCS_OFFLINE in git-r3_fetch.
 
   12 Oct 2013; Jeroen Roovers <jer@gentoo.org> nvidia-driver.eclass:
   Use readme.gentoo.eclass (bug #457594).



1.16                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.16&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.16&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.15&r2=1.16

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- git-r3.eclass	9 Oct 2013 17:14:07 -0000	1.15
+++ git-r3.eclass	13 Oct 2013 07:14:58 -0000	1.16
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.15 2013/10/09 17:14:07 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.16 2013/10/13 07:14:58 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -385,6 +385,8 @@
 git-r3_fetch() {
 	debug-print-function ${FUNCNAME} "$@"
 
+	[[ ${EVCS_OFFLINE} ]] && return
+
 	local repos
 	if [[ ${1} ]]; then
 		repos=( ${1} )
@@ -695,8 +697,6 @@
 git-r3_src_fetch() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	[[ ${EVCS_OFFLINE} ]] && return
-
 	if [[ ! ${EGIT3_STORE_DIR} && ${EGIT_STORE_DIR} ]]; then
 		ewarn "You have set EGIT_STORE_DIR but not EGIT3_STORE_DIR. Please consider"
 		ewarn "setting EGIT3_STORE_DIR for git-r3.eclass. It is recommended to use"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-26  6:19 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-26  6:19 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/26 06:19:13

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix handling relative submodule paths.

Revision  Changes    Path
1.1034               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1034&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1034&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1033&r2=1.1034

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1033
retrieving revision 1.1034
diff -u -r1.1033 -r1.1034
--- ChangeLog	22 Oct 2013 19:23:47 -0000	1.1033
+++ ChangeLog	26 Oct 2013 06:19:13 -0000	1.1034
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1033 2013/10/22 19:23:47 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1034 2013/10/26 06:19:13 mgorny Exp $
+
+  26 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fix handling relative submodule paths.
 
   22 Oct 2013; Michał Górny <mgorny@gentoo.org> distutils-r1.eclass:
   Fix failing to pass default install arguments when user passes an additional



1.19                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.19&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.19&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.18&r2=1.19

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- git-r3.eclass	14 Oct 2013 20:30:00 -0000	1.18
+++ git-r3.eclass	26 Oct 2013 06:19:13 -0000	1.19
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.18 2013/10/14 20:30:00 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.19 2013/10/26 06:19:13 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -515,8 +515,13 @@
 			if [[ ! ${commit} ]]; then
 				die "Unable to get commit id for submodule ${subname}"
 			fi
+			if [[ ${url} == ./* || ${url} == ../* ]]; then
+				local subrepos=( "${repos[@]/%//${url}}" )
+			else
+				local subrepos=( "${url}" )
+			fi
 
-			git-r3_fetch "${url}" "${commit}" "${local_id}/${subname}"
+			git-r3_fetch "${subrepos[*]}" "${commit}" "${local_id}/${subname}"
 
 			submodules=( "${submodules[@]:3}" ) # shift
 		done
@@ -615,6 +620,10 @@
 			local url=${submodules[1]}
 			local path=${submodules[2]}
 
+			if [[ ${url} == ./* || ${url} == ../* ]]; then
+				url=${repos[0]%%/}/${url}
+			fi
+
 			git-r3_checkout "${url}" "${GIT_WORK_TREE}/${path}" \
 				"${local_id}/${subname}"
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-27 13:33 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-27 13:33 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/27 13:33:45

  Modified:             ChangeLog git-r3.eclass
  Log:
  Strip sub-slot from local repo IDs.

Revision  Changes    Path
1.1038               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1038&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1038&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1037&r2=1.1038

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1037
retrieving revision 1.1038
diff -u -r1.1037 -r1.1038
--- ChangeLog	27 Oct 2013 07:27:52 -0000	1.1037
+++ ChangeLog	27 Oct 2013 13:33:44 -0000	1.1038
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1037 2013/10/27 07:27:52 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1038 2013/10/27 13:33:44 mgorny Exp $
+
+  27 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Strip sub-slot from local repo IDs.
 
   27 Oct 2013; Michał Górny <mgorny@gentoo.org> python-utils-r1.eclass:
   Remove deprecated functions.



1.20                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.20&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.20&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.19&r2=1.20

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- git-r3.eclass	26 Oct 2013 06:19:13 -0000	1.19
+++ git-r3.eclass	27 Oct 2013 13:33:44 -0000	1.20
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.19 2013/10/26 06:19:13 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.20 2013/10/27 13:33:44 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -374,7 +374,7 @@
 # <local-id> specifies the local branch identifier that will be used to
 # locally store the fetch result. It should be unique to multiple
 # fetches within the repository that can be performed at the same time
-# (including parallel merges). It defaults to ${CATEGORY}/${PN}/${SLOT}.
+# (including parallel merges). It defaults to ${CATEGORY}/${PN}/${SLOT%/*}.
 # This default should be fine unless you are fetching multiple trees
 # from the same repository in the same ebuild.
 #
@@ -398,7 +398,7 @@
 
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
-	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
+	local local_id=${3:-${CATEGORY}/${PN}/${SLOT%/*}}
 	local local_ref=refs/heads/${local_id}/__main__
 
 	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"
@@ -561,7 +561,7 @@
 	fi
 
 	local out_dir=${2:-${EGIT_CHECKOUT_DIR:-${WORKDIR}/${P}}}
-	local local_id=${3:-${CATEGORY}/${PN}/${SLOT}}
+	local local_id=${3:-${CATEGORY}/${PN}/${SLOT%/*}}
 
 	local -x GIT_DIR GIT_WORK_TREE
 	_git-r3_set_gitdir "${repos[0]}"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-27 13:44 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-27 13:44 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/27 13:44:35

  Modified:             ChangeLog git-r3.eclass
  Log:
  Create a fake ".git" directory inside the checkout to satisfy git rev-parse uses in build systems. Bug #489100.

Revision  Changes    Path
1.1039               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1039&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1039&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1038&r2=1.1039

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1038
retrieving revision 1.1039
diff -u -r1.1038 -r1.1039
--- ChangeLog	27 Oct 2013 13:33:44 -0000	1.1038
+++ ChangeLog	27 Oct 2013 13:44:35 -0000	1.1039
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1038 2013/10/27 13:33:44 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1039 2013/10/27 13:44:35 mgorny Exp $
+
+  27 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Create a fake ".git" directory inside the checkout to satisfy git rev-parse
+  uses in build systems. Bug #489100.
 
   27 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Strip sub-slot from local repo IDs.



1.21                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.21&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.21&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.20&r2=1.21

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- git-r3.eclass	27 Oct 2013 13:33:44 -0000	1.20
+++ git-r3.eclass	27 Oct 2013 13:44:35 -0000	1.21
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.20 2013/10/27 13:33:44 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.21 2013/10/27 13:44:35 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -634,6 +634,11 @@
 	# keep this *after* submodules
 	export EGIT_DIR=${GIT_DIR}
 	export EGIT_VERSION=${new_commit_id}
+
+	# create a fake '.git' directory to satisfy 'git rev-parse HEAD'
+	GIT_DIR=${GIT_WORK_TREE}/.git
+	git init || die
+	echo "${EGIT_VERSION}" > "${GIT_WORK_TREE}"/.git/HEAD || die
 }
 
 # @FUNCTION: git-r3_peek_remote_ref





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-10-30 19:21 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-10-30 19:21 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/10/30 19:21:12

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix parallel checkout race conditions, bug #489280.

Revision  Changes    Path
1.1041               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1041&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1041&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1040&r2=1.1041

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1040
retrieving revision 1.1041
diff -u -r1.1040 -r1.1041
--- ChangeLog	30 Oct 2013 19:14:02 -0000	1.1040
+++ ChangeLog	30 Oct 2013 19:21:12 -0000	1.1041
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1040 2013/10/30 19:14:02 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1041 2013/10/30 19:21:12 mgorny Exp $
+
+  30 Oct 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fix parallel checkout race conditions, bug #489280.
 
   30 Oct 2013; Michał Górny <mgorny@gentoo.org> python-r1.eclass,
   python-single-r1.eclass, python-utils-r1.eclass:



1.22                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.22&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.22&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.21&r2=1.22

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- git-r3.eclass	27 Oct 2013 13:44:35 -0000	1.21
+++ git-r3.eclass	30 Oct 2013 19:21:12 -0000	1.22
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.21 2013/10/27 13:44:35 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.22 2013/10/30 19:21:12 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -579,9 +579,25 @@
 		fi
 	fi
 
+	# Note: this is a hack to avoid parallel checkout issues.
+	# I will try to handle it without locks when I have more time.
+	local lockfile=${GIT_DIR}/.git-r3_checkout_lock
+	local lockfile_l=${lockfile}.${BASHPID}
+	touch "${lockfile_l}" || die
+	until ln "${lockfile_l}" "${lockfile}" &>/dev/null; do
+		sleep 1
+	done
+	rm "${lockfile_l}" || die
+
 	set -- git checkout -f "${local_id}"/__main__ .
 	echo "${@}" >&2
-	"${@}" || die "git checkout ${local_id}/__main__ failed"
+	"${@}"
+	local ret=${?}
+
+	# Remove the lock!
+	rm "${lockfile}" || die
+
+	[[ ${ret} == 0 ]] || die "git checkout ${local_id}/__main__ failed"
 
 	# diff against previous revision (if any)
 	local new_commit_id=$(git rev-parse --verify "${local_id}"/__main__)





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2013-11-15 23:03 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2013-11-15 23:03 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/11/15 23:03:23

  Modified:             ChangeLog git-r3.eclass
  Log:
  Use shallow clones for local repos. Bug #491260.

Revision  Changes    Path
1.1056               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1056&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1056&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1055&r2=1.1056

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1055
retrieving revision 1.1056
diff -u -r1.1055 -r1.1056
--- ChangeLog	11 Nov 2013 19:47:39 -0000	1.1055
+++ ChangeLog	15 Nov 2013 23:03:23 -0000	1.1056
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1055 2013/11/11 19:47:39 pesa Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1056 2013/11/15 23:03:23 mgorny Exp $
+
+  15 Nov 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Use shallow clones for local repos. Bug #491260.
 
   11 Nov 2013; Davide Pesavento <pesa@gentoo.org> qt4-build.eclass:
   Sync with qt overlay. Changes should affect only live ebuilds.



1.23                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.23&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.23&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.22&r2=1.23

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- git-r3.eclass	30 Oct 2013 19:21:12 -0000	1.22
+++ git-r3.eclass	15 Nov 2013 23:03:23 -0000	1.23
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.22 2013/10/30 19:21:12 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.23 2013/11/15 23:03:23 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -354,6 +354,20 @@
 	return ${main_ret}
 }
 
+# @FUNCTION: _git-r3_is_local_repo
+# @USAGE: <repo-uri>
+# @INTERNAL
+# @DESCRIPTION:
+# Determine whether the given URI specifies a local (on-disk)
+# repository.
+_git-r3_is_local_repo() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	local uri=${1}
+
+	[[ ${uri} == file://* || ${uri} == /* ]]
+}
+
 # @FUNCTION: git-r3_fetch
 # @USAGE: [<repo-uri> [<remote-ref> [<local-id>]]]
 # @DESCRIPTION:
@@ -440,6 +454,10 @@
 			nonshallow=1
 		fi
 
+		# trying to do a shallow clone of a local repo makes git try to
+		# write to the repo. we don't want that to happen.
+		_git-r3_is_local_repo "${r}" && nonshallow=1
+
 		# 1. if we need a non-shallow clone and we have a shallow one,
 		#    we need to unshallow it explicitly.
 		# 2. if we want a shallow clone, we just pass '--depth 1'





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-02-23 22:05 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-02-23 22:05 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/02/23 22:05:55

  Modified:             ChangeLog git-r3.eclass
  Log:
  Use complete git clones, and clone them onto the checkout directory. This makes it possible for build system to lookup all repository information as requested in bug #489100. Remove shallow clone support since it would require too much effort and make code hard to understand. Additionally obsoletes bug #489100 and git-r3 part of bug #494934.

Revision  Changes    Path
1.1146               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1146&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1146&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1145&r2=1.1146

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1145
retrieving revision 1.1146
diff -u -r1.1145 -r1.1146
--- ChangeLog	22 Feb 2014 17:01:58 -0000	1.1145
+++ ChangeLog	23 Feb 2014 22:05:55 -0000	1.1146
@@ -1,6 +1,13 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1145 2014/02/22 17:01:58 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1146 2014/02/23 22:05:55 mgorny Exp $
+
+  23 Feb 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Use complete git clones, and clone them onto the checkout directory. This
+  makes it possible for build system to lookup all repository information as
+  requested in bug #489100. Remove shallow clone support since it would require
+  too much effort and make code hard to understand. Additionally obsoletes bug
+  #489100 and git-r3 part of bug #494934.
 
   22 Feb 2014; Mike Gilbert <floppym@gentoo.org> python-utils-r1.eclass:
   Add support for python3.4.



1.24                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.24&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.24&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.23&r2=1.24

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- git-r3.eclass	15 Nov 2013 23:03:23 -0000	1.23
+++ git-r3.eclass	23 Feb 2014 22:05:55 -0000	1.24
@@ -1,6 +1,6 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.23 2013/11/15 23:03:23 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.24 2014/02/23 22:05:55 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -8,8 +8,7 @@
 # @BLURB: Eclass for fetching and unpacking git repositories.
 # @DESCRIPTION:
 # Third generation eclass for easing maitenance of live ebuilds using
-# git as remote repository. The eclass supports lightweight (shallow)
-# clones and bare clones of submodules.
+# git as remote repository.
 
 case "${EAPI:-0}" in
 	0|1|2|3|4|5)
@@ -30,7 +29,7 @@
 if [[ ! ${_GIT_R3} ]]; then
 
 if [[ ! ${_INHERITED_BY_GIT_2} ]]; then
-	DEPEND=">=dev-vcs/git-1.8.2.1"
+	DEPEND="dev-vcs/git"
 fi
 
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
@@ -83,18 +82,6 @@
 #
 # EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
 
-# @ECLASS-VARIABLE: EGIT_NONSHALLOW
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# Disable performing shallow fetches/clones. Shallow clones have
-# a fair number of limitations. Therefore, if you'd like the eclass to
-# perform complete clones instead, set this to a non-null value.
-#
-# This variable can be set in make.conf and ebuilds. The make.conf
-# value specifies user-specific default, while ebuilds may use it
-# to force deep clones when the server does not support shallow clones
-# (e.g. Google Code).
-
 # @FUNCTION: _git-r3_env_setup
 # @INTERNAL
 # @DESCRIPTION:
@@ -217,14 +204,13 @@
 	fi
 
 	addwrite "${EGIT3_STORE_DIR}"
+	if [[ -e ${GIT_DIR}/shallow ]]; then
+		einfo "${GIT_DIR} was a shallow clone, recreating..."
+		rm -r "${GIT_DIR}" || die
+	fi
 	if [[ ! -d ${GIT_DIR} ]]; then
 		mkdir "${GIT_DIR}" || die
 		git init --bare || die
-
-		if [[ ! ${EGIT_NONSHALLOW} ]]; then
-			# avoid auto-unshallow :)
-			touch "${GIT_DIR}"/shallow || die
-		fi
 	fi
 }
 
@@ -267,93 +253,6 @@
 	done < <(echo "${data}" | git config -f /dev/fd/0 -l || die)
 }
 
-# @FUNCTION: _git-r3_smart_fetch
-# @USAGE: <git-fetch-args>...
-# @DESCRIPTION:
-# Try fetching without '--depth' and switch to '--depth 1' if that
-# will involve less objects fetched.
-_git-r3_smart_fetch() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	local sed_regexp='.*Counting objects: \([0-9]*\), done\..*'
-
-	# start the main fetch
-	local cmd=( git fetch --progress "${@}" )
-	echo "${cmd[@]}" >&2
-
-	# we copy the output to the 'sed' pipe for parsing. whenever sed finds
-	# the process count, it quits quickly to avoid delays in writing it.
-	# then, we start a dummy 'cat' to keep the pipe alive
-
-	"${cmd[@]}" 2>&1 \
-		| tee >(
-			sed -n -e "/${sed_regexp}/{s/${sed_regexp}/\1/p;q}" \
-				> "${T}"/git-r3_main.count
-			exec cat >/dev/null
-		) &
-	local main_pid=${!}
-
-	# start the helper process
-	_git-r3_sub_fetch() {
-		# wait for main fetch to get object count; if the server doesn't
-		# output it, we won't even launch the parallel process
-		while [[ ! -s ${T}/git-r3_main.count ]]; do
-			sleep 0.25
-		done
-
-		# ok, let's see if parallel fetch gives us smaller count
-		# --dry-run will prevent it from writing to the local clone
-		# and sed should terminate git with SIGPIPE
-		local sub_count=$(git fetch --progress --dry-run --depth 1 "${@}" 2>&1 \
-			| sed -n -e "/${sed_regexp}/{s/${sed_regexp}/\1/p;q}")
-		local main_count=$(<"${T}"/git-r3_main.count)
-
-		# let's be real sure that '--depth 1' will be good for us.
-		# note that we have purely objects counts, and '--depth 1'
-		# may involve much bigger objects
-		if [[ ${main_count} && ${main_count} -ge $(( sub_count * 3/2 )) ]]
-		then
-			# signal that we want shallow fetch instead,
-			# and terminate the non-shallow fetch process
-			touch "${T}"/git-r3_want_shallow || die
-			kill ${main_pid} &>/dev/null
-			exit 0
-		fi
-
-		exit 1
-	}
-	_git-r3_sub_fetch "${@}" &
-	local sub_pid=${!}
-
-	# wait for main process to terminate, either of its own
-	# or by signal from subprocess
-	wait ${main_pid}
-	local main_ret=${?}
-
-	# wait for subprocess to terminate, killing it if necessary.
-	# if main fetch finished before it, there's no point in keeping
-	# it alive. if main fetch was killed by it, it's done anyway
-	kill ${sub_pid} &>/dev/null
-	wait ${sub_pid}
-
-	# now see if subprocess wanted to tell us something...
-	if [[ -f ${T}/git-r3_want_shallow ]]; then
-		rm "${T}"/git-r3_want_shallow || die
-
-		# if fetch finished already (wasn't killed), ignore it
-		[[ ${main_ret} -eq 0 ]] && return 0
-
-		# otherwise, restart as shallow fetch
-		einfo "Restarting fetch using --depth 1 to save bandwidth ..."
-		local cmd=( git fetch --progress --depth 1 "${@}" )
-		echo "${cmd[@]}" >&2
-		"${cmd[@]}"
-		main_ret=${?}
-	fi
-
-	return ${main_ret}
-}
-
 # @FUNCTION: _git-r3_is_local_repo
 # @USAGE: <repo-uri>
 # @INTERNAL
@@ -413,7 +312,7 @@
 	local branch=${EGIT_BRANCH:+refs/heads/${EGIT_BRANCH}}
 	local remote_ref=${2:-${EGIT_COMMIT:-${branch:-HEAD}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT%/*}}
-	local local_ref=refs/heads/${local_id}/__main__
+	local local_ref=refs/git-r3/${local_id}/__main__
 
 	[[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset"
 
@@ -423,93 +322,36 @@
 	# try to fetch from the remote
 	local r success
 	for r in "${repos[@]}"; do
-		einfo "Fetching ${remote_ref} from ${r} ..."
-
-		local is_branch lookup_ref
-		if [[ ${remote_ref} == refs/heads/* || ${remote_ref} == HEAD ]]
-		then
-			is_branch=1
-			lookup_ref=${remote_ref}
-		else
-			# ls-remote by commit is going to fail anyway,
-			# so we may as well pass refs/tags/ABCDEF...
-			lookup_ref=refs/tags/${remote_ref}
-		fi
+		einfo "Fetching ${r} ..."
 
-		# first, try ls-remote to see if ${remote_ref} is a real ref
-		# and not a commit id. if it succeeds, we can pass ${remote_ref}
-		# to 'fetch'. otherwise, we will just fetch everything
-
-		# split on whitespace
-		local ref=(
-			$(git ls-remote "${r}" "${lookup_ref}" || echo __FAIL__)
+		local fetch_command=(
+			git fetch --prune "${r}"
+			# mirror the remote branches as local branches
+			"refs/heads/*:refs/heads/*"
+			# pull tags explicitly in order to prune them properly
+			"refs/tags/*:refs/tags/*"
 		)
 
-		# normally, ref[0] is a hash, so we can do magic strings here
-		[[ ${ref[0]} == __FAIL__ ]] && continue
-
-		local nonshallow=${EGIT_NONSHALLOW}
-		local ref_param=()
-		if [[ ! ${ref[0]} ]]; then
-			nonshallow=1
-		fi
-
-		# trying to do a shallow clone of a local repo makes git try to
-		# write to the repo. we don't want that to happen.
-		_git-r3_is_local_repo "${r}" && nonshallow=1
-
-		# 1. if we need a non-shallow clone and we have a shallow one,
-		#    we need to unshallow it explicitly.
-		# 2. if we want a shallow clone, we just pass '--depth 1'
-		#    to the first fetch in the repo. passing '--depth'
-		#    to further requests usually results in more data being
-		#    downloaded than without it.
-		# 3. if we update a shallow clone, we try without '--depth'
-		#    first since that usually transfers less data. however,
-		#    we use git-r3_smart_fetch that can switch into '--depth 1'
-		#    if that looks beneficial.
-
-		local fetch_command=( git fetch )
-		if [[ ${nonshallow} ]]; then
-			if [[ -f ${GIT_DIR}/shallow ]]; then
-				ref_param+=( --unshallow )
-			fi
-			# fetch all branches
-			ref_param+=( "refs/heads/*:refs/remotes/origin/*" )
-		else
-			# 'git show-ref --heads' returns 1 when there are no branches
-			if ! git show-ref --heads -q; then
-				ref_param+=( --depth 1 )
+		set -- "${fetch_command[@]}"
+		echo "${@}" >&2
+		if "${@}"; then
+			# now let's see what the user wants from us
+			local full_remote_ref=$(
+				git rev-parse --verify --symbolic-full-name "${remote_ref}"
+			)
+
+			if [[ ${full_remote_ref} ]]; then
+				# when we are given a ref, create a symbolic ref
+				# so that we preserve the actual argument
+				set -- git symbolic-ref "${local_ref}" "${full_remote_ref}"
 			else
-				fetch_command=( _git-r3_smart_fetch )
+				# otherwise, we were likely given a commit id
+				set -- git update-ref --no-deref "${local_ref}" "${remote_ref}"
 			fi
-		fi
-
-		# now, another important thing. we may only fetch a remote
-		# branch directly to a local branch. Otherwise, we need to fetch
-		# the commit and re-create the branch on top of it.
 
-		if [[ ${ref[0]} ]]; then
-			if [[ ${is_branch} ]]; then
-				ref_param+=( -f "${remote_ref}:${local_id}/__main__" )
-			else
-				ref_param+=( "refs/tags/${remote_ref}" )
-			fi
-		fi
-
-		# if ${remote_ref} is branch or tag, ${ref[@]} will contain
-		# the respective commit id. otherwise, it will be an empty
-		# array, so the following won't evaluate to a parameter.
-		set -- "${fetch_command[@]}" --no-tags "${r}" "${ref_param[@]}"
-		echo "${@}" >&2
-		if "${@}"; then
-			if [[ ! ${is_branch} ]]; then
-				set -- git branch -f "${local_id}/__main__" \
-					"${ref[0]:-${remote_ref}}"
-				echo "${@}" >&2
-				if ! "${@}"; then
-					die "Creating branch for ${remote_ref} failed (wrong ref?)."
-				fi
+			echo "${@}" >&2
+			if ! "${@}"; then
+				die "Referencing ${remote_ref} failed (wrong ref?)."
 			fi
 
 			success=1
@@ -581,53 +423,53 @@
 	local out_dir=${2:-${EGIT_CHECKOUT_DIR:-${WORKDIR}/${P}}}
 	local local_id=${3:-${CATEGORY}/${PN}/${SLOT%/*}}
 
-	local -x GIT_DIR GIT_WORK_TREE
+	local -x GIT_DIR
 	_git-r3_set_gitdir "${repos[0]}"
-	GIT_WORK_TREE=${out_dir}
-	mkdir -p "${GIT_WORK_TREE}" || die
 
 	einfo "Checking out ${repos[0]} to ${out_dir} ..."
 
-	if ! git cat-file -e refs/heads/"${local_id}"/__main__
-	then
+	if ! git cat-file -e refs/git-r3/"${local_id}"/__main__; then
 		if [[ ${EVCS_OFFLINE} ]]; then
 			die "No local clone of ${repos[0]}. Unable to work with EVCS_OFFLINE."
 		else
 			die "Logic error: no local clone of ${repos[0]}. git-r3_fetch not used?"
 		fi
 	fi
+	local remote_ref=$(
+		git symbolic-ref --quiet refs/git-r3/"${local_id}"/__main__
+	)
+	local new_commit_id=$(
+		git rev-parse --verify refs/git-r3/"${local_id}"/__main__
+	)
 
-	# Note: this is a hack to avoid parallel checkout issues.
-	# I will try to handle it without locks when I have more time.
-	local lockfile=${GIT_DIR}/.git-r3_checkout_lock
-	local lockfile_l=${lockfile}.${BASHPID}
-	touch "${lockfile_l}" || die
-	until ln "${lockfile_l}" "${lockfile}" &>/dev/null; do
-		sleep 1
-	done
-	rm "${lockfile_l}" || die
-
-	set -- git checkout -f "${local_id}"/__main__ .
+	set -- git clone --quiet --shared --no-checkout "${GIT_DIR}" "${out_dir}"/
 	echo "${@}" >&2
-	"${@}"
-	local ret=${?}
+	"${@}" || die "git clone (for checkout) failed"
 
-	# Remove the lock!
-	rm "${lockfile}" || die
-
-	[[ ${ret} == 0 ]] || die "git checkout ${local_id}/__main__ failed"
+	git-r3_sub_checkout() {
+		local -x GIT_DIR=${out_dir}/.git
+		local -x GIT_WORK_TREE=${out_dir}
+
+		set -- git checkout --quiet
+		if [[ ${remote_ref} ]]; then
+			set -- "${@}" "${remote_ref#refs/heads/}"
+		else
+			set -- "${@}" "${new_commit_id}"
+		fi
+		echo "${@}" >&2
+		"${@}" || die "git checkout ${remote_ref:-${new_commit_id}} failed"
+	}
+	git-r3_sub_checkout
 
-	# diff against previous revision (if any)
-	local new_commit_id=$(git rev-parse --verify "${local_id}"/__main__)
 	local old_commit_id=$(
-		git rev-parse --verify "${local_id}"/__old__ 2>/dev/null
+		git rev-parse --quiet --verify refs/git-r3/"${local_id}"/__old__
 	)
-
 	if [[ ! ${old_commit_id} ]]; then
 		echo "GIT NEW branch -->"
 		echo "   repository:               ${repos[0]}"
 		echo "   at the commit:            ${new_commit_id}"
 	else
+		# diff against previous revision
 		echo "GIT update -->"
 		echo "   repository:               ${repos[0]}"
 		# write out message based on the revisions
@@ -641,13 +483,13 @@
 			echo "   at the commit:            ${new_commit_id}"
 		fi
 	fi
-	git branch -f "${local_id}"/{__old__,__main__} || die
+	git update-ref --no-deref refs/git-r3/"${local_id}"/{__old__,__main__} || die
 
 	# recursively checkout submodules
-	if [[ -f ${GIT_WORK_TREE}/.gitmodules ]]; then
+	if [[ -f ${out_dir}/.gitmodules ]]; then
 		local submodules
 		_git-r3_set_submodules \
-			"$(<"${GIT_WORK_TREE}"/.gitmodules)"
+			"$(<"${out_dir}"/.gitmodules)"
 
 		while [[ ${submodules[@]} ]]; do
 			local subname=${submodules[0]}
@@ -658,7 +500,7 @@
 				url=${repos[0]%%/}/${url}
 			fi
 
-			git-r3_checkout "${url}" "${GIT_WORK_TREE}/${path}" \
+			git-r3_checkout "${url}" "${out_dir}/${path}" \
 				"${local_id}/${subname}"
 
 			submodules=( "${submodules[@]:3}" ) # shift
@@ -668,11 +510,6 @@
 	# keep this *after* submodules
 	export EGIT_DIR=${GIT_DIR}
 	export EGIT_VERSION=${new_commit_id}
-
-	# create a fake '.git' directory to satisfy 'git rev-parse HEAD'
-	GIT_DIR=${GIT_WORK_TREE}/.git
-	git init || die
-	echo "${EGIT_VERSION}" > "${GIT_WORK_TREE}"/.git/HEAD || die
 }
 
 # @FUNCTION: git-r3_peek_remote_ref





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-02-24  8:43 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-02-24  8:43 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/02/24 08:43:34

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fetch and preserve git notes as well.

Revision  Changes    Path
1.1147               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1147&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1147&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1146&r2=1.1147

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1146
retrieving revision 1.1147
diff -u -r1.1146 -r1.1147
--- ChangeLog	23 Feb 2014 22:05:55 -0000	1.1146
+++ ChangeLog	24 Feb 2014 08:43:34 -0000	1.1147
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1146 2014/02/23 22:05:55 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1147 2014/02/24 08:43:34 mgorny Exp $
+
+  24 Feb 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fetch and preserve git notes as well.
 
   23 Feb 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Use complete git clones, and clone them onto the checkout directory. This



1.25                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.25&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.25&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.24&r2=1.25

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- git-r3.eclass	23 Feb 2014 22:05:55 -0000	1.24
+++ git-r3.eclass	24 Feb 2014 08:43:34 -0000	1.25
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.24 2014/02/23 22:05:55 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.25 2014/02/24 08:43:34 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -330,6 +330,8 @@
 			"refs/heads/*:refs/heads/*"
 			# pull tags explicitly in order to prune them properly
 			"refs/tags/*:refs/tags/*"
+			# notes in case something needs them
+			"refs/notes/*:refs/notes/*"
 		)
 
 		set -- "${fetch_command[@]}"
@@ -447,9 +449,13 @@
 	"${@}" || die "git clone (for checkout) failed"
 
 	git-r3_sub_checkout() {
+		local orig_repo=${GIT_DIR}
 		local -x GIT_DIR=${out_dir}/.git
 		local -x GIT_WORK_TREE=${out_dir}
 
+		# pull notes
+		git fetch "${orig_repo}" "refs/notes/*:refs/notes/*" || die
+
 		set -- git checkout --quiet
 		if [[ ${remote_ref} ]]; then
 			set -- "${@}" "${remote_ref#refs/heads/}"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-02-25 13:01 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-02-25 13:01 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/02/25 13:01:49

  Modified:             ChangeLog git-r3.eclass
  Log:
  Use git init+fetch rather than clone in order to fix checking out to non-empty directory. Fixes bug #502400.

Revision  Changes    Path
1.1148               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1148&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1148&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1147&r2=1.1148

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1147
retrieving revision 1.1148
diff -u -r1.1147 -r1.1148
--- ChangeLog	24 Feb 2014 08:43:34 -0000	1.1147
+++ ChangeLog	25 Feb 2014 13:01:49 -0000	1.1148
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1147 2014/02/24 08:43:34 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1148 2014/02/25 13:01:49 mgorny Exp $
+
+  25 Feb 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Use git init+fetch rather than clone in order to fix checking out to
+  non-empty directory. Fixes bug #502400.
 
   24 Feb 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Fetch and preserve git notes as well.



1.26                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.26&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.26&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.25&r2=1.26

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- git-r3.eclass	24 Feb 2014 08:43:34 -0000	1.25
+++ git-r3.eclass	25 Feb 2014 13:01:49 -0000	1.26
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.25 2014/02/24 08:43:34 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.26 2014/02/25 13:01:49 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -444,17 +444,24 @@
 		git rev-parse --verify refs/git-r3/"${local_id}"/__main__
 	)
 
-	set -- git clone --quiet --shared --no-checkout "${GIT_DIR}" "${out_dir}"/
-	echo "${@}" >&2
-	"${@}" || die "git clone (for checkout) failed"
-
 	git-r3_sub_checkout() {
 		local orig_repo=${GIT_DIR}
 		local -x GIT_DIR=${out_dir}/.git
 		local -x GIT_WORK_TREE=${out_dir}
 
-		# pull notes
-		git fetch "${orig_repo}" "refs/notes/*:refs/notes/*" || die
+		mkdir -p "${out_dir}" || die
+
+		# use git init+fetch instead of clone since the latter doesn't like
+		# non-empty directories.
+
+		git init --quiet || die
+		set -- git fetch --update-head-ok "${orig_repo}" \
+			"refs/heads/*:refs/heads/*" \
+			"refs/tags/*:refs/tags/*" \
+			"refs/notes/*:refs/notes/*"
+
+		echo "${@}" >&2
+		"${@}" || die "git fetch into checkout dir failed"
 
 		set -- git checkout --quiet
 		if [[ ${remote_ref} ]]; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:44 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:44 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:44:19

  Modified:             ChangeLog git-r3.eclass
  Log:
  Improve docs.

Revision  Changes    Path
1.1152               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1152&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1152&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1151&r2=1.1152

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1151
retrieving revision 1.1152
diff -u -r1.1151 -r1.1152
--- ChangeLog	1 Mar 2014 11:51:08 -0000	1.1151
+++ ChangeLog	2 Mar 2014 11:44:19 -0000	1.1152
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1151 2014/03/01 11:51:08 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1152 2014/03/02 11:44:19 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Improve docs.
 
   01 Mar 2014; Sergei Trofimovich <slyfox@gentoo.org> autotools.eclass:
   Call 'automake' via 'autotools_run_tool' (found by 'ebuild.sh' QA warnings).



1.27                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.27&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.27&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.26&r2=1.27

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- git-r3.eclass	25 Feb 2014 13:01:49 -0000	1.26
+++ git-r3.eclass	2 Mar 2014 11:44:19 -0000	1.27
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.26 2014/02/25 13:01:49 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.27 2014/03/02 11:44:19 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -36,6 +36,9 @@
 # @DESCRIPTION:
 # Storage directory for git sources.
 #
+# This is intended to be set by user in make.conf. Ebuilds must not set
+# it.
+#
 # EGIT3_STORE_DIR=${DISTDIR}/git3-src
 
 # @ECLASS-VARIABLE: EGIT_REPO_URI





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:45 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:45 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:45:41

  Modified:             ChangeLog git-r3.eclass
  Log:
  Replace "git fetch" checkout with more efficient and compatible pseudo-shared clone.

Revision  Changes    Path
1.1153               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1153&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1153&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1152&r2=1.1153

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1152
retrieving revision 1.1153
diff -u -r1.1152 -r1.1153
--- ChangeLog	2 Mar 2014 11:44:19 -0000	1.1152
+++ ChangeLog	2 Mar 2014 11:45:41 -0000	1.1153
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1152 2014/03/02 11:44:19 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1153 2014/03/02 11:45:41 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Replace "git fetch" checkout with more efficient and compatible pseudo-shared
+  clone.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Improve docs.



1.28                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.28&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.28&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.27&r2=1.28

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- git-r3.eclass	2 Mar 2014 11:44:19 -0000	1.27
+++ git-r3.eclass	2 Mar 2014 11:45:41 -0000	1.28
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.27 2014/03/02 11:44:19 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.28 2014/03/02 11:45:41 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -458,13 +458,14 @@
 		# non-empty directories.
 
 		git init --quiet || die
-		set -- git fetch --update-head-ok "${orig_repo}" \
-			"refs/heads/*:refs/heads/*" \
-			"refs/tags/*:refs/tags/*" \
-			"refs/notes/*:refs/notes/*"
+		# setup 'alternates' to avoid copying objects
+		echo "${orig_repo}/objects" > "${GIT_DIR}"/objects/info/alternates || die
+		# now copy the refs
+		# [htn]* safely catches heads, tags, notes without complaining
+		# on non-existing ones, and omits internal 'git-r3' ref
+		cp -R "${orig_repo}"/refs/[htn]* "${GIT_DIR}"/refs/ || die
 
-		echo "${@}" >&2
-		"${@}" || die "git fetch into checkout dir failed"
+		# (no need to copy HEAD, we will set it via checkout)
 
 		set -- git checkout --quiet
 		if [[ ${remote_ref} ]]; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:46 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:46 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:46:15

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix support for non-master default branch.

Revision  Changes    Path
1.1154               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1154&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1154&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1153&r2=1.1154

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1153
retrieving revision 1.1154
diff -u -r1.1153 -r1.1154
--- ChangeLog	2 Mar 2014 11:45:41 -0000	1.1153
+++ ChangeLog	2 Mar 2014 11:46:15 -0000	1.1154
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1153 2014/03/02 11:45:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1154 2014/03/02 11:46:15 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fix support for non-master default branch.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Replace "git fetch" checkout with more efficient and compatible pseudo-shared



1.29                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.29&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.29&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.28&r2=1.29

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- git-r3.eclass	2 Mar 2014 11:45:41 -0000	1.28
+++ git-r3.eclass	2 Mar 2014 11:46:15 -0000	1.29
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.28 2014/03/02 11:45:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.29 2014/03/02 11:46:15 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -270,6 +270,42 @@
 	[[ ${uri} == file://* || ${uri} == /* ]]
 }
 
+# @FUNCTION: _git-r3_update_head
+# @USAGE: <remote-head-ref>
+# @INTERNAL
+# @DESCRIPTION:
+# Given a ref to which remote HEAD was fetched, try to match
+# a local branch and update symbolic HEAD appropriately.
+_git-r3_update_head()
+{
+	debug-print-function ${FUNCNAME} "$@"
+
+	local head_ref=${1}
+	local head_hash=$(git rev-parse --verify "${1}" || die)
+	local matching_ref
+
+	# TODO: some transports support peeking at symbolic remote refs
+	# find a way to use that rather than guessing
+
+	# (based on guess_remote_head() in git-1.9.0/remote.c)
+	local h ref
+	while read h ref; do
+		# look for matching head
+		if [[ ${h} == ${head_hash} ]]; then
+			# either take the first matching ref, or master if it is there
+			if [[ ! ${matching_ref} || ${ref} == refs/heads/master ]]; then
+				matching_ref=${ref}
+			fi
+		fi
+	done < <(git show-ref --heads || die)
+
+	if [[ ! ${matching_ref} ]]; then
+		die "Unable to find a matching branch for remote HEAD (${head_hash})"
+	fi
+
+	git symbolic-ref HEAD "${matching_ref}" || die
+}
+
 # @FUNCTION: git-r3_fetch
 # @USAGE: [<repo-uri> [<remote-ref> [<local-id>]]]
 # @DESCRIPTION:
@@ -335,11 +371,17 @@
 			"refs/tags/*:refs/tags/*"
 			# notes in case something needs them
 			"refs/notes/*:refs/notes/*"
+			# and HEAD in case we need the default branch
+			# (we keep it in refs/git-r3 since otherwise --prune interferes)
+			HEAD:refs/git-r3/HEAD
 		)
 
 		set -- "${fetch_command[@]}"
 		echo "${@}" >&2
 		if "${@}"; then
+			# find remote HEAD and update our HEAD properly
+			_git-r3_update_head refs/git-r3/HEAD
+
 			# now let's see what the user wants from us
 			local full_remote_ref=$(
 				git rev-parse --verify --symbolic-full-name "${remote_ref}"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:46 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:46 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:46:42

  Modified:             ChangeLog git-r3.eclass
  Log:
  Support using a local git mirror.

Revision  Changes    Path
1.1155               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1155&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1155&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1154&r2=1.1155

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1154
retrieving revision 1.1155
diff -u -r1.1154 -r1.1155
--- ChangeLog	2 Mar 2014 11:46:15 -0000	1.1154
+++ ChangeLog	2 Mar 2014 11:46:42 -0000	1.1155
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1154 2014/03/02 11:46:15 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1155 2014/03/02 11:46:42 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Support using a local git mirror.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Fix support for non-master default branch.



1.30                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.30&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.30&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.29&r2=1.30

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- git-r3.eclass	2 Mar 2014 11:46:15 -0000	1.29
+++ git-r3.eclass	2 Mar 2014 11:46:42 -0000	1.30
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.29 2014/03/02 11:46:15 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.30 2014/03/02 11:46:42 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -41,6 +41,20 @@
 #
 # EGIT3_STORE_DIR=${DISTDIR}/git3-src
 
+# @ECLASS-VARIABLE: EGIT_MIRROR_URI
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# 'Top' URI to a local git mirror. If specified, the eclass will try
+# to fetch from the local mirror instead of using the remote repository.
+#
+# The mirror needs to follow EGIT3_STORE_DIR structure. The directory
+# created by eclass can be used for that purpose.
+#
+# Example:
+# @CODE
+# EGIT_MIRROR_URI="git://mirror.lan/"
+# @CODE
+
 # @ECLASS-VARIABLE: EGIT_REPO_URI
 # @REQUIRED
 # @DESCRIPTION:
@@ -358,6 +372,14 @@
 	local -x GIT_DIR
 	_git-r3_set_gitdir "${repos[0]}"
 
+	# prepend the local mirror if applicable
+	if [[ ${EGIT_MIRROR_URI} ]]; then
+		repos=(
+			"${EGIT_MIRROR_URI%/}/${GIT_DIR##*/}"
+			"${repos[@]}"
+		)
+	fi
+
 	# try to fetch from the remote
 	local r success
 	for r in "${repos[@]}"; do





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:47 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:47 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:47:10

  Modified:             ChangeLog git-r3.eclass
  Log:
  Introduce EGIT_CLONE_TYPE for future use.

Revision  Changes    Path
1.1156               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1156&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1156&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1155&r2=1.1156

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1155
retrieving revision 1.1156
diff -u -r1.1155 -r1.1156
--- ChangeLog	2 Mar 2014 11:46:42 -0000	1.1155
+++ ChangeLog	2 Mar 2014 11:47:10 -0000	1.1156
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1155 2014/03/02 11:46:42 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1156 2014/03/02 11:47:10 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Introduce EGIT_CLONE_TYPE for future use.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Support using a local git mirror.



1.31                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.31&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.31&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.30&r2=1.31

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- git-r3.eclass	2 Mar 2014 11:46:42 -0000	1.30
+++ git-r3.eclass	2 Mar 2014 11:47:10 -0000	1.31
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.30 2014/03/02 11:46:42 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.31 2014/03/02 11:47:10 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -32,6 +32,19 @@
 	DEPEND="dev-vcs/git"
 fi
 
+# @ECLASS-VARIABLE: EGIT_CLONE_TYPE
+# @DESCRIPTION:
+# Type of clone that should be used against the remote repository.
+# This can be either of: 'mirror'.
+#
+# The 'mirror' type clones all remote branches and tags with complete
+# history and all notes. EGIT_COMMIT can specify any commit hash.
+# Upstream-removed branches and tags are purged from the local clone
+# while fetching. This mode is suitable for cloning the local copy
+# for development or hosting a local git mirror. However, clones
+# of repositories with large diverged branches may quickly grow large.
+: ${EGIT_CLONE_TYPE:=mirror}
+
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
 # @DESCRIPTION:
 # Storage directory for git sources.
@@ -107,6 +120,14 @@
 _git-r3_env_setup() {
 	debug-print-function ${FUNCNAME} "$@"
 
+	# check the clone type
+	case "${EGIT_CLONE_TYPE}" in
+		mirror)
+			;;
+		*)
+			die "Invalid EGIT_CLONE_TYPE=${EGIT_CLONE_TYPE}"
+	esac
+
 	local esc_pn livevar
 	esc_pn=${PN//[-+]/_}
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:47 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:47 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:47:42

  Modified:             ChangeLog git-r3.eclass
  Log:
  Support EGIT_CLONE_TYPE=single.

Revision  Changes    Path
1.1157               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1157&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1157&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1156&r2=1.1157

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1156
retrieving revision 1.1157
diff -u -r1.1156 -r1.1157
--- ChangeLog	2 Mar 2014 11:47:10 -0000	1.1156
+++ ChangeLog	2 Mar 2014 11:47:41 -0000	1.1157
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1156 2014/03/02 11:47:10 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1157 2014/03/02 11:47:41 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Support EGIT_CLONE_TYPE=single.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Introduce EGIT_CLONE_TYPE for future use.



1.32                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.32&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.32&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.31&r2=1.32

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- git-r3.eclass	2 Mar 2014 11:47:10 -0000	1.31
+++ git-r3.eclass	2 Mar 2014 11:47:41 -0000	1.32
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.31 2014/03/02 11:47:10 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.32 2014/03/02 11:47:41 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -35,7 +35,7 @@
 # @ECLASS-VARIABLE: EGIT_CLONE_TYPE
 # @DESCRIPTION:
 # Type of clone that should be used against the remote repository.
-# This can be either of: 'mirror'.
+# This can be either of: 'mirror', 'single'.
 #
 # The 'mirror' type clones all remote branches and tags with complete
 # history and all notes. EGIT_COMMIT can specify any commit hash.
@@ -43,7 +43,14 @@
 # while fetching. This mode is suitable for cloning the local copy
 # for development or hosting a local git mirror. However, clones
 # of repositories with large diverged branches may quickly grow large.
-: ${EGIT_CLONE_TYPE:=mirror}
+#
+# The 'single' type clones only the requested branch or tag. Tags
+# referencing commits throughout the branch history are fetched as well,
+# and all notes. EGIT_COMMIT can safely specify only hashes
+# in the current branch. No purging of old references is done (if you
+# often switch branches, you may need to remove stale branches
+# yourself). This mode is suitable for general use.
+: ${EGIT_CLONE_TYPE:=single}
 
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
 # @DESCRIPTION:
@@ -122,7 +129,7 @@
 
 	# check the clone type
 	case "${EGIT_CLONE_TYPE}" in
-		mirror)
+		mirror|single)
 			;;
 		*)
 			die "Invalid EGIT_CLONE_TYPE=${EGIT_CLONE_TYPE}"
@@ -305,14 +312,14 @@
 	[[ ${uri} == file://* || ${uri} == /* ]]
 }
 
-# @FUNCTION: _git-r3_update_head
-# @USAGE: <remote-head-ref>
+# @FUNCTION: _git-r3_find_head
+# @USAGE: <head-ref>
 # @INTERNAL
 # @DESCRIPTION:
-# Given a ref to which remote HEAD was fetched, try to match
-# a local branch and update symbolic HEAD appropriately.
-_git-r3_update_head()
-{
+# Given a ref to which remote HEAD was fetched, try to find
+# a branch matching the commit. Expects 'git show-ref'
+# or 'git ls-remote' output on stdin.
+_git-r3_find_head() {
 	debug-print-function ${FUNCNAME} "$@"
 
 	local head_ref=${1}
@@ -332,13 +339,13 @@
 				matching_ref=${ref}
 			fi
 		fi
-	done < <(git show-ref --heads || die)
+	done
 
 	if [[ ! ${matching_ref} ]]; then
 		die "Unable to find a matching branch for remote HEAD (${head_hash})"
 	fi
 
-	git symbolic-ref HEAD "${matching_ref}" || die
+	echo "${matching_ref}"
 }
 
 # @FUNCTION: git-r3_fetch
@@ -406,24 +413,85 @@
 	for r in "${repos[@]}"; do
 		einfo "Fetching ${r} ..."
 
-		local fetch_command=(
-			git fetch --prune "${r}"
-			# mirror the remote branches as local branches
-			"refs/heads/*:refs/heads/*"
-			# pull tags explicitly in order to prune them properly
-			"refs/tags/*:refs/tags/*"
-			# notes in case something needs them
-			"refs/notes/*:refs/notes/*"
-			# and HEAD in case we need the default branch
-			# (we keep it in refs/git-r3 since otherwise --prune interferes)
-			HEAD:refs/git-r3/HEAD
-		)
+		local fetch_command=( git fetch "${r}" )
+
+		if [[ ${EGIT_CLONE_TYPE} == mirror ]]; then
+			fetch_command+=(
+				--prune
+				# mirror the remote branches as local branches
+				"refs/heads/*:refs/heads/*"
+				# pull tags explicitly in order to prune them properly
+				"refs/tags/*:refs/tags/*"
+				# notes in case something needs them
+				"refs/notes/*:refs/notes/*"
+				# and HEAD in case we need the default branch
+				# (we keep it in refs/git-r3 since otherwise --prune interferes)
+				HEAD:refs/git-r3/HEAD
+			)
+		else # single
+			local fetch_l fetch_r
+
+			if [[ ${remote_ref} == HEAD ]]; then
+				# HEAD
+				fetch_l=HEAD
+			elif [[ ${remote_ref} == refs/heads/* ]]; then
+				# regular branch
+				fetch_l=${remote_ref}
+			else
+				# tag or commit...
+				# let ls-remote figure it out
+				local tagref=$(git ls-remote "${r}" "refs/tags/${remote_ref}")
+
+				# if it was a tag, ls-remote obtained a hash
+				if [[ ${tagref} ]]; then
+					# tag
+					fetch_l=refs/tags/${remote_ref}
+				else
+					# commit, so we need to fetch the branch
+					# and guess where it takes us...
+					if [[ ${branch} ]]; then
+						fetch_l=${branch}
+					else
+						fetch_l=HEAD
+					fi
+				fi
+			fi
+
+			if [[ ${fetch_l} == HEAD ]]; then
+				fetch_r=refs/git-r3/HEAD
+			else
+				fetch_r=${fetch_l}
+			fi
+
+			fetch_command+=(
+				"${fetch_l}:${fetch_r}"
+			)
+		fi
 
 		set -- "${fetch_command[@]}"
 		echo "${@}" >&2
 		if "${@}"; then
-			# find remote HEAD and update our HEAD properly
-			_git-r3_update_head refs/git-r3/HEAD
+			if [[ ${EGIT_CLONE_TYPE} == mirror ]]; then
+				# find remote HEAD and update our HEAD properly
+				git symbolic-ref HEAD \
+					"$(_git-r3_find_head refs/git-r3/HEAD \
+						< <(git show-ref --heads || die))" \
+						|| die "Unable to update HEAD"
+			else # single
+				if [[ ${fetch_l} == HEAD ]]; then
+					# find out what branch we fetched as HEAD
+					local head_branch=$(_git-r3_find_head \
+						refs/git-r3/HEAD \
+						< <(git ls-remote --heads "${r}" || die))
+
+					# and move it to its regular place
+					git update-ref --no-deref "${head_branch}" \
+						refs/git-r3/HEAD \
+						|| die "Unable to sync HEAD branch ${head_branch}"
+					git symbolic-ref HEAD "${head_branch}" \
+						|| die "Unable to update HEAD"
+				fi
+			fi
 
 			# now let's see what the user wants from us
 			local full_remote_ref=$(





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:48 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:48 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:48:05

  Modified:             ChangeLog git-r3.eclass
  Log:
  Support EGIT_CLONE_TYPE=shallow.

Revision  Changes    Path
1.1158               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1158&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1158&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1157&r2=1.1158

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1157
retrieving revision 1.1158
diff -u -r1.1157 -r1.1158
--- ChangeLog	2 Mar 2014 11:47:41 -0000	1.1157
+++ ChangeLog	2 Mar 2014 11:48:05 -0000	1.1158
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1157 2014/03/02 11:47:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1158 2014/03/02 11:48:05 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Support EGIT_CLONE_TYPE=shallow.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Support EGIT_CLONE_TYPE=single.



1.33                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.33&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.33&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.32&r2=1.33

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- git-r3.eclass	2 Mar 2014 11:47:41 -0000	1.32
+++ git-r3.eclass	2 Mar 2014 11:48:05 -0000	1.33
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.32 2014/03/02 11:47:41 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.33 2014/03/02 11:48:05 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -29,13 +29,13 @@
 if [[ ! ${_GIT_R3} ]]; then
 
 if [[ ! ${_INHERITED_BY_GIT_2} ]]; then
-	DEPEND="dev-vcs/git"
+	DEPEND=">=dev-vcs/git-1.8.2.1"
 fi
 
 # @ECLASS-VARIABLE: EGIT_CLONE_TYPE
 # @DESCRIPTION:
 # Type of clone that should be used against the remote repository.
-# This can be either of: 'mirror', 'single'.
+# This can be either of: 'mirror', 'single', 'shallow'.
 #
 # The 'mirror' type clones all remote branches and tags with complete
 # history and all notes. EGIT_COMMIT can specify any commit hash.
@@ -50,6 +50,12 @@
 # in the current branch. No purging of old references is done (if you
 # often switch branches, you may need to remove stale branches
 # yourself). This mode is suitable for general use.
+#
+# The 'shallow' type clones only the newest commit on requested branch
+# or tag. EGIT_COMMIT can only specify tags, and since the history is
+# unavailable calls like 'git describe' will not reference prior tags.
+# No purging of old references is done. This mode is intended mostly for
+# embedded systems with limited disk space.
 : ${EGIT_CLONE_TYPE:=single}
 
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
@@ -129,7 +135,7 @@
 
 	# check the clone type
 	case "${EGIT_CLONE_TYPE}" in
-		mirror|single)
+		mirror|single|shallow)
 			;;
 		*)
 			die "Invalid EGIT_CLONE_TYPE=${EGIT_CLONE_TYPE}"
@@ -249,10 +255,6 @@
 	fi
 
 	addwrite "${EGIT3_STORE_DIR}"
-	if [[ -e ${GIT_DIR}/shallow ]]; then
-		einfo "${GIT_DIR} was a shallow clone, recreating..."
-		rm -r "${GIT_DIR}" || die
-	fi
 	if [[ ! -d ${GIT_DIR} ]]; then
 		mkdir "${GIT_DIR}" || die
 		git init --bare || die
@@ -428,7 +430,7 @@
 				# (we keep it in refs/git-r3 since otherwise --prune interferes)
 				HEAD:refs/git-r3/HEAD
 			)
-		else # single
+		else # single or shallow
 			local fetch_l fetch_r
 
 			if [[ ${remote_ref} == HEAD ]]; then
@@ -468,6 +470,18 @@
 			)
 		fi
 
+		if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
+			# use '--depth 1' when fetching a new branch
+			if [[ ! $(git rev-parse --quiet --verify "${fetch_r}") ]]
+			then
+				fetch_command+=( --depth 1 )
+			fi
+		else # non-shallow mode
+			if [[ -f ${GIT_DIR}/shallow ]]; then
+				fetch_command+=( --unshallow )
+			fi
+		fi
+
 		set -- "${fetch_command[@]}"
 		echo "${@}" >&2
 		if "${@}"; then
@@ -477,7 +491,7 @@
 					"$(_git-r3_find_head refs/git-r3/HEAD \
 						< <(git show-ref --heads || die))" \
 						|| die "Unable to update HEAD"
-			else # single
+			else # single or shallow
 				if [[ ${fetch_l} == HEAD ]]; then
 					# find out what branch we fetched as HEAD
 					local head_branch=$(_git-r3_find_head \
@@ -620,6 +634,10 @@
 
 		# (no need to copy HEAD, we will set it via checkout)
 
+		if [[ -f ${orig_repo}/shallow ]]; then
+			cp "${orig_repo}"/shallow "${GIT_DIR}"/ || die
+		fi
+
 		set -- git checkout --quiet
 		if [[ ${remote_ref} ]]; then
 			set -- "${@}" "${remote_ref#refs/heads/}"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:48 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:48 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:48:28

  Modified:             ChangeLog git-r3.eclass
  Log:
  Auto-unshallow when fetching by commit hash.

Revision  Changes    Path
1.1159               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1159&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1159&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1158&r2=1.1159

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1158
retrieving revision 1.1159
diff -u -r1.1158 -r1.1159
--- ChangeLog	2 Mar 2014 11:48:05 -0000	1.1158
+++ ChangeLog	2 Mar 2014 11:48:28 -0000	1.1159
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1158 2014/03/02 11:48:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1159 2014/03/02 11:48:28 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Auto-unshallow when fetching by commit hash.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Support EGIT_CLONE_TYPE=shallow.



1.34                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.34&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.34&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.33&r2=1.34

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- git-r3.eclass	2 Mar 2014 11:48:05 -0000	1.33
+++ git-r3.eclass	2 Mar 2014 11:48:28 -0000	1.34
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.33 2014/03/02 11:48:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.34 2014/03/02 11:48:28 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -449,13 +449,18 @@
 					# tag
 					fetch_l=refs/tags/${remote_ref}
 				else
-					# commit, so we need to fetch the branch
-					# and guess where it takes us...
+					# commit
+					# so we need to fetch the branch
 					if [[ ${branch} ]]; then
 						fetch_l=${branch}
 					else
 						fetch_l=HEAD
 					fi
+
+					# fetching by commit in shallow mode? can't do.
+					if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
+						local EGIT_CLONE_TYPE=single
+					fi
 				fi
 			fi
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:49 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:49 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:49:05

  Modified:             ChangeLog git-r3.eclass
  Log:
  Add EGIT_MIN_CLONE_TYPE to control clone type via ebuilds.

Revision  Changes    Path
1.1160               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1160&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1160&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1159&r2=1.1160

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1159
retrieving revision 1.1160
diff -u -r1.1159 -r1.1160
--- ChangeLog	2 Mar 2014 11:48:28 -0000	1.1159
+++ ChangeLog	2 Mar 2014 11:49:05 -0000	1.1160
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1159 2014/03/02 11:48:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1160 2014/03/02 11:49:05 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Add EGIT_MIN_CLONE_TYPE to control clone type via ebuilds.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Auto-unshallow when fetching by commit hash.



1.35                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.35&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.35&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.34&r2=1.35

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- git-r3.eclass	2 Mar 2014 11:48:28 -0000	1.34
+++ git-r3.eclass	2 Mar 2014 11:49:05 -0000	1.35
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.34 2014/03/02 11:48:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.35 2014/03/02 11:49:05 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -58,6 +58,19 @@
 # embedded systems with limited disk space.
 : ${EGIT_CLONE_TYPE:=single}
 
+# @ECLASS-VARIABLE: EGIT_MIN_CLONE_TYPE
+# @DESCRIPTION:
+# 'Minimum' clone type supported by the ebuild. Takes same values
+# as EGIT_CLONE_TYPE. When user sets a type that's 'lower' (that is,
+# later on the list) than EGIT_MIN_CLONE_TYPE, the eclass uses
+# EGIT_MIN_CLONE_TYPE instead.
+#
+# A common case is to use 'single' whenever the build system requires
+# access to full branch history or the remote (Google Code) does not
+# support shallow clones. Please use sparingly, and to fix fatal errors
+# rather than 'non-pretty versions'.
+: ${EGIT_MIN_CLONE_TYPE:=shallow}
+
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
 # @DESCRIPTION:
 # Storage directory for git sources.
@@ -140,6 +153,24 @@
 		*)
 			die "Invalid EGIT_CLONE_TYPE=${EGIT_CLONE_TYPE}"
 	esac
+	case "${EGIT_MIN_CLONE_TYPE}" in
+		shallow)
+			;;
+		single)
+			if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
+				einfo "git-r3: ebuild needs to be cloned in 'single' mode, adjusting"
+				EGIT_CLONE_TYPE=single
+			fi
+			;;
+		mirror)
+			if [[ ${EGIT_CLONE_TYPE} != mirror ]]; then
+				einfo "git-r3: ebuild needs to be cloned in 'mirror' mode, adjusting"
+				EGIT_CLONE_TYPE=mirror
+			fi
+			;;
+		*)
+			die "Invalid EGIT_MIN_CLONE_TYPE=${EGIT_MIN_CLONE_TYPE}"
+	esac
 
 	local esc_pn livevar
 	esc_pn=${PN//[-+]/_}





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:49 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:49 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:49:49

  Modified:             ChangeLog git-r3.eclass
  Log:
  Force non-forward updates on git refs.

Revision  Changes    Path
1.1161               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1161&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1161&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1160&r2=1.1161

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1160
retrieving revision 1.1161
diff -u -r1.1160 -r1.1161
--- ChangeLog	2 Mar 2014 11:49:05 -0000	1.1160
+++ ChangeLog	2 Mar 2014 11:49:49 -0000	1.1161
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1160 2014/03/02 11:49:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1161 2014/03/02 11:49:49 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Force non-forward updates on git refs.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Add EGIT_MIN_CLONE_TYPE to control clone type via ebuilds.



1.36                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.36&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.36&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.35&r2=1.36

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- git-r3.eclass	2 Mar 2014 11:49:05 -0000	1.35
+++ git-r3.eclass	2 Mar 2014 11:49:49 -0000	1.36
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.35 2014/03/02 11:49:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.36 2014/03/02 11:49:49 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -452,14 +452,14 @@
 			fetch_command+=(
 				--prune
 				# mirror the remote branches as local branches
-				"refs/heads/*:refs/heads/*"
+				"+refs/heads/*:refs/heads/*"
 				# pull tags explicitly in order to prune them properly
-				"refs/tags/*:refs/tags/*"
+				"+refs/tags/*:refs/tags/*"
 				# notes in case something needs them
-				"refs/notes/*:refs/notes/*"
+				"+refs/notes/*:refs/notes/*"
 				# and HEAD in case we need the default branch
 				# (we keep it in refs/git-r3 since otherwise --prune interferes)
-				HEAD:refs/git-r3/HEAD
+				"+HEAD:refs/git-r3/HEAD"
 			)
 		else # single or shallow
 			local fetch_l fetch_r
@@ -502,7 +502,7 @@
 			fi
 
 			fetch_command+=(
-				"${fetch_l}:${fetch_r}"
+				"+${fetch_l}:${fetch_r}"
 			)
 		fi
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:50 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:50 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:50:23

  Modified:             ChangeLog git-r3.eclass
  Log:
  Do not try shallow clones on local repositories.

Revision  Changes    Path
1.1162               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1162&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1162&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1161&r2=1.1162

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1161
retrieving revision 1.1162
diff -u -r1.1161 -r1.1162
--- ChangeLog	2 Mar 2014 11:49:49 -0000	1.1161
+++ ChangeLog	2 Mar 2014 11:50:23 -0000	1.1162
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1161 2014/03/02 11:49:49 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1162 2014/03/02 11:50:23 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Do not try shallow clones on local repositories.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Force non-forward updates on git refs.



1.37                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.37&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.37&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.36&r2=1.37

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- git-r3.eclass	2 Mar 2014 11:49:49 -0000	1.36
+++ git-r3.eclass	2 Mar 2014 11:50:23 -0000	1.37
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.36 2014/03/02 11:49:49 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.37 2014/03/02 11:50:23 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -507,9 +507,13 @@
 		fi
 
 		if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
-			# use '--depth 1' when fetching a new branch
-			if [[ ! $(git rev-parse --quiet --verify "${fetch_r}") ]]
+			if _git-r3_is_local_repo; then
+				# '--depth 1' causes sandbox violations with local repos
+				# bug #491260
+				local EGIT_CLONE_TYPE=single
+			elif [[ ! $(git rev-parse --quiet --verify "${fetch_r}") ]]
 			then
+				# use '--depth 1' when fetching a new branch
 				fetch_command+=( --depth 1 )
 			fi
 		else # non-shallow mode





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-02 11:50 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-02 11:50 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/02 11:50:48

  Modified:             ChangeLog git-r3.eclass
  Log:
  Clarify where EGIT_CLONE_TYPE and EGIT_MIN_CLONE_TYPE is supposed to be set.

Revision  Changes    Path
1.1163               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1163&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1163&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1162&r2=1.1163

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1162
retrieving revision 1.1163
diff -u -r1.1162 -r1.1163
--- ChangeLog	2 Mar 2014 11:50:23 -0000	1.1162
+++ ChangeLog	2 Mar 2014 11:50:48 -0000	1.1163
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1162 2014/03/02 11:50:23 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1163 2014/03/02 11:50:48 mgorny Exp $
+
+  02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Clarify where EGIT_CLONE_TYPE and EGIT_MIN_CLONE_TYPE is supposed to be set.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Do not try shallow clones on local repositories.



1.38                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.38&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.38&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.37&r2=1.38

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- git-r3.eclass	2 Mar 2014 11:50:23 -0000	1.37
+++ git-r3.eclass	2 Mar 2014 11:50:48 -0000	1.38
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.37 2014/03/02 11:50:23 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.38 2014/03/02 11:50:48 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -37,6 +37,9 @@
 # Type of clone that should be used against the remote repository.
 # This can be either of: 'mirror', 'single', 'shallow'.
 #
+# This is intended to be set by user in make.conf. Ebuilds are supposed
+# to set EGIT_MIN_CLONE_TYPE if necessary instead.
+#
 # The 'mirror' type clones all remote branches and tags with complete
 # history and all notes. EGIT_COMMIT can specify any commit hash.
 # Upstream-removed branches and tags are purged from the local clone
@@ -65,6 +68,9 @@
 # later on the list) than EGIT_MIN_CLONE_TYPE, the eclass uses
 # EGIT_MIN_CLONE_TYPE instead.
 #
+# This variable is intended to be used by ebuilds only. Users are
+# supposed to set EGIT_CLONE_TYPE instead.
+#
 # A common case is to use 'single' whenever the build system requires
 # access to full branch history or the remote (Google Code) does not
 # support shallow clones. Please use sparingly, and to fix fatal errors





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-03 21:45 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-03 21:45 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/03 21:45:06

  Modified:             ChangeLog git-r3.eclass
  Log:
  Force EGIT_CLONE_TYPE=mirror for submodules since they can reference commits in any branch without explicitly naming the branch, bug #503332.

Revision  Changes    Path
1.1165               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1165&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1165&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1164&r2=1.1165

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1164
retrieving revision 1.1165
diff -u -r1.1164 -r1.1165
--- ChangeLog	2 Mar 2014 15:41:20 -0000	1.1164
+++ ChangeLog	3 Mar 2014 21:45:06 -0000	1.1165
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1164 2014/03/02 15:41:20 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1165 2014/03/03 21:45:06 mgorny Exp $
+
+  03 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Force EGIT_CLONE_TYPE=mirror for submodules since they can reference commits
+  in any branch without explicitly naming the branch, bug #503332.
 
   02 Mar 2014; Michał Górny <mgorny@gentoo.org> xorg-2.eclass:
   Use git-r3 for live ebuilds.



1.39                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.39&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.39&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.38&r2=1.39

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- git-r3.eclass	2 Mar 2014 11:50:48 -0000	1.38
+++ git-r3.eclass	3 Mar 2014 21:45:06 -0000	1.39
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.38 2014/03/02 11:50:48 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.39 2014/03/03 21:45:06 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -578,6 +578,10 @@
 	done
 	[[ ${success} ]] || die "Unable to fetch from any of EGIT_REPO_URI"
 
+	# submodules can reference commits in any branch
+	# always use the 'clone' mode to accomodate that, bug #503332
+	local EGIT_CLONE_TYPE=mirror
+
 	# recursively fetch submodules
 	if git cat-file -e "${local_ref}":.gitmodules &>/dev/null; then
 		local submodules





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-03-24 21:32 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-03-24 21:32 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/03/24 21:32:31

  Modified:             ChangeLog git-r3.eclass
  Log:
  Add a single+tags mode to handle Google Code more efficiently, bug #503708.

Revision  Changes    Path
1.1183               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1183&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1183&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1182&r2=1.1183

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1182
retrieving revision 1.1183
diff -u -r1.1182 -r1.1183
--- ChangeLog	21 Mar 2014 22:03:00 -0000	1.1182
+++ ChangeLog	24 Mar 2014 21:32:31 -0000	1.1183
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1182 2014/03/21 22:03:00 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1183 2014/03/24 21:32:31 mgorny Exp $
+
+  24 Mar 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Add a single+tags mode to handle Google Code more efficiently, bug #503708.
 
   21 Mar 2014; Robin H. Johnson <robbat2@gentoo.org> linux-info.eclass:
   linux-info: Bug #504346: Change one message from error to warning, kernel



1.40                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.40&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.40&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.39&r2=1.40

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- git-r3.eclass	3 Mar 2014 21:45:06 -0000	1.39
+++ git-r3.eclass	24 Mar 2014 21:32:31 -0000	1.40
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.39 2014/03/03 21:45:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.40 2014/03/24 21:32:31 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -47,6 +47,14 @@
 # for development or hosting a local git mirror. However, clones
 # of repositories with large diverged branches may quickly grow large.
 #
+# The 'single+tags' type clones the requested branch and all tags
+# in the repository. All notes are fetched as well. EGIT_COMMIT
+# can safely specify hashes throughout the current branch and all tags.
+# No purging of old references is done (if you often switch branches,
+# you may need to remove stale branches yourself). This mode is intended
+# mostly for use with broken git servers such as Google Code that fail
+# to fetch tags along with the branch in 'single' mode.
+#
 # The 'single' type clones only the requested branch or tag. Tags
 # referencing commits throughout the branch history are fetched as well,
 # and all notes. EGIT_COMMIT can safely specify only hashes
@@ -72,9 +80,10 @@
 # supposed to set EGIT_CLONE_TYPE instead.
 #
 # A common case is to use 'single' whenever the build system requires
-# access to full branch history or the remote (Google Code) does not
-# support shallow clones. Please use sparingly, and to fix fatal errors
-# rather than 'non-pretty versions'.
+# access to full branch history, or 'single+tags' when Google Code
+# or a similar remote is used that does not support shallow clones
+# and fetching tags along with commits. Please use sparingly, and to fix
+# fatal errors rather than 'non-pretty versions'.
 : ${EGIT_MIN_CLONE_TYPE:=shallow}
 
 # @ECLASS-VARIABLE: EGIT3_STORE_DIR
@@ -154,7 +163,7 @@
 
 	# check the clone type
 	case "${EGIT_CLONE_TYPE}" in
-		mirror|single|shallow)
+		mirror|single+tags|single|shallow)
 			;;
 		*)
 			die "Invalid EGIT_CLONE_TYPE=${EGIT_CLONE_TYPE}"
@@ -168,6 +177,12 @@
 				EGIT_CLONE_TYPE=single
 			fi
 			;;
+		single+tags)
+			if [[ ${EGIT_CLONE_TYPE} == shallow || ${EGIT_CLONE_TYPE} == single ]]; then
+				einfo "git-r3: ebuild needs to be cloned in 'single+tags' mode, adjusting"
+				EGIT_CLONE_TYPE=single+tags
+			fi
+			;;
 		mirror)
 			if [[ ${EGIT_CLONE_TYPE} != mirror ]]; then
 				einfo "git-r3: ebuild needs to be cloned in 'mirror' mode, adjusting"
@@ -510,6 +525,13 @@
 			fetch_command+=(
 				"+${fetch_l}:${fetch_r}"
 			)
+
+			if [[ ${EGIT_CLONE_TYPE} == single+tags ]]; then
+				fetch_command+=(
+					# pull tags explicitly as requested
+					"+refs/tags/*:refs/tags/*"
+				)
+			fi
 		fi
 
 		if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-04-17 20:28 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-04-17 20:28 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/04/17 20:28:37

  Modified:             ChangeLog git-r3.eclass
  Log:
  Automatically switch to EGIT_CLONE_TYPE=single+tags for Google Code.

Revision  Changes    Path
1.1212               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1212&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1212&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1211&r2=1.1212

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1211
retrieving revision 1.1212
diff -u -r1.1211 -r1.1212
--- ChangeLog	17 Apr 2014 18:16:54 -0000	1.1211
+++ ChangeLog	17 Apr 2014 20:28:37 -0000	1.1212
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1211 2014/04/17 18:16:54 kensington Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1212 2014/04/17 20:28:37 mgorny Exp $
+
+  17 Apr 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Automatically switch to EGIT_CLONE_TYPE=single+tags for Google Code.
 
   17 Apr 2014; Michael Palimaka <kensington@gentoo.org> kde4-meta.eclass:
   Sync with overlay. Remove unused inherit. Switch to git-r3 eclass. Fix file



1.41                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.41&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.41&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.40&r2=1.41

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- git-r3.eclass	24 Mar 2014 21:32:31 -0000	1.40
+++ git-r3.eclass	17 Apr 2014 20:28:37 -0000	1.41
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.40 2014/03/24 21:32:31 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.41 2014/04/17 20:28:37 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -468,8 +468,25 @@
 		einfo "Fetching ${r} ..."
 
 		local fetch_command=( git fetch "${r}" )
+		local clone_type=${EGIT_CLONE_TYPE}
 
-		if [[ ${EGIT_CLONE_TYPE} == mirror ]]; then
+		if [[ ${r} == https://code.google.com/* ]]; then
+			# Google Code has special magic on top of git that:
+			# 1) can't handle shallow clones at all,
+			# 2) fetches duplicately when tags are pulled in with branch
+			# so automatically switch to single+tags mode.
+			if [[ ${clone_type} == shallow ]]; then
+				einfo "  Google Code does not support shallow clones"
+				einfo "  using EGIT_CLONE_TYPE=single+tags"
+				clone_type=single+tags
+			elif [[ ${clone_type} == single ]]; then
+				einfo "  git-r3: Google Code does not send tags properly in 'single' mode"
+				einfo "  using EGIT_CLONE_TYPE=single+tags"
+				clone_type=single+tags
+			fi
+		fi
+
+		if [[ ${clone_type} == mirror ]]; then
 			fetch_command+=(
 				--prune
 				# mirror the remote branches as local branches
@@ -510,8 +527,8 @@
 					fi
 
 					# fetching by commit in shallow mode? can't do.
-					if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
-						local EGIT_CLONE_TYPE=single
+					if [[ ${clone_type} == shallow ]]; then
+						clone_type=single
 					fi
 				fi
 			fi
@@ -526,7 +543,7 @@
 				"+${fetch_l}:${fetch_r}"
 			)
 
-			if [[ ${EGIT_CLONE_TYPE} == single+tags ]]; then
+			if [[ ${clone_type} == single+tags ]]; then
 				fetch_command+=(
 					# pull tags explicitly as requested
 					"+refs/tags/*:refs/tags/*"
@@ -534,11 +551,11 @@
 			fi
 		fi
 
-		if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
+		if [[ ${clone_type} == shallow ]]; then
 			if _git-r3_is_local_repo; then
 				# '--depth 1' causes sandbox violations with local repos
 				# bug #491260
-				local EGIT_CLONE_TYPE=single
+				clone_type=single
 			elif [[ ! $(git rev-parse --quiet --verify "${fetch_r}") ]]
 			then
 				# use '--depth 1' when fetching a new branch
@@ -553,7 +570,7 @@
 		set -- "${fetch_command[@]}"
 		echo "${@}" >&2
 		if "${@}"; then
-			if [[ ${EGIT_CLONE_TYPE} == mirror ]]; then
+			if [[ ${clone_type} == mirror ]]; then
 				# find remote HEAD and update our HEAD properly
 				git symbolic-ref HEAD \
 					"$(_git-r3_find_head refs/git-r3/HEAD \





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-05-23  7:09 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-05-23  7:09 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/05/23 07:09:08

  Modified:             ChangeLog git-r3.eclass
  Log:
  Give an explanatory error when trying to fetch https:// with dev-vcs/git[-curl]. Bug #510768.

Revision  Changes    Path
1.1265               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1265&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1265&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1264&r2=1.1265

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1264
retrieving revision 1.1265
diff -u -r1.1264 -r1.1265
--- ChangeLog	22 May 2014 16:35:11 -0000	1.1264
+++ ChangeLog	23 May 2014 07:09:07 -0000	1.1265
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1264 2014/05/22 16:35:11 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1265 2014/05/23 07:09:07 mgorny Exp $
+
+  23 May 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Give an explanatory error when trying to fetch https:// with
+  dev-vcs/git[-curl]. Bug #510768.
 
   22 May 2014; Sergei Trofimovich <slyfox@gentoo.org> haskell-cabal.eclass:
   cabal_chdeps() now defaults to MY_PN (autogenerated by hackport) if exists,



1.42                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.42&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.42&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.41&r2=1.42

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- git-r3.eclass	17 Apr 2014 20:28:37 -0000	1.41
+++ git-r3.eclass	23 May 2014 07:09:07 -0000	1.42
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.41 2014/04/17 20:28:37 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.42 2014/05/23 07:09:07 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -470,6 +470,15 @@
 		local fetch_command=( git fetch "${r}" )
 		local clone_type=${EGIT_CLONE_TYPE}
 
+		if [[ ${r} == https://* ]] && ! has_version 'dev-vcs/git[curl]'; then
+			eerror "git-r3: fetching from https:// requested. In order to support https,"
+			eerror "dev-vcs/git needs to be built with USE=curl. Example solution:"
+			eerror
+			eerror "	echo dev-vcs/git curl >> /etc/portage/package.use"
+			eerror "	emerge -1v dev-vcs/git"
+			die "dev-vcs/git built with USE=curl required."
+		fi
+
 		if [[ ${r} == https://code.google.com/* ]]; then
 			# Google Code has special magic on top of git that:
 			# 1) can't handle shallow clones at all,





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-06-01 22:07 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-06-01 22:07 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/06/01 22:07:59

  Modified:             ChangeLog git-r3.eclass
  Log:
  Properly canonicalize relative submodule URIs, bug #501250.

Revision  Changes    Path
1.1279               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1279&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1279&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1278&r2=1.1279

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1278
retrieving revision 1.1279
diff -u -r1.1278 -r1.1279
--- ChangeLog	31 May 2014 10:23:36 -0000	1.1278
+++ ChangeLog	1 Jun 2014 22:07:59 -0000	1.1279
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1278 2014/05/31 10:23:36 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1279 2014/06/01 22:07:59 mgorny Exp $
+
+  01 Jun 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass,
+  +tests/git-r3:subrepos.sh:
+  Properly canonicalize relative submodule URIs, bug #501250.
 
   31 May 2014; Michał Górny <mgorny@gentoo.org> systemd.eclass:
   Add systemd_{do,new}userunit.



1.43                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.43&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.43&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.42&r2=1.43

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- git-r3.eclass	23 May 2014 07:09:07 -0000	1.42
+++ git-r3.eclass	1 Jun 2014 22:07:59 -0000	1.43
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.42 2014/05/23 07:09:07 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.43 2014/06/01 22:07:59 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -352,6 +352,49 @@
 	done < <(echo "${data}" | git config -f /dev/fd/0 -l || die)
 }
 
+# @FUNCTION: _git-r3_set_subrepos
+# @USAGE: <submodule-uri> <parent-repo-uri>...
+# @INTERNAL
+# @DESCRIPTION:
+# Create 'subrepos' array containing absolute (canonical) submodule URIs
+# for the given <submodule-uri>. If the URI is relative, URIs will be
+# constructed using all <parent-repo-uri>s. Otherwise, this single URI
+# will be placed in the array.
+_git-r3_set_subrepos() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	local suburl=${1}
+	subrepos=( "${@:2}" )
+
+	if [[ ${suburl} == ./* || ${suburl} == ../* ]]; then
+		# drop all possible trailing slashes for consistency
+		subrepos=( "${subrepos[@]%%/}" )
+
+		while true; do
+			if [[ ${suburl} == ./* ]]; then
+				suburl=${suburl:2}
+			elif [[ ${suburl} == ../* ]]; then
+				suburl=${suburl:3}
+
+				# XXX: correctness checking
+
+				# drop the last path component
+				subrepos=( "${subrepos[@]%/*}" )
+				# and then the trailing slashes, again
+				subrepos=( "${subrepos[@]%%/}" )
+			else
+				break
+			fi
+		done
+
+		# append the preprocessed path to the preprocessed URIs
+		subrepos=( "${subrepos[@]/%//${suburl}}")
+	else
+		subrepos=( "${suburl}" )
+	fi
+}
+
+
 # @FUNCTION: _git-r3_is_local_repo
 # @USAGE: <repo-uri>
 # @INTERNAL
@@ -645,11 +688,9 @@
 			if [[ ! ${commit} ]]; then
 				die "Unable to get commit id for submodule ${subname}"
 			fi
-			if [[ ${url} == ./* || ${url} == ../* ]]; then
-				local subrepos=( "${repos[@]/%//${url}}" )
-			else
-				local subrepos=( "${url}" )
-			fi
+
+			local subrepos
+			_git-r3_set_subrepos "${url}" "${repos[@]}"
 
 			git-r3_fetch "${subrepos[*]}" "${commit}" "${local_id}/${subname}"
 
@@ -781,10 +822,8 @@
 			local subname=${submodules[0]}
 			local url=${submodules[1]}
 			local path=${submodules[2]}
-
-			if [[ ${url} == ./* || ${url} == ../* ]]; then
-				url=${repos[0]%%/}/${url}
-			fi
+			local subrepos
+			_git-r3_set_subrepos "${url}" "${repos[@]}"
 
 			git-r3_checkout "${url}" "${out_dir}/${path}" \
 				"${local_id}/${subname}"





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-06-20 11:40 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-06-20 11:40 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/06/20 11:40:28

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix typo in submodule fetching, reported by Hans Vercammen.

Revision  Changes    Path
1.1296               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1296&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1296&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1295&r2=1.1296

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1295
retrieving revision 1.1296
diff -u -r1.1295 -r1.1296
--- ChangeLog	20 Jun 2014 00:03:33 -0000	1.1295
+++ ChangeLog	20 Jun 2014 11:40:28 -0000	1.1296
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1295 2014/06/20 00:03:33 grknight Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1296 2014/06/20 11:40:28 mgorny Exp $
+
+  20 Jun 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Fix typo in submodule fetching, reported by Hans Vercammen.
 
   19 Jun 2014; Brian Evans <grknight@gentoo.org> mysql-v2.eclass, mysql-cmake.eclass:
   Sync with mysql overlay.



1.44                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.44&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.44&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.43&r2=1.44

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- git-r3.eclass	1 Jun 2014 22:07:59 -0000	1.43
+++ git-r3.eclass	20 Jun 2014 11:40:28 -0000	1.44
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.43 2014/06/01 22:07:59 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.44 2014/06/20 11:40:28 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -825,7 +825,7 @@
 			local subrepos
 			_git-r3_set_subrepos "${url}" "${repos[@]}"
 
-			git-r3_checkout "${url}" "${out_dir}/${path}" \
+			git-r3_checkout "${subrepos[*]}" "${out_dir}/${path}" \
 				"${local_id}/${subname}"
 
 			submodules=( "${submodules[@]:3}" ) # shift





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-07-07 14:41 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-07-07 14:41 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/07/07 14:41:56

  Modified:             ChangeLog git-r3.eclass
  Log:
  Stop forcing -m0755 on EGIT3_STORE_DIR and parents, bug #516508.

Revision  Changes    Path
1.1317               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1317&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1317&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1316&r2=1.1317

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1316
retrieving revision 1.1317
diff -u -r1.1316 -r1.1317
--- ChangeLog	7 Jul 2014 12:43:35 -0000	1.1316
+++ ChangeLog	7 Jul 2014 14:41:56 -0000	1.1317
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1316 2014/07/07 12:43:35 haubi Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1317 2014/07/07 14:41:56 mgorny Exp $
+
+  07 Jul 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Stop forcing -m0755 on EGIT3_STORE_DIR and parents, bug #516508.
 
   07 Jul 2014; Michael Haubenwallner <haubi@gentoo.org>
   ELT-patches/aixrtl/1.5.0-cmds-c, ELT-patches/aixrtl/1.5.0-cmds-cxx,



1.45                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.45&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.45&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.44&r2=1.45

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- git-r3.eclass	20 Jun 2014 11:40:28 -0000	1.44
+++ git-r3.eclass	7 Jul 2014 14:41:56 -0000	1.45
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.44 2014/06/20 11:40:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.45 2014/07/07 14:41:56 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -302,7 +302,7 @@
 	if [[ ! -d ${EGIT3_STORE_DIR} ]]; then
 		(
 			addwrite /
-			mkdir -m0755 -p "${EGIT3_STORE_DIR}" || die
+			mkdir -p "${EGIT3_STORE_DIR}" || die
 		) || die "Unable to create ${EGIT3_STORE_DIR}"
 	fi
 





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-07-28 14:12 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-07-28 14:12 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/07/28 14:12:22

  Modified:             ChangeLog git-r3.eclass
  Log:
  Use ROOT=/ when checking for git features, bug #518374. Patch provided by Michael Haubenwallner.

Revision  Changes    Path
1.1326               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1326&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1326&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1325&r2=1.1326

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1325
retrieving revision 1.1326
diff -u -r1.1325 -r1.1326
--- ChangeLog	25 Jul 2014 23:18:34 -0000	1.1325
+++ ChangeLog	28 Jul 2014 14:12:22 -0000	1.1326
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1325 2014/07/25 23:18:34 ottxor Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1326 2014/07/28 14:12:22 mgorny Exp $
+
+  28 Jul 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Use ROOT=/ when checking for git features, bug #518374. Patch provided by
+  Michael Haubenwallner.
 
   25 Jul 2014; Christoph Junghans <ottxor@gentoo.org> mercurial.eclass:
   Added EHG_CHECKOUT_DIR to override checkout destination



1.46                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.46&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.46&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.45&r2=1.46

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- git-r3.eclass	7 Jul 2014 14:41:56 -0000	1.45
+++ git-r3.eclass	28 Jul 2014 14:12:22 -0000	1.46
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.45 2014/07/07 14:41:56 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.46 2014/07/28 14:12:22 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -513,7 +513,7 @@
 		local fetch_command=( git fetch "${r}" )
 		local clone_type=${EGIT_CLONE_TYPE}
 
-		if [[ ${r} == https://* ]] && ! has_version 'dev-vcs/git[curl]'; then
+		if [[ ${r} == https://* ]] && ! ROOT=/ has_version 'dev-vcs/git[curl]'; then
 			eerror "git-r3: fetching from https:// requested. In order to support https,"
 			eerror "dev-vcs/git needs to be built with USE=curl. Example solution:"
 			eerror





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2014-07-28 14:13 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2014-07-28 14:13 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/07/28 14:13:50

  Modified:             ChangeLog git-r3.eclass
  Log:
  Mention git-clone man page for URI syntax, bug #511636.

Revision  Changes    Path
1.1327               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1327&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1327&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1326&r2=1.1327

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1326
retrieving revision 1.1327
diff -u -r1.1326 -r1.1327
--- ChangeLog	28 Jul 2014 14:12:22 -0000	1.1326
+++ ChangeLog	28 Jul 2014 14:13:50 -0000	1.1327
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1326 2014/07/28 14:12:22 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1327 2014/07/28 14:13:50 mgorny Exp $
+
+  28 Jul 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Mention git-clone man page for URI syntax, bug #511636.
 
   28 Jul 2014; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Use ROOT=/ when checking for git features, bug #518374. Patch provided by



1.47                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.47&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.47&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.46&r2=1.47

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- git-r3.eclass	28 Jul 2014 14:12:22 -0000	1.46
+++ git-r3.eclass	28 Jul 2014 14:13:50 -0000	1.47
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.46 2014/07/28 14:12:22 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.47 2014/07/28 14:13:50 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -114,7 +114,8 @@
 # @DESCRIPTION:
 # URIs to the repository, e.g. git://foo, https://foo. If multiple URIs
 # are provided, the eclass will consider them as fallback URIs to try
-# if the first URI does not work.
+# if the first URI does not work. For supported URI syntaxes, read up
+# the manpage for git-clone(1).
 #
 # It can be overriden via env using ${PN}_LIVE_REPO variable.
 #





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2015-06-22  8:39 Manuel Rueger (mrueg)
  0 siblings, 0 replies; 47+ messages in thread
From: Manuel Rueger (mrueg) @ 2015-06-22  8:39 UTC (permalink / raw
  To: gentoo-commits

mrueg       15/06/22 08:39:36

  Modified:             ChangeLog git-r3.eclass
  Log:
  Fix typo.

Revision  Changes    Path
1.1677               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1677&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1677&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1676&r2=1.1677

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1676
retrieving revision 1.1677
diff -u -r1.1676 -r1.1677
--- ChangeLog	19 Jun 2015 14:11:24 -0000	1.1676
+++ ChangeLog	22 Jun 2015 08:39:36 -0000	1.1677
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1676 2015/06/19 14:11:24 chewi Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1677 2015/06/22 08:39:36 mrueg Exp $
+
+  22 Jun 2015; Manuel Rüger <mrueg@gentoo.org> git-r3.eclass:
+  Fix typo.
 
   19 Jun 2015; James Le Cuirot <chewi@gentoo.org> java-utils-2.eclass:
   Allow EANT_GENTOO_CLASSPATH_EXTRA to work when EANT_GENTOO_CLASSPATH is



1.49                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.49&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.49&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.48&r2=1.49

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- git-r3.eclass	4 Feb 2015 09:44:24 -0000	1.48
+++ git-r3.eclass	22 Jun 2015 08:39:36 -0000	1.49
@@ -1,13 +1,13 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.48 2015/02/04 09:44:24 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.49 2015/06/22 08:39:36 mrueg Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
 # Michał Górny <mgorny@gentoo.org>
 # @BLURB: Eclass for fetching and unpacking git repositories.
 # @DESCRIPTION:
-# Third generation eclass for easing maitenance of live ebuilds using
+# Third generation eclass for easing maintenance of live ebuilds using
 # git as remote repository.
 
 case "${EAPI:-0}" in





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2015-07-09 20:21 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2015-07-09 20:21 UTC (permalink / raw
  To: gentoo-commits

mgorny      15/07/09 20:21:05

  Modified:             ChangeLog git-r3.eclass
  Log:
  Do not attempt to use submodules for which the checkout path does not exist (has been removed), bug #551100.

Revision  Changes    Path
1.1707               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1707&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1707&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1706&r2=1.1707

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1706
retrieving revision 1.1707
diff -u -r1.1706 -r1.1707
--- ChangeLog	9 Jul 2015 15:43:03 -0000	1.1706
+++ ChangeLog	9 Jul 2015 20:21:05 -0000	1.1707
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1706 2015/07/09 15:43:03 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1707 2015/07/09 20:21:05 mgorny Exp $
+
+  09 Jul 2015; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Do not attempt to use submodules for which the checkout path does not exist
+  (has been removed), bug #551100.
 
   09 Jul 2015; Michał Górny <mgorny@gentoo.org> gnome2.eclass:
   Remove meaningless nonfatal from elibtoolize call, bug #551154.



1.50                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.50&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.50&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.49&r2=1.50

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- git-r3.eclass	22 Jun 2015 08:39:36 -0000	1.49
+++ git-r3.eclass	9 Jul 2015 20:21:05 -0000	1.50
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.49 2015/06/22 08:39:36 mrueg Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.50 2015/07/09 20:21:05 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -710,16 +710,23 @@
 			local subname=${submodules[0]}
 			local url=${submodules[1]}
 			local path=${submodules[2]}
-			local commit=$(git rev-parse "${local_ref}:${path}")
 
-			if [[ ! ${commit} ]]; then
-				die "Unable to get commit id for submodule ${subname}"
-			fi
+			# use only submodules for which path does exist
+			# (this is in par with 'git submodule'), bug #551100
+			# note: git cat-file does not work for submodules
+			if [[ $(git ls-tree -d "${local_ref}" "${path}") ]]
+			then
+				local commit=$(git rev-parse "${local_ref}:${path}" || die)
 
-			local subrepos
-			_git-r3_set_subrepos "${url}" "${repos[@]}"
+				if [[ ! ${commit} ]]; then
+					die "Unable to get commit id for submodule ${subname}"
+				fi
 
-			git-r3_fetch "${subrepos[*]}" "${commit}" "${local_id}/${subname}"
+				local subrepos
+				_git-r3_set_subrepos "${url}" "${repos[@]}"
+
+				git-r3_fetch "${subrepos[*]}" "${commit}" "${local_id}/${subname}"
+			fi
 
 			submodules=( "${submodules[@]:3}" ) # shift
 		done
@@ -849,11 +856,16 @@
 			local subname=${submodules[0]}
 			local url=${submodules[1]}
 			local path=${submodules[2]}
-			local subrepos
-			_git-r3_set_subrepos "${url}" "${repos[@]}"
 
-			git-r3_checkout "${subrepos[*]}" "${out_dir}/${path}" \
-				"${local_id}/${subname}"
+			# use only submodules for which path does exist
+			# (this is in par with 'git submodule'), bug #551100
+			if [[ -d ${out_dir}/${path} ]]; then
+				local subrepos
+				_git-r3_set_subrepos "${url}" "${repos[@]}"
+
+				git-r3_checkout "${subrepos[*]}" "${out_dir}/${path}" \
+					"${local_id}/${subname}"
+			fi
 
 			submodules=( "${submodules[@]:3}" ) # shift
 		done





^ permalink raw reply	[flat|nested] 47+ messages in thread

* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass
@ 2015-08-08  9:32 Michal Gorny (mgorny)
  0 siblings, 0 replies; 47+ messages in thread
From: Michal Gorny (mgorny) @ 2015-08-08  9:32 UTC (permalink / raw
  To: gentoo-commits

mgorny      15/08/08 09:32:50

  Modified:             ChangeLog git-r3.eclass
  Log:
  Add some boldness to output. Update/fix pkg_needrebuild() for smart-live-rebuild.

Revision  Changes    Path
1.1750               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1750&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1750&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1749&r2=1.1750

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1749
retrieving revision 1.1750
diff -u -r1.1749 -r1.1750
--- ChangeLog	7 Aug 2015 02:05:19 -0000	1.1749
+++ ChangeLog	8 Aug 2015 09:32:50 -0000	1.1750
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1749 2015/08/07 02:05:19 pesa Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1750 2015/08/08 09:32:50 mgorny Exp $
+
+  08 Aug 2015; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
+  Add some boldness to output. Update/fix pkg_needrebuild() for
+  smart-live-rebuild.
 
   07 Aug 2015; Davide Pesavento <pesa@gentoo.org> qt5-build.eclass:
   Fix bugs #549140 and #552942.



1.51                 eclass/git-r3.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.51&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?rev=1.51&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/git-r3.eclass?r1=1.50&r2=1.51

Index: git-r3.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- git-r3.eclass	9 Jul 2015 20:21:05 -0000	1.50
+++ git-r3.eclass	8 Aug 2015 09:32:50 -0000	1.51
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.50 2015/07/09 20:21:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.51 2015/08/08 09:32:50 mgorny Exp $
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
@@ -185,19 +185,19 @@
 			;;
 		single)
 			if [[ ${EGIT_CLONE_TYPE} == shallow ]]; then
-				einfo "git-r3: ebuild needs to be cloned in 'single' mode, adjusting"
+				einfo "git-r3: ebuild needs to be cloned in '\e[1msingle\e[22m' mode, adjusting"
 				EGIT_CLONE_TYPE=single
 			fi
 			;;
 		single+tags)
 			if [[ ${EGIT_CLONE_TYPE} == shallow || ${EGIT_CLONE_TYPE} == single ]]; then
-				einfo "git-r3: ebuild needs to be cloned in 'single+tags' mode, adjusting"
+				einfo "git-r3: ebuild needs to be cloned in '\e[1msingle+tags\e[22m' mode, adjusting"
 				EGIT_CLONE_TYPE=single+tags
 			fi
 			;;
 		mirror)
 			if [[ ${EGIT_CLONE_TYPE} != mirror ]]; then
-				einfo "git-r3: ebuild needs to be cloned in 'mirror' mode, adjusting"
+				einfo "git-r3: ebuild needs to be cloned in '\e[1mmirror\e[22m' mode, adjusting"
 				EGIT_CLONE_TYPE=mirror
 			fi
 			;;
@@ -532,7 +532,7 @@
 		umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
 	fi
 	for r in "${repos[@]}"; do
-		einfo "Fetching ${r} ..."
+		einfo "Fetching \e[1m${r}\e[22m ..."
 
 		local fetch_command=( git fetch "${r}" )
 		local clone_type=${EGIT_CLONE_TYPE}
@@ -553,11 +553,11 @@
 			# so automatically switch to single+tags mode.
 			if [[ ${clone_type} == shallow ]]; then
 				einfo "  Google Code does not support shallow clones"
-				einfo "  using EGIT_CLONE_TYPE=single+tags"
+				einfo "  using \e[1mEGIT_CLONE_TYPE=single+tags\e[22m"
 				clone_type=single+tags
 			elif [[ ${clone_type} == single ]]; then
 				einfo "  git-r3: Google Code does not send tags properly in 'single' mode"
-				einfo "  using EGIT_CLONE_TYPE=single+tags"
+				einfo "  using \e[1mEGIT_CLONE_TYPE=single+tags\e[22m"
 				clone_type=single+tags
 			fi
 		fi
@@ -771,7 +771,7 @@
 	local -x GIT_DIR
 	_git-r3_set_gitdir "${repos[0]}"
 
-	einfo "Checking out ${repos[0]} to ${out_dir} ..."
+	einfo "Checking out \e[1m${repos[0]}\e[22m to \e[1m${out_dir}\[e22m ..."
 
 	if ! git cat-file -e refs/git-r3/"${local_id}"/__main__; then
 		if [[ ${EVCS_OFFLINE} ]]; then
@@ -916,7 +916,7 @@
 
 	local r success
 	for r in "${repos[@]}"; do
-		einfo "Peeking ${remote_ref} on ${r} ..." >&2
+		einfo "Peeking \e[1m${remote_ref}\e[22m on \e[1m${r}\e[22m ..." >&2
 
 		local is_branch lookup_ref
 		if [[ ${remote_ref} == refs/heads/* || ${remote_ref} == HEAD ]]
@@ -966,16 +966,23 @@
 }
 
 # https://bugs.gentoo.org/show_bug.cgi?id=482666
-git-r3_pkg_outofdate() {
+git-r3_pkg_needrebuild() {
 	debug-print-function ${FUNCNAME} "$@"
 
 	local new_commit_id=$(git-r3_peek_remote_ref)
-	ewarn "old: ${EGIT_VERSION}"
-	ewarn "new: ${new_commit_id}"
-	[[ ${new_commit_id} && ${old_commit_id} ]] || return 2
+	[[ ${new_commit_id} && ${EGIT_VERSION} ]] || die "Lookup failed"
+
+	if [[ ${EGIT_VERSION} != ${new_commit_id} ]]; then
+		einfo "Update from \e[1m${EGIT_VERSION}\e[22m to \e[1m${new_commit_id}\e[22m"
+	else
+		einfo "Local and remote at \e[1m${EGIT_VERSION}\e[22m"
+	fi
 
 	[[ ${EGIT_VERSION} != ${new_commit_id} ]]
 }
 
+# 'export' locally until this gets into EAPI
+pkg_needrebuild() { git-r3_pkg_needrebuild; }
+
 _GIT_R3=1
 fi





^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2015-08-08  9:32 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-02 11:48 [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog git-r3.eclass Michal Gorny (mgorny)
  -- strict thread matches above, loose matches on Subject: below --
2015-08-08  9:32 Michal Gorny (mgorny)
2015-07-09 20:21 Michal Gorny (mgorny)
2015-06-22  8:39 Manuel Rueger (mrueg)
2014-07-28 14:13 Michal Gorny (mgorny)
2014-07-28 14:12 Michal Gorny (mgorny)
2014-07-07 14:41 Michal Gorny (mgorny)
2014-06-20 11:40 Michal Gorny (mgorny)
2014-06-01 22:07 Michal Gorny (mgorny)
2014-05-23  7:09 Michal Gorny (mgorny)
2014-04-17 20:28 Michal Gorny (mgorny)
2014-03-24 21:32 Michal Gorny (mgorny)
2014-03-03 21:45 Michal Gorny (mgorny)
2014-03-02 11:50 Michal Gorny (mgorny)
2014-03-02 11:50 Michal Gorny (mgorny)
2014-03-02 11:49 Michal Gorny (mgorny)
2014-03-02 11:49 Michal Gorny (mgorny)
2014-03-02 11:48 Michal Gorny (mgorny)
2014-03-02 11:47 Michal Gorny (mgorny)
2014-03-02 11:47 Michal Gorny (mgorny)
2014-03-02 11:46 Michal Gorny (mgorny)
2014-03-02 11:46 Michal Gorny (mgorny)
2014-03-02 11:45 Michal Gorny (mgorny)
2014-03-02 11:44 Michal Gorny (mgorny)
2014-02-25 13:01 Michal Gorny (mgorny)
2014-02-24  8:43 Michal Gorny (mgorny)
2014-02-23 22:05 Michal Gorny (mgorny)
2013-11-15 23:03 Michal Gorny (mgorny)
2013-10-30 19:21 Michal Gorny (mgorny)
2013-10-27 13:44 Michal Gorny (mgorny)
2013-10-27 13:33 Michal Gorny (mgorny)
2013-10-26  6:19 Michal Gorny (mgorny)
2013-10-13  7:14 Michal Gorny (mgorny)
2013-10-09 17:14 Michal Gorny (mgorny)
2013-10-05 16:48 Michal Gorny (mgorny)
2013-09-27 16:22 Michal Gorny (mgorny)
2013-09-26 21:04 Michal Gorny (mgorny)
2013-09-26 12:38 Michal Gorny (mgorny)
2013-09-25 11:19 Michal Gorny (mgorny)
2013-09-25 10:49 Michal Gorny (mgorny)
2013-09-19  9:42 Michal Gorny (mgorny)
2013-09-19  9:37 Michal Gorny (mgorny)
2013-09-13 15:08 Michal Gorny (mgorny)
2013-09-13 15:04 Michal Gorny (mgorny)
2013-09-09 16:01 Michal Gorny (mgorny)
2013-09-05 22:40 Michal Gorny (mgorny)
2013-09-05 20:24 Michal Gorny (mgorny)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox