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

Diff of /eclass/subversion.eclass

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

Revision 1.31 Revision 1.49
1# Copyright 1999-2006 Gentoo Foundation 1# Copyright 1999-2008 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/subversion.eclass,v 1.31 2006/04/30 09:26:56 hattya Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/subversion.eclass,v 1.49 2008/02/20 20:32:00 zlin Exp $
4 4
5## --------------------------------------------------------------------------- # 5# @ECLASS: subversion.eclass
6# @MAINTAINER:
7# Akinori Hattori <hattya@gentoo.org>
8# Bo ├śrsted Andresen <zlin@gentoo.org>
9#
6# Author: Akinori Hattori <hattya@gentoo.org> 10# Original Author: Akinori Hattori <hattya@gentoo.org>
7# 11#
8# The subversion eclass is written to fetch the software sources from 12# @BLURB: The subversion eclass is written to fetch software sources from subversion repositories
9# subversion repositories like the cvs eclass. 13# @DESCRIPTION:
14# The subversion eclass provides functions to fetch, patch and bootstrap
15# software sources from subversion repositories.
10# 16#
11# 17# You must define the ESVN_REPO_URI variable before inheriting this eclass.
12# Description:
13# If you use this eclass, the ${S} is ${WORKDIR}/${P}.
14# It is necessary to define the ESVN_REPO_URI variable at least.
15#
16## --------------------------------------------------------------------------- #
17 18
18inherit eutils 19inherit eutils
19 20
20ESVN="subversion.eclass" 21ESVN="${ECLASS}"
21 22
22EXPORT_FUNCTIONS src_unpack 23EXPORT_FUNCTIONS src_unpack
23 24
24HOMEPAGE="http://subversion.tigris.org/"
25DESCRIPTION="Based on the ${ECLASS} eclass" 25DESCRIPTION="Based on the ${ECLASS} eclass"
26 26
27
28## -- add subversion in DEPEND
29#
30DEPEND="dev-util/subversion" 27DEPEND="dev-util/subversion
28 net-misc/rsync"
31 29
32 30# @ECLASS-VARIABLE: ESVN_STORE_DIR
33## -- ESVN_STORE_DIR: subversion sources store directory 31# @DESCRIPTION:
34# 32# subversion sources store directory. Users may override this in /etc/make.conf
35ESVN_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/svn-src" 33[[ -z ${ESVN_STORE_DIR} ]] && ESVN_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/svn-src"
36 34
37 35# @ECLASS-VARIABLE: ESVN_FETCH_CMD
38## -- ESVN_FETCH_CMD: subversion fetch command 36# @DESCRIPTION:
39# 37# subversion checkout command
40ESVN_FETCH_CMD="svn checkout" 38ESVN_FETCH_CMD="svn checkout"
41 39
42## -- ESVN_UPDATE_CMD: subversion update command 40# @ECLASS-VARIABLE: ESVN_UPDATE_CMD
43# 41# @DESCRIPTION:
42# subversion update command
44ESVN_UPDATE_CMD="svn update" 43ESVN_UPDATE_CMD="svn update"
45 44
45# @ECLASS-VARIABLE: ESVN_SWITCH_CMD
46# @DESCRIPTION:
47# subversion switch command
48ESVN_SWITCH_CMD="svn switch"
46 49
47## -- ESVN_OPTIONS: 50# @ECLASS-VARIABLE: ESVN_OPTIONS
48# 51# @DESCRIPTION:
49# the options passed to checkout or update. 52# the options passed to checkout or update. If you want a specific revision see
50# 53# ESVN_REPO_URI instead of using -rREV.
51[ -z "${ESVN_OPTIONS}" ] && ESVN_OPTIONS= 54ESVN_OPTIONS="${ESVN_OPTIONS:-}"
52 55
53 56# @ECLASS-VARIABLE: ESVN_REPO_URI
54## -- ESVN_REPO_URI: repository uri 57# @DESCRIPTION:
58# repository uri
55# 59#
56# e.g. http://foo/trunk, svn://bar/trunk 60# e.g. http://foo/trunk, svn://bar/trunk, svn://bar/branch/foo@1234
57# 61#
58# supported protocols: 62# supported protocols:
59# http:// 63# http://
60# https:// 64# https://
61# svn:// 65# svn://
66# svn+ssh://
62# 67#
63[ -z "${ESVN_REPO_URI}" ] && ESVN_REPO_URI="" 68# to peg to a specific revision, append @REV to the repo's uri
69ESVN_REPO_URI="${ESVN_REPO_URI:-}"
64 70
71# @ECLASS-VARIABLE: ESVN_REVISION
72# @DESCRIPTION:
73# User configurable revision checkout or update to from the repository
74#
75# Useful for live svn or trunk svn ebuilds allowing the user to peg
76# to a specific revision
77#
78# Note: This should never be set in an ebuild!
79ESVN_REVISION="${ESVN_REVISION:-}"
65 80
66## -- ESVN_PROJECT: project name of your ebuild 81# @ECLASS-VARIABLE: ESVN_PROJECT
82# @DESCRIPTION:
83# project name of your ebuild (= name space)
67# 84#
68# subversion eclass will check out the subversion repository like: 85# subversion eclass will check out the subversion repository like:
69# 86#
70# ${ESVN_STORE_DIR}/${ESVN_PROJECT}/${ESVN_REPO_URI##*/} 87# ${ESVN_STORE_DIR}/${ESVN_PROJECT}/${ESVN_REPO_URI##*/}
71# 88#
73# http://svn.collab.net/repo/svn/trunk/. and PN is subversion-svn. 90# http://svn.collab.net/repo/svn/trunk/. and PN is subversion-svn.
74# it will check out like: 91# it will check out like:
75# 92#
76# ${ESVN_STORE_DIR}/subversion/trunk 93# ${ESVN_STORE_DIR}/subversion/trunk
77# 94#
95# this is not used in order to declare the name of the upstream project.
96# so that you can declare this like:
97#
98# # jakarta commons-loggin
99# ESVN_PROJECT=commons/logging
100#
78# default: ${PN/-svn}. 101# default: ${PN/-svn}.
79# 102ESVN_PROJECT="${ESVN_PROJECT:-${PN/-svn}}"
80[ -z "${ESVN_PROJECT}" ] && ESVN_PROJECT="${PN/-svn}"
81 103
82 104# @ECLASS-VARIABLE: ESVN_BOOTSTRAP
83## -- ESVN_BOOTSTRAP: 105# @DESCRIPTION:
84#
85# bootstrap script or command like autogen.sh or etc.. 106# bootstrap script or command like autogen.sh or etc..
86# 107ESVN_BOOTSTRAP="${ESVN_BOOTSTRAP:-}"
87[ -z "${ESVN_BOOTSTRAP}" ] && ESVN_BOOTSTRAP=""
88 108
89 109# @ECLASS-VARIABLE: ESVN_PATCHES
90## -- ESVN_PATCHES: 110# @DESCRIPTION:
91#
92# subversion eclass can apply pathces in subversion_bootstrap(). 111# subversion eclass can apply patches in subversion_bootstrap().
93# you can use regexp in this valiable like *.diff or *.patch or etc. 112# you can use regexp in this variable like *.diff or *.patch or etc.
94# NOTE: this patches will apply before eval ESVN_BOOTSTRAP. 113# NOTE: patches will be applied before ESVN_BOOTSTRAP is processed.
95# 114#
96# the process of applying the patch is: 115# Patches are searched both in ${PWD} and ${FILESDIR}, if not found in either
97# 1. just epatch it, if the patch exists in the path. 116# location, the installation dies.
98# 2. scan it under FILESDIR and epatch it, if the patch exists in FILESDIR. 117ESVN_PATCHES="${ESVN_PATCHES:-}"
99# 3. die.
100#
101[ -z "${ESVN_PATCHES}" ] && ESVN_PATCHES=""
102 118
119# @ECLASS-VARIABLE: ESVN_RESTRICT
120# @DESCRIPTION:
121# this should be a space delimited list of subversion eclass features to
122# restrict.
123# export)
124# don't export the working copy to S.
125ESVN_RESTRICT="${ESVN_RESTRICT:-}"
103 126
104## -- subversion_svn_fetch() ------------------------------------------------- # 127# @ECLASS-VARIABLE: ESVN_OFFLINE
128# @DESCRIPTION:
129# Set this variable to a non-empty value to disable the automatic updating of
130# an svn source tree. This is intended to be set outside the subversion source
131# tree by users.
132ESVN_OFFLINE="${ESVN_OFFLINE:-${ESCM_OFFLINE}}"
105 133
134# @FUNCTION: subversion_fetch
135# @USAGE: [repo_uri] [destination]
136# @DESCRIPTION:
137# Wrapper function to fetch sources from subversion via svn checkout or svn update,
138# depending on whether there is an existing working copy in ${ESVN_STORE_DIR}.
139#
140# Can take two optional parameters:
141# repo_uri - a repository URI. default is ESVN_REPO_URI.
142# destination - a check out path in S.
106function subversion_svn_fetch() { 143subversion_fetch() {
144 local repo_uri="$(subversion__get_repository_uri "${1:-${ESVN_REPO_URI}}")"
145 local revision="$(subversion__get_peg_revision "${1:-${ESVN_REPO_URI}}")"
146 local S_dest="${2}"
107 147
108 local ESVN_CO_DIR 148 [[ -n "${ESVN_REVISION}" ]] && revision="${ESVN_REVISION}"
109 149
110 # ESVN_REPO_URI is empty.
111 [ -z "${ESVN_REPO_URI}" ] && die "${ESVN}: ESVN_REPO_URI is empty."
112
113 # check for the protocol. 150 # check for the protocol
114 case ${ESVN_REPO_URI%%:*} in 151 local protocol="${repo_uri%%:*}"
152
153 case "${protocol}" in
115 http|https) 154 http|https)
116 if built_with_use dev-util/subversion nowebdav; then 155 if built_with_use dev-util/subversion nowebdav; then
156 echo
117 eerror "In order to emerge this package, you need to" 157 eerror "In order to emerge this package, you need to"
118 eerror "re-emerge subversion with USE=-nowebdav" 158 eerror "re-emerge subversion with USE=-nowebdav"
159 echo
119 die "Please run 'USE=-nowebdav emerge subversion'" 160 die "${ESVN}: please run 'USE=-nowebdav emerge subversion'"
120 fi 161 fi
121 ;; 162 ;;
122 svn) ;; 163 svn|svn+ssh)
164 ;;
123 *) 165 *)
124 die "${ESVN}: fetch from "${ESVN_REPO_URI%:*}" is not yet implemented." 166 die "${ESVN}: fetch from '${protocol}' is not yet implemented."
125 ;; 167 ;;
126 esac 168 esac
127 169
170 addread "/etc/subversion"
171 addwrite "${ESVN_STORE_DIR}"
172
128 if [ ! -d "${ESVN_STORE_DIR}" ]; then 173 if [[ ! -d ${ESVN_STORE_DIR} ]]; then
129 debug-print "${FUNCNAME}: initial checkout. creating subversion directory" 174 debug-print "${FUNCNAME}: initial checkout. creating subversion directory"
130
131 addwrite /
132 mkdir -p "${ESVN_STORE_DIR}" || die "${ESVN}: can't mkdir ${ESVN_STORE_DIR}." 175 mkdir -p "${ESVN_STORE_DIR}" || die "${ESVN}: can't mkdir ${ESVN_STORE_DIR}."
133 chmod -f o+rw "${ESVN_STORE_DIR}" || die "${ESVN}: can't chmod ${ESVN_STORE_DIR}."
134 export SANDBOX_WRITE="${SANDBOX_WRITE%%:/}"
135 fi 176 fi
136 177
137 cd -P "${ESVN_STORE_DIR}" || die "${ESVN}: can't chdir to ${ESVN_STORE_DIR}" 178 cd "${ESVN_STORE_DIR}" || die "${ESVN}: can't chdir to ${ESVN_STORE_DIR}"
138 ESVN_STORE_DIR=${PWD}
139 179
140 # every time 180 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
141 addwrite "/etc/subversion"
142 addwrite "${ESVN_STORE_DIR}"
143
144 if ! has userpriv ${FEATURES}; then
145 # -userpriv
146 addwrite "/root/.subversion"
147
148 else
149 # +userpriv
150 ESVN_OPTIONS="${ESVN_OPTIONS} --config-dir ${ESVN_STORE_DIR}/.subversion" 181 local options="${ESVN_OPTIONS} --config-dir ${ESVN_STORE_DIR}/.subversion"
151 182
152 fi 183 [[ -n "${revision}" ]] && options="${options} -r ${revision}"
153 184
154 [ -z "${ESVN_REPO_URI##*/}" ] && ESVN_REPO_URI="${ESVN_REPO_URI%/}" 185 if [[ "${ESVN_OPTIONS}" = *-r* ]]; then
155 ESVN_CO_DIR="${ESVN_PROJECT}/${ESVN_REPO_URI##*/}" 186 ewarn "\${ESVN_OPTIONS} contains -r, this usage is unsupported. Please"
187 ewarn "see \${ESVN_REPO_URI}"
188 fi
156 189
190 debug-print "${FUNCNAME}: wc_path = \"${wc_path}\""
157 debug-print "${FUNCNAME}: ESVN_OPTIONS = \"${ESVN_OPTIONS}\"" 191 debug-print "${FUNCNAME}: ESVN_OPTIONS = \"${ESVN_OPTIONS}\""
192 debug-print "${FUNCNAME}: options = \"${options}\""
158 193
159 if [ ! -d "${ESVN_CO_DIR}/.svn" ]; then 194 if [[ ! -d ${wc_path}/.svn ]]; then
160 # first check out 195 # first check out
161 einfo "subversion check out start -->" 196 einfo "subversion check out start -->"
162 einfo " repository: ${ESVN_REPO_URI}" 197 einfo " repository: ${repo_uri}${revision:+@}${revision}"
163 198
199 debug-print "${FUNCNAME}: ${ESVN_FETCH_CMD} ${options} ${repo_uri}"
200
164 mkdir -p "${ESVN_PROJECT}" || die "${ESVN}: can't mkdir ${ESVN_PROJECT}." 201 mkdir -p "${ESVN_PROJECT}" || die "${ESVN}: can't mkdir ${ESVN_PROJECT}."
165 chmod -f o+rw "${ESVN_PROJECT}" || die "${ESVN}: can't chmod ${ESVN_PROJECT}." 202 cd "${ESVN_PROJECT}" || die "${ESVN}: can't chdir to ${ESVN_PROJECT}"
166 cd "${ESVN_PROJECT}" 203 ${ESVN_FETCH_CMD} ${options} "${repo_uri}" || die "${ESVN}: can't fetch from ${repo_uri}."
167 ${ESVN_FETCH_CMD} ${ESVN_OPTIONS} "${ESVN_REPO_URI}" || die "${ESVN}: can't fetch from ${ESVN_REPO_URI}."
168 204
205 elif [[ -n ${ESVN_OFFLINE} ]]; then
206 subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
207 if [[ -n ${ESVN_REVISION} && ${ESVN_REVISION} != ${ESVN_WC_REVISION} ]]; then
208 die "${ESVN}: You requested off-line updating and revision ${ESVN_REVISION} but only revision ${ESVN_WC_REVISION} is available locally."
209 fi
210 einfo "Fetching disabled: Using existing repository copy"
169 else 211 else
212 subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
213
214 if [[ ${ESVN_WC_URL} != $(subversion__get_repository_uri "${repo_uri}") ]]; then
215 einfo "suversion switch start -->"
216 einfo " old repository: ${ESVN_WC_URL}@${ESVN_WC_REVISION}"
217 einfo " new repository: ${repo_uri}${revision:+@}${revision}"
218
219 debug-print "${FUNCNAME}: ${ESVN_SWITCH_CMD} ${options} ${repo_uri}"
220
221 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
222 ${ESVN_SWITCH_CMD} ${options} ${repo_uri} || die "${ESVN}: can't update from ${repo_uri}"
223 else
170 # update working copy 224 # update working copy
171 einfo "subversion update start -->" 225 einfo "subversion update start -->"
172 einfo " repository: ${ESVN_REPO_URI}" 226 einfo " repository: ${repo_uri}${revision:+@}${revision}"
173 227
174 cd "${ESVN_CO_DIR}" 228 debug-print "${FUNCNAME}: ${ESVN_UPDATE_CMD} ${options}"
229
230 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
175 ${ESVN_UPDATE_CMD} ${ESVN_OPTIONS} || die "${ESVN}: can't update from ${ESVN_REPO_URI}." 231 ${ESVN_UPDATE_CMD} ${options} || die "${ESVN}: can't update from ${repo_uri}."
176
177 fi 232 fi
178 233
179 einfo " working copy: ${ESVN_STORE_DIR}/${ESVN_CO_DIR}" 234 fi
180 235
236 einfo " working copy: ${wc_path}"
237
238 if ! has "export" ${ESVN_RESTRICT}; then
239 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
240
241 local S="${S}/${S_dest}"
242
181 # export to the ${WORKDIR} 243 # export to the ${WORKDIR}
182 # "svn export" has a bug. see http://bugs.gentoo.org/119236 244 #* "svn export" has a bug. see http://bugs.gentoo.org/119236
183 #svn export "${ESVN_STORE_DIR}/${ESVN_CO_DIR}" "${S}" || die "${ESVN}: can't export to ${S}." 245 #* svn export . "${S}" || die "${ESVN}: can't export to ${S}."
184 rsync -a --exclude=".svn/" "${ESVN_STORE_DIR}/${ESVN_CO_DIR}/" "${S}" || die "${ESVN}: can't export to ${S}." 246 rsync -rlpgo --exclude=".svn/" . "${S}" || die "${ESVN}: can't export to ${S}."
247 fi
248
185 echo 249 echo
186
187} 250}
188 251
189 252# @FUNCTION: subversion_bootstrap
190## -- subversion_bootstrap() ------------------------------------------------ # 253# @DESCRIPTION:
191 254# Apply patches in ${ESVN_PATCHES} and run ${ESVN_BOOTSTRAP} if specified.
192function subversion_bootstrap() { 255subversion_bootstrap() {
193 256 if has "export" ${ESVN_RESTRICT}; then
194 local patch lpatch 257 return
258 fi
195 259
196 cd "${S}" 260 cd "${S}"
197 261
198 if [ "${ESVN_PATCHES}" ]; then 262 if [[ -n ${ESVN_PATCHES} ]]; then
199 einfo "apply patches -->" 263 einfo "apply patches -->"
200 264
265 local patch fpatch
266
201 for patch in ${ESVN_PATCHES}; do 267 for patch in ${ESVN_PATCHES}; do
202 if [ -f "${patch}" ]; then 268 if [[ -f ${patch} ]]; then
203 epatch ${patch} 269 epatch "${patch}"
204 270
205 else 271 else
206 for lpatch in ${FILESDIR}/${patch}; do 272 for fpatch in ${FILESDIR}/${patch}; do
207 if [ -f "${lpatch}" ]; then 273 if [[ -f ${fpatch} ]]; then
208 epatch ${lpatch} 274 epatch "${fpatch}"
209 275
210 else 276 else
211 die "${ESVN}; ${patch} is not found" 277 die "${ESVN}: ${patch} not found"
212 278
213 fi 279 fi
214 done 280 done
281
215 fi 282 fi
216 done 283 done
284
217 echo 285 echo
218 fi 286 fi
219 287
220 if [ "${ESVN_BOOTSTRAP}" ]; then 288 if [[ -n ${ESVN_BOOTSTRAP} ]]; then
221 einfo "begin bootstrap -->" 289 einfo "begin bootstrap -->"
222 290
223 if [ -f "${ESVN_BOOTSTRAP}" -a -x "${ESVN_BOOTSTRAP}" ]; then 291 if [[ -f ${ESVN_BOOTSTRAP} && -x ${ESVN_BOOTSTRAP} ]]; then
224 einfo " bootstrap with a file: ${ESVN_BOOTSTRAP}" 292 einfo " bootstrap with a file: ${ESVN_BOOTSTRAP}"
225 eval "./${ESVN_BOOTSTRAP}" || die "${ESVN}: can't execute ESVN_BOOTSTRAP." 293 eval "./${ESVN_BOOTSTRAP}" || die "${ESVN}: can't execute ESVN_BOOTSTRAP."
226 294
227 else 295 else
228 einfo " bootstrap with commands: ${ESVN_BOOTSTRAP}" 296 einfo " bootstrap with command: ${ESVN_BOOTSTRAP}"
229 eval "${ESVN_BOOTSTRAP}" || die "${ESVN}: can't eval ESVN_BOOTSTRAP." 297 eval "${ESVN_BOOTSTRAP}" || die "${ESVN}: can't eval ESVN_BOOTSTRAP."
230 298
231 fi 299 fi
232 fi 300 fi
233
234} 301}
235 302
236 303# @FUNCTION: subversion_src_unpack
237## -- subversion_src_unpack() ------------------------------------------------ # 304# @DESCRIPTION:
238 305# default src_unpack. fetch and bootstrap.
239function subversion_src_unpack() { 306subversion_src_unpack() {
240
241 subversion_svn_fetch || die "${ESVN}: unknown problem in subversion_svn_fetch()." 307 subversion_fetch || die "${ESVN}: unknown problem occurred in subversion_fetch."
242 subversion_bootstrap || die "${ESVN}: unknown problem in subversion_bootstrap()." 308 subversion_bootstrap || die "${ESVN}: unknown problem occurred in subversion_bootstrap."
243
244} 309}
310
311# @FUNCTION: subversion_wc_info
312# @USAGE: [repo_uri]
313# @RETURN: ESVN_WC_URL, ESVN_WC_ROOT, ESVN_WC_UUID, ESVN_WC_REVISION and ESVN_WC_PATH
314# @DESCRIPTION:
315# Get svn info for the specified repo_uri. The default repo_uri is ESVN_REPO_URI.
316#
317# The working copy information on the specified repository URI are set to
318# ESVN_WC_* variables.
319subversion_wc_info() {
320 local repo_uri="$(subversion__get_repository_uri "${1}")"
321 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
322
323 debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
324 debug-print "${FUNCNAME}: wc_path = ${wc_path}"
325
326 if [[ ! -d ${wc_path} ]]; then
327 return 1
328 fi
329
330 export ESVN_WC_URL="$(subversion__svn_info "${wc_path}" "URL")"
331 export ESVN_WC_ROOT="$(subversion__svn_info "${wc_path}" "Repository Root")"
332 export ESVN_WC_UUID="$(subversion__svn_info "${wc_path}" "Repository UUID")"
333 export ESVN_WC_REVISION="$(subversion__svn_info "${wc_path}" "Revision")"
334 export ESVN_WC_PATH="${wc_path}"
335}
336
337## -- Private Functions
338
339## -- subversion__svn_info() ------------------------------------------------- #
340#
341# param $1 - a target.
342# param $2 - a key name.
343#
344subversion__svn_info() {
345 local target="${1}"
346 local key="${2}"
347
348 env LC_ALL=C svn info "${target}" | grep -i "^${key}" | cut -d" " -f2-
349}
350
351## -- subversion__get_repository_uri() --------------------------------------- #
352#
353# param $1 - a repository URI.
354subversion__get_repository_uri() {
355 local repo_uri="${1}"
356
357 debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
358
359 if [[ -z ${repo_uri} ]]; then
360 die "${ESVN}: ESVN_REPO_URI (or specified URI) is empty."
361 fi
362
363 # delete trailing slash
364 if [[ -z ${repo_uri##*/} ]]; then
365 repo_uri="${repo_uri%/}"
366 fi
367
368 repo_uri="${repo_uri%@*}"
369
370 echo "${repo_uri}"
371}
372
373## -- subversion__get_wc_path() ---------------------------------------------- #
374#
375# param $1 - a repository URI.
376subversion__get_wc_path() {
377 local repo_uri="$(subversion__get_repository_uri "${1}")"
378
379 debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
380
381 echo "${ESVN_STORE_DIR}/${ESVN_PROJECT}/${repo_uri##*/}"
382}
383
384## -- subversion__get_peg_revision() ----------------------------------------- #
385#
386# param $1 - a repository URI.
387subversion__get_peg_revision() {
388 local repo_uri="${1}"
389
390 debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
391
392 # repo_uri has peg revision ?
393 if [[ ${repo_uri} != *@* ]]; then
394 debug-print "${FUNCNAME}: repo_uri does not have a peg revision."
395 fi
396
397 local peg_rev=
398 [[ ${repo_uri} = *@* ]] && peg_rev="${repo_uri##*@}"
399
400 debug-print "${FUNCNAME}: peg_rev = ${peg_rev}"
401
402 echo "${peg_rev}"
403}

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.49

  ViewVC Help
Powered by ViewVC 1.1.20