Module Name:    src
Committed By:   khorben
Date:           Mon Sep  4 02:21:17 UTC 2023

Modified Files:
        src: build.sh

Log Message:
build.sh: add support for git worktree

Git supports multiple working trees attached to the same repository,
with the git-worktree(1) subcommand.

When building from a Git working tree, the repository metadata in .git
from the top source directory is a file (containing the actual location
of the metadata) instead of the usual directory structure. With this
change, build.sh allows .git to be a directory or a regular file
instead, therefore letting the sources build as expected from a Git
working tree.

To test: (without this patch)

    src$ git worktree add ../src-clean-tree
    [...]
    src$ (cd ../src-clean-tree && ./build.sh tools)
    [...]
    ERROR: Cannot determine VCS for '.../src-clean-tree/'

XXX: pullup-10 pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.373 -r1.374 src/build.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/build.sh
diff -u src/build.sh:1.373 src/build.sh:1.374
--- src/build.sh:1.373	Tue Jul 18 16:59:57 2023
+++ src/build.sh	Mon Sep  4 02:21:17 2023
@@ -1,5 +1,5 @@
 #! /usr/bin/env sh
-#	$NetBSD: build.sh,v 1.373 2023/07/18 16:59:57 lukem Exp $
+#	$NetBSD: build.sh,v 1.374 2023/09/04 02:21:17 khorben Exp $
 #
 # Copyright (c) 2001-2023 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -2030,7 +2030,7 @@ createmakewrapper()
 	eval cat <<EOF ${makewrapout}
 #! ${HOST_SH}
 # Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from:  \$NetBSD: build.sh,v 1.373 2023/07/18 16:59:57 lukem Exp $
+# Generated from:  \$NetBSD: build.sh,v 1.374 2023/09/04 02:21:17 khorben Exp $
 # with these arguments: ${_args}
 #
 
@@ -2404,7 +2404,7 @@ setup_mkrepro()
 
 			t=$("${cvslatest}" ${cvslatestflags} "${d}")
 			vcs=cvs
-		elif [ -d "${d}.git" ]; then
+		elif [ -d "${d}.git" -o -f "${d}.git" ]; then
 			t=$(cd "${d}" && git log -1 --format=%ct)
 			vcs=git
 		elif [ -d "${d}.hg" ]; then

Reply via email to