pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
mk/*-package.mk: test tagged checkouts
Module Name: pkgsrc-wip
Committed By: Roland Illig <rillig%NetBSD.org@localhost>
Pushed By: rillig
Date: Sat Mar 3 14:41:06 2018 +0000
Changeset: dde9452a9d4def1dfe15688689cc81a39e5cc802
Modified Files:
mk-scm-tests/Makefile
mk-scm-tests/files/test
mk/svn-package.mk
Log Message:
mk/*-package.mk: test tagged checkouts
Checking out a tag works the same for all SCMs except Subversion.
There, the tag is embedded in the repository URL. That case is currently
not tested.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=dde9452a9d4def1dfe15688689cc81a39e5cc802
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
mk-scm-tests/Makefile | 2 +-
mk-scm-tests/files/test | 85 ++++++++++++++++++++++++++++++++++++++-----------
mk/svn-package.mk | 6 ++--
3 files changed, 71 insertions(+), 22 deletions(-)
diffs:
diff --git a/mk-scm-tests/Makefile b/mk-scm-tests/Makefile
index 45ab191682..1076a8cf48 100644
--- a/mk-scm-tests/Makefile
+++ b/mk-scm-tests/Makefile
@@ -48,7 +48,7 @@ HG_REPO= ${.CURDIR}/tmp/repo/pkgbase
.endif
.if ${SCM_UNDER_TEST} == svn
-SVN_REPO= file://${.CURDIR}/tmp/repo/pkgbase
+SVN_REPO= file://${.CURDIR}/tmp/repo/pkgbase/trunk
.include "../../wip/mk/svn-package.mk"
.endif
diff --git a/mk-scm-tests/files/test b/mk-scm-tests/files/test
index c7d7e3cdcb..2633193dac 100644
--- a/mk-scm-tests/files/test
+++ b/mk-scm-tests/files/test
@@ -17,31 +17,35 @@ setup_cvs_repository() {
# CVS doesn't let the user fake the dates, therefore it was easier
# to just manipulate the internal repository representation.
cat <<EOF >"$repodir/pkgbase/today,v"
-head 1.2;
+head 1.3;
access;
-symbols;
+symbols
+ v2017:1.1;
locks; strict;
comment @# @;
-1.2
+1.3
date 2018.03.01.00.00.00; author rillig; state Exp;
branches;
+next 1.2;
+
+1.2
+date 2018.01.01.00.00.00; author rillig; state Exp;
+branches;
next 1.1;
-commitid b4clY6GJWjcPmVsA;
1.1
-date 2018.01.01.00.00.00; author rillig; state Exp;
+date 2017.01.01.00.00.00; author rillig; state Exp;
branches;
next ;
-commitid eFoplWznEAOOmVsA;
desc
@@
-1.2
+1.3
log
@today is 2018-03-01
@
@@ -50,7 +54,7 @@ text
@
-1.1
+1.2
log
@today is 2018-01-01
@
@@ -61,15 +65,31 @@ a1 1
@
+1.1
+log
+@today is 2017-01-01
+@
+text
+@d1 1
+a1 1
+2017-01-01
+@
+
+
EOF
}
setup_fossil_repository() {
mkdir -p "$repodir/pkgbase"
pushd "$repodir/pkgbase"
- fossil init --date-override "2018-01-01" pkgbase.fossil
+ fossil init --date-override "2017-01-01" pkgbase.fossil
fossil open "pkgbase.fossil"
+ echo "2017-01-01" > today
+ fossil add today
+ fossil commit -m "today is 2017-01-01" --date-override "2017-01-01" --hash -- today
+ fossil tag add --date-override "2017-01-01 00:00:01" v2017 tip
+
echo "2018-01-01" > today
fossil add today
fossil commit -m "today is 2018-01-01" --date-override "2018-01-01" --hash -- today
@@ -84,6 +104,12 @@ setup_git_repository() {
git init "$repodir/pkgbase"
pushd "$repodir/pkgbase"
+ echo "2017-01-01" > today
+ git add today
+ GIT_AUTHOR_DATE="2017-01-01T00:00:00Z" GIT_COMMITTER_DATE="2017-01-01T00:00:00Z" \
+ git commit -m "today is 2017-01-01" -- today
+ git tag v2017
+
echo "2018-01-01" > today
git add today
GIT_AUTHOR_DATE="2018-01-01T00:00:00Z" GIT_COMMITTER_DATE="2018-01-01T00:00:00Z" \
@@ -100,6 +126,11 @@ setup_hg_repository() {
hg init "$repodir/pkgbase"
pushd "$repodir/pkgbase"
+ echo "2017-01-01" > today
+ hg add today
+ hg commit -m "today is 2017-01-01" -d "2017-01-01T00:00:00Z" -u "user" -- today
+ hg tag -u "user" v2017
+
echo "2018-01-01" > today
hg add today
hg commit -m "today is 2018-01-01" -d "2018-01-01T00:00:00Z" -u "user" -- today
@@ -118,14 +149,23 @@ setup_svn_repository() {
chmod +x "$hook"
svn checkout "file://$repodir/pkgbase" "$basedir/svnwork"
pushd "$basedir/svnwork"
+ mkdir "trunk"
+ cd "trunk"
+
+ echo "2017-01-01" > today
+ svn add .
+ svn commit -m "today is 2017-01-01"
+ svn propset "svn:date" --revprop -r HEAD "2017-01-01T00:00:00.000000Z"
+
+ svn -m "v2017" --parents copy "file://$repodir/pkgbase/trunk" "file://$repodir/pkgbase/tags/v2017"
+ svn propset "svn:date" --revprop -r HEAD "2017-01-01T00:00:00.000001Z"
echo "2018-01-01" > today
- svn add today
- svn commit -m "today is 2018-01-01" -- today
+ svn commit -m "today is 2018-01-01"
svn propset "svn:date" --revprop -r HEAD "2018-01-01T00:00:00.000000Z"
echo "2018-03-01" > today
- svn commit -m "today is 2018-03-01" -- today
+ svn commit -m "today is 2018-03-01"
svn propset "svn:date" --revprop -r HEAD "2018-03-01T00:00:00.000000Z"
popd
@@ -148,14 +188,16 @@ assert_that() {
test_scm() { # usage: test_scm scm-name
case "$1" in
- (cvs) scm_display_name="CVS" ;;
- (fossil) scm_display_name="Fossil" ;;
- (git) scm_display_name="Git" ;;
- (hg) scm_display_name="Mercurial" ;;
- (svn) scm_display_name="Subversion" ;;
+ (cvs) scm_display_name="CVS" scm_tag_varname="CVS_TAG" ;;
+ (fossil) scm_display_name="Fossil" scm_tag_varname="FOSSIL_VERSION";;
+ (git) scm_display_name="Git" scm_tag_varname="GIT_TAG" ;;
+ (hg) scm_display_name="Mercurial" scm_tag_varname="HG_TAG" ;;
+ (svn) scm_display_name="Subversion" scm_tag_varname="" ;;
esac
# Sets up a repository in $repodir, with these commits:
+ # - at 2017-01-01TZ, the file "today" contains "2017-01-01".
+ # - this commit is tagged v2017.
# - at 2018-01-01TZ, the file "today" contains "2018-01-01".
# - at 2018-03-01TZ, the file "today" contains "2018-03-01".
#
@@ -176,9 +218,16 @@ test_scm() { # usage: test_scm scm-name
assert_that --file "$wrkdir/pkgbase/today" --has-content "2018-01-01"
- SCM_UNDER_TEST="$1" pkgsrc_make clean
+ if [ "$scm_tag_varname" ]; then
+ step "Testing $scm_display_name with tagged checkout"
+ SCM_UNDER_TEST="$1" pkgsrc_make clean
+ eval "SCM_UNDER_TEST=\"\$1\" $scm_tag_varname=\"v2017\" pkgsrc_make patch"
+
+ assert_that --file "$wrkdir/pkgbase/today" --has-content "2017-01-01"
+ fi
step "Dumping API variables for $scm_display_name (for manual inspection)"
+ SCM_UNDER_TEST="$1" pkgsrc_make clean
SCM_UNDER_TEST="$1" pkgsrc_make "show-all-$1"
}
diff --git a/mk/svn-package.mk b/mk/svn-package.mk
index 5e2c41fe8b..1460d3e6c5 100644
--- a/mk/svn-package.mk
+++ b/mk/svn-package.mk
@@ -86,7 +86,7 @@ _SVN_DISTDIR= ${DISTDIR}/svn-packages
.for repo in ${SVN_REPOSITORIES}
SVN_MODULE.${repo}?= ${repo}
. if defined(CHECKOUT_DATE)
-SVN_REVISION.${repo}?= {${CHECKOUT_DATE}}
+SVN_REVISION.${repo}?= {${CHECKOUT_DATE}T00:00:00Z}
. else
SVN_REVISION.${repo}?= HEAD
. endif
@@ -121,11 +121,11 @@ _SVN_CMD.install_certs.${repo}= \
# Check out the repository or update the cached one
_SVN_CMD.fetch_repo.${repo}= \
if [ ! -d "$$module" ]; then \
- ${STEP_MSG} "Checking out Subversion repository $$repo."; \
+ ${STEP_MSG} "Checking out revision $$revision from repository $$repo."; \
${_SVN_CMD} checkout -r "$$revision" ${SVN_CHECKOUT_FLAGS} \
"$$repo" "$$module"; \
else \
- ${STEP_MSG} "Updating Subversion repository $$repo."; \
+ ${STEP_MSG} "Updating to revision $$revision."; \
${_SVN_CMD} update -r "$$revision" ${SVN_CHECKOUT_FLAGS} "$$module"; \
fi
Home |
Main Index |
Thread Index |
Old Index