Lines 47-58
Link Here
|
47 |
# @ECLASS-VARIABLE: EGIT_FETCH_CMD |
47 |
# @ECLASS-VARIABLE: EGIT_FETCH_CMD |
48 |
# @DESCRIPTION: |
48 |
# @DESCRIPTION: |
49 |
# Command for cloning the repository. |
49 |
# Command for cloning the repository. |
50 |
: ${EGIT_FETCH_CMD:="git clone --bare"} |
50 |
: ${EGIT_FETCH_CMD:="git clone"} |
51 |
|
51 |
|
52 |
# @ECLASS-VARIABLE: EGIT_UPDATE_CMD |
52 |
# @ECLASS-VARIABLE: EGIT_UPDATE_CMD |
53 |
# @DESCRIPTION: |
53 |
# @DESCRIPTION: |
54 |
# Git fetch command. |
54 |
# Git fetch command. |
55 |
EGIT_UPDATE_CMD="git fetch -f -u" |
55 |
EGIT_UPDATE_CMD="git pull" |
56 |
|
56 |
|
57 |
# @ECLASS-VARIABLE: EGIT_DIFFSTAT_CMD |
57 |
# @ECLASS-VARIABLE: EGIT_DIFFSTAT_CMD |
58 |
# @DESCRIPTION: |
58 |
# @DESCRIPTION: |
Lines 145-150
Link Here
|
145 |
# @FUNCTION: git_fetch |
145 |
# @FUNCTION: git_fetch |
146 |
# @DESCRIPTION: |
146 |
# @DESCRIPTION: |
147 |
# Gets repository from EGIT_REPO_URI and store it in specified EGIT_STORE_DIR |
147 |
# Gets repository from EGIT_REPO_URI and store it in specified EGIT_STORE_DIR |
|
|
148 |
|
149 |
git_modules() { |
150 |
einfo "git submodule init" |
151 |
git submodule init |
152 |
einfo "git submodule update" |
153 |
git submodule update |
154 |
} |
155 |
|
148 |
git_fetch() { |
156 |
git_fetch() { |
149 |
debug-print-function ${FUNCNAME} "$@" |
157 |
debug-print-function ${FUNCNAME} "$@" |
150 |
|
158 |
|
Lines 192-223
Link Here
|
192 |
addwrite "${EGIT_STORE_DIR}" |
200 |
addwrite "${EGIT_STORE_DIR}" |
193 |
|
201 |
|
194 |
[[ -z ${EGIT_REPO_URI##*/} ]] && EGIT_REPO_URI="${EGIT_REPO_URI%/}" |
202 |
[[ -z ${EGIT_REPO_URI##*/} ]] && EGIT_REPO_URI="${EGIT_REPO_URI%/}" |
195 |
EGIT_CLONE_DIR="${EGIT_PROJECT}" |
203 |
EGIT_CLONE_DIR="${PN}" |
196 |
|
204 |
|
197 |
debug-print "${FUNCNAME}: EGIT_OPTIONS = \"${EGIT_OPTIONS}\"" |
205 |
debug-print "${FUNCNAME}: EGIT_OPTIONS = \"${EGIT_OPTIONS}\"" |
198 |
|
206 |
|
199 |
export GIT_DIR="${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" |
207 |
# we also have to remove all shallow and bare copied repositories |
200 |
|
|
|
201 |
# we also have to remove all shallow copied repositories |
202 |
# and fetch them again |
208 |
# and fetch them again |
203 |
if [[ -e "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}/shallow" ]]; then |
209 |
if [[ -e "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}/shallow" ]]; then |
204 |
rm -rf "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" |
210 |
rm -rf "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" |
205 |
einfo "The ${EGIT_CLONE_DIR} was shallow copy. Refetching." |
211 |
einfo "The ${EGIT_CLONE_DIR} was shallow copy. Refetching." |
206 |
fi |
212 |
fi |
|
|
213 |
[[ -d "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}/.git" ]]||\ |
214 |
(rm -rf "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" |
215 |
einfo "The ${EGIT_CLONE_DIR} was bare copy or not a git repository. Refetching.") |
207 |
|
216 |
|
208 |
if [[ ! -d ${EGIT_CLONE_DIR} ]] ; then |
217 |
if [[ ! -d ${EGIT_CLONE_DIR} ]] ; then |
209 |
# first clone |
218 |
# first clone |
210 |
${elogcmd} "GIT NEW clone -->" |
219 |
${elogcmd} "GIT NEW clone -->" |
211 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
220 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
212 |
|
221 |
einfo "${EGIT_FETCH_CMD} ${EGIT_OPTIONS} ${EGIT_REPO_URI} ${EGIT_CLONE_DIR}" |
213 |
${EGIT_FETCH_CMD} ${EGIT_OPTIONS} "${EGIT_REPO_URI}" ${EGIT_PROJECT} \ |
222 |
${EGIT_FETCH_CMD} ${EGIT_OPTIONS} "${EGIT_REPO_URI}" ${EGIT_CLONE_DIR} \ |
214 |
|| die "${EGIT}: can't fetch from ${EGIT_REPO_URI}." |
223 |
|| die "${EGIT}: can't fetch from ${EGIT_REPO_URI}." |
215 |
|
224 |
|
|
|
225 |
cd ${EGIT_CLONE_DIR} |
216 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
226 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
|
|
227 |
|
228 |
git_modules |
229 |
|
217 |
${elogcmd} " at the commit: ${cursha1}" |
230 |
${elogcmd} " at the commit: ${cursha1}" |
218 |
# We use --bare cloning, so git doesn't do this for us. |
|
|
219 |
git config remote.origin.url "${EGIT_REPO_URI}" |
220 |
elif [[ -n ${EGIT_OFFLINE} ]] ; then |
231 |
elif [[ -n ${EGIT_OFFLINE} ]] ; then |
|
|
232 |
cd ${EGIT_CLONE_DIR} |
221 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
233 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
222 |
${elogcmd} "GIT offline update -->" |
234 |
${elogcmd} "GIT offline update -->" |
223 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
235 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
Lines 230-241
Link Here
|
230 |
${elogcmd} "GIT update -->" |
242 |
${elogcmd} "GIT update -->" |
231 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
243 |
${elogcmd} " repository: ${EGIT_REPO_URI}" |
232 |
|
244 |
|
|
|
245 |
cd ${EGIT_CLONE_DIR} |
233 |
oldsha1=$(git rev-parse ${EGIT_BRANCH}) |
246 |
oldsha1=$(git rev-parse ${EGIT_BRANCH}) |
234 |
|
247 |
|
235 |
${elogcmd} ${EGIT_UPDATE_CMD} ${EGIT_OPTIONS} origin ${EGIT_BRANCH}:${EGIT_BRANCH} |
248 |
${elogcmd} ${EGIT_UPDATE_CMD} ${EGIT_OPTIONS} origin ${EGIT_BRANCH}:${EGIT_BRANCH} |
236 |
${EGIT_UPDATE_CMD} ${EGIT_OPTIONS} origin ${EGIT_BRANCH}:${EGIT_BRANCH} \ |
249 |
${EGIT_UPDATE_CMD} ${EGIT_OPTIONS} origin ${EGIT_BRANCH}:${EGIT_BRANCH} \ |
237 |
|| die "${EGIT}: can't update from ${EGIT_REPO_URI}." |
250 |
|| die "${EGIT}: can't update from ${EGIT_REPO_URI}." |
238 |
|
251 |
|
|
|
252 |
git_modules |
253 |
|
239 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
254 |
cursha1=$(git rev-parse ${EGIT_BRANCH}) |
240 |
|
255 |
|
241 |
# write out message based on the revisions |
256 |
# write out message based on the revisions |
Lines 272-298
Link Here
|
272 |
${elogcmd} " storage directory: \"${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}\"" |
287 |
${elogcmd} " storage directory: \"${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}\"" |
273 |
|
288 |
|
274 |
# unpack to the ${S} |
289 |
# unpack to the ${S} |
275 |
unset GIT_DIR |
290 |
rsync -rlpgo "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}/" "${S}/" || die "${ESVN}: can't export to ${S}." |
276 |
debug-print "git clone -l -s -n \"${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}\" \"${S}\"" |
|
|
277 |
git clone -l -s -n "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" "${S}" |
278 |
|
279 |
# set correct branch and the tree ebuild specified |
280 |
pushd "${S}" > /dev/null |
281 |
local branchname=branch-${EGIT_BRANCH} src=origin/${EGIT_BRANCH} |
282 |
if [[ ${EGIT_TREE} != ${EGIT_BRANCH} ]]; then |
283 |
branchname=tree-${EGIT_TREE} |
284 |
src=${EGIT_TREE} |
285 |
fi |
286 |
debug-print "git checkout -b ${branchname} ${src}" |
287 |
git checkout -b ${branchname} ${src} 2>&1 > /dev/null |
288 |
debug-print "git submodule init" |
289 |
git submodule init 2>&1 > /dev/null |
290 |
debug-print "git submodule update" |
291 |
git submodule update 2>&1 > /dev/null |
292 |
popd > /dev/null |
293 |
|
294 |
unset branchname src |
295 |
|
296 |
echo ">>> Unpacked to ${S}" |
291 |
echo ">>> Unpacked to ${S}" |
297 |
} |
292 |
} |
298 |
|
293 |
|