/[gentoo-x86]/eclass/git.eclass
Gentoo

Diff of /eclass/git.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.7 Revision 1.12
1# Copyright 1999-2006 Gentoo Foundation 1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/git.eclass,v 1.7 2007/11/14 20:43:43 ferdy Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/git.eclass,v 1.12 2008/06/15 17:47:57 zlin Exp $
4 4
5## --------------------------------------------------------------------------- # 5## --------------------------------------------------------------------------- #
6# subversion.eclass author: Akinori Hattori <hattya@gentoo.org> 6# subversion.eclass author: Akinori Hattori <hattya@gentoo.org>
7# modified for git by Donnie Berkholz <spyderous@gentoo.org> 7# modified for git by Donnie Berkholz <spyderous@gentoo.org>
8# improved by Fernando J. Pereda <ferdy@gentoo.org> 8# improved by Fernando J. Pereda <ferdy@gentoo.org>
93# 93#
94# bootstrap script or command like autogen.sh or etc.. 94# bootstrap script or command like autogen.sh or etc..
95# 95#
96: ${EGIT_BOOTSTRAP:=} 96: ${EGIT_BOOTSTRAP:=}
97 97
98# @ECLASS-VARIABLE: EGIT_OFFLINE
99# @DESCRIPTION:
100# Set this variable to a non-empty value to disable the automatic updating of
101# an GIT source tree. This is intended to be set outside the git source
102# tree by users.
103EGIT_OFFLINE="${EGIT_OFFLINE:-${ESCM_OFFLINE}}"
98 104
99## -- EGIT_PATCHES: 105## -- EGIT_PATCHES:
100# 106#
101# git eclass can apply pathces in git_bootstrap(). 107# git eclass can apply pathces in git_bootstrap().
102# you can use regexp in this valiable like *.diff or *.patch or etc. 108# you can use regexp in this valiable like *.diff or *.patch or etc.
111 117
112 118
113## -- EGIT_BRANCH: 119## -- EGIT_BRANCH:
114# 120#
115# git eclass can fetch any branch in git_fetch(). 121# git eclass can fetch any branch in git_fetch().
122# If set, it must be before 'inherit git', otherwise both EGIT_BRANCH and
123# EGIT_TREE must be set after 'inherit git'.
116# Defaults to 'master' 124# Defaults to 'master'
117# 125#
118: ${EGIT_BRANCH:=master} 126: ${EGIT_BRANCH:=master}
119 127
120 128
166 if [[ ! -d ${EGIT_STORE_DIR} ]] ; then 174 if [[ ! -d ${EGIT_STORE_DIR} ]] ; then
167 debug-print "${FUNCNAME}: initial clone. creating git directory" 175 debug-print "${FUNCNAME}: initial clone. creating git directory"
168 addwrite / 176 addwrite /
169 mkdir -p "${EGIT_STORE_DIR}" \ 177 mkdir -p "${EGIT_STORE_DIR}" \
170 || die "${EGIT}: can't mkdir ${EGIT_STORE_DIR}." 178 || die "${EGIT}: can't mkdir ${EGIT_STORE_DIR}."
171 chmod -f o+rw "${EGIT_STORE_DIR}" \
172 || die "${EGIT}: can't chmod ${EGIT_STORE_DIR}."
173 export SANDBOX_WRITE="${SANDBOX_WRITE%%:/}" 179 export SANDBOX_WRITE="${SANDBOX_WRITE%%:/}"
174 fi 180 fi
175 181
176 cd -P "${EGIT_STORE_DIR}" || die "${EGIT}: can't chdir to ${EGIT_STORE_DIR}" 182 cd -P "${EGIT_STORE_DIR}" || die "${EGIT}: can't chdir to ${EGIT_STORE_DIR}"
177 EGIT_STORE_DIR=${PWD} 183 EGIT_STORE_DIR=${PWD}
182 [[ -z ${EGIT_REPO_URI##*/} ]] && EGIT_REPO_URI="${EGIT_REPO_URI%/}" 188 [[ -z ${EGIT_REPO_URI##*/} ]] && EGIT_REPO_URI="${EGIT_REPO_URI%/}"
183 EGIT_CLONE_DIR="${EGIT_PROJECT}" 189 EGIT_CLONE_DIR="${EGIT_PROJECT}"
184 190
185 debug-print "${FUNCNAME}: EGIT_OPTIONS = \"${EGIT_OPTIONS}\"" 191 debug-print "${FUNCNAME}: EGIT_OPTIONS = \"${EGIT_OPTIONS}\""
186 192
187 export GIT_DIR="${EGIT_CLONE_DIR}" 193 export GIT_DIR="${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}"
188 194
189 if [[ ! -d ${EGIT_CLONE_DIR} ]] ; then 195 if [[ ! -d ${EGIT_CLONE_DIR} ]] ; then
190 # first clone 196 # first clone
191 einfo "git clone start -->" 197 einfo "git clone start -->"
192 einfo " repository: ${EGIT_REPO_URI}" 198 einfo " repository: ${EGIT_REPO_URI}"
194 ${EGIT_FETCH_CMD} ${EGIT_OPTIONS} "${EGIT_REPO_URI}" ${EGIT_PROJECT} \ 200 ${EGIT_FETCH_CMD} ${EGIT_OPTIONS} "${EGIT_REPO_URI}" ${EGIT_PROJECT} \
195 || die "${EGIT}: can't fetch from ${EGIT_REPO_URI}." 201 || die "${EGIT}: can't fetch from ${EGIT_REPO_URI}."
196 202
197 # We use --bare cloning, so git doesn't do this for us. 203 # We use --bare cloning, so git doesn't do this for us.
198 git config remote.origin.url "${EGIT_REPO_URI}" 204 git config remote.origin.url "${EGIT_REPO_URI}"
205 elif [[ -n ${EGIT_OFFLINE} ]] ; then
206 local oldsha1=$(git rev-parse ${EGIT_BRANCH})
207 einfo "git update offline mode -->"
208 einfo " repository: ${EGIT_REPO_URI}"
209 einfo " commit: ${oldsha1}"
199 else 210 else
200 # Git urls might change, so unconditionally set it here 211 # Git urls might change, so unconditionally set it here
201 git config remote.origin.url "${EGIT_REPO_URI}" 212 git config remote.origin.url "${EGIT_REPO_URI}"
202 213
203 # fetch updates 214 # fetch updates

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.20