env PATH=$oldpath
rm .bzr
-# If there is an empty repository in a parent directory, only "uncommitted" is tagged.
+# If there is an empty repository in a parent directory, only "modified" is tagged.
exec bzr init
cd a
go install
go version -m $GOBIN/a$GOEXE
-! stdout bzrrevision
-! stdout bzrcommittime
-stdout '^\tbuild\tbzruncommitted\ttrue$'
+stdout '^\tbuild\tvcs=bzr$'
+! stdout vcs.revision
+! stdout vcs.time
+stdout '^\tbuild\tvcs.modified=true$'
cd ..
# Revision and commit time are tagged for repositories with commits.
cd a
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tbzrrevision\t'
-stdout '^\tbuild\tbzrcommittime\t'
-stdout '^\tbuild\tbzruncommitted\tfalse$'
+stdout '^\tbuild\tvcs=bzr$'
+stdout '^\tbuild\tvcs.revision='
+stdout '^\tbuild\tvcs.time='
+stdout '^\tbuild\tvcs.modified=false$'
rm $GOBIN/a$GOEXE
# Building an earlier commit should still build clean.
exec bzr update -r1
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tbzrrevision\t'
-stdout '^\tbuild\tbzrcommittime\t'
-stdout '^\tbuild\tbzruncommitted\tfalse$'
+stdout '^\tbuild\tvcs=bzr$'
+stdout '^\tbuild\tvcs.revision='
+stdout '^\tbuild\tvcs.time='
+stdout '^\tbuild\tvcs.modified=false$'
# Building with -buildvcs=false suppresses the info.
go install -buildvcs=false
go version -m $GOBIN/a$GOEXE
-! stdout bzrrevision
+! stdout vcs.revision
rm $GOBIN/a$GOEXE
-# An untracked file is shown as uncommitted, even if it isn't part of the build.
+# An untracked file is shown as modified, even if it isn't part of the build.
cp ../../outside/empty.txt .
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tbzruncommitted\ttrue$'
+stdout '^\tbuild\tvcs.modified=true$'
rm empty.txt
rm $GOBIN/a$GOEXE
-# An edited file is shown as uncommitted, even if it isn't part of the build.
+# An edited file is shown as modified, even if it isn't part of the build.
cp ../../outside/empty.txt ../README
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tbzruncommitted\ttrue$'
+stdout '^\tbuild\tvcs.modified=true$'
exec bzr revert ../README
rm $GOBIN/a$GOEXE
# If there's no local repository, there's no VCS info.
go install
go version -m $GOBIN/a$GOEXE
-! stdout fossilrevision
+! stdout vcs.revision
rm $GOBIN/a$GOEXE
# If there is a repository, but it can't be used for some reason,
cd a
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tfossilrevision\t'
-stdout '^\tbuild\tfossilcommittime\t'
-stdout '^\tbuild\tfossiluncommitted\tfalse$'
+stdout '^\tbuild\tvcs=fossil\n'
+stdout '^\tbuild\tvcs.revision='
+stdout '^\tbuild\tvcs.time='
+stdout '^\tbuild\tvcs.modified=false$'
rm $GOBIN/a$GOEXE
# Building with -buildvcs=false suppresses the info.
go install -buildvcs=false
go version -m $GOBIN/a$GOEXE
-! stdout fossilrevision
+! stdout vcs.revision
rm $GOBIN/a$GOEXE
-# An untracked file is shown as uncommitted, even if it isn't part of the build.
+# An untracked file is shown as modified, even if it isn't part of the build.
cp ../../outside/empty.txt .
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tfossiluncommitted\ttrue$'
+stdout '^\tbuild\tvcs=fossil\n'
+stdout '^\tbuild\tvcs.modified=true$'
rm empty.txt
rm $GOBIN/a$GOEXE
-# An edited file is shown as uncommitted, even if it isn't part of the build.
+# An edited file is shown as modified, even if it isn't part of the build.
cp ../../outside/empty.txt ../README
go install
go version -m $GOBIN/a$GOEXE
-stdout '^\tbuild\tfossiluncommitted\ttrue$'
+stdout '^\tbuild\tvcs=fossil\n'
+stdout '^\tbuild\tvcs.modified=true$'
exec fossil revert ../README
rm $GOBIN/a$GOEXE