* gcc_release (build_sources): If trying to apply a tag that
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Oct 2005 08:42:33 +0000 (08:42 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Oct 2005 08:42:33 +0000 (08:42 +0000)
already exists, issue an error message and exit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104854 138bc75d-0d04-0410-961f-82ee72b054a4

maintainer-scripts/ChangeLog
maintainer-scripts/gcc_release

index 24e51de..968e14a 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * gcc_release (build_sources): If trying to apply a tag that
+       already exists, issue an error message and exit.
+
 2005-09-30  Joseph S. Myers  <joseph@codesourcery.com>
 
        PR other/23693
index 0c60cdb..6458ce1 100755 (executable)
@@ -170,12 +170,19 @@ EOF
   EXPORTDATE=""
   if [ -n "${TAG}" ]; then
     inform "Tagging sources as ${TAG}"
-    # The -F option to CVS is intentionally not used below.  If you
-    # need to retry a release, you will have to manually remove any
-    # existing tag.
+    EXPORTTAG="-r${TAG}"
+    # Try to check out a file using ${TAG}.  If the command succeeds,
+    # then the sources have already been tagged.  We don't want to 
+    # overwrite an existing tag, so we don't want to use the "-F"
+    # option to "cvs rtag" below.  So, if the tag already exists,
+    # issue an error message; the release manager can manually remove
+    # the tag if appropriate.
+    if ${CVS} export -d "`basename ${SOURCE_DIRECTORY}`" \
+      "${EXPORTTAG}" gcc/ChangeLog; then
+      error "Tag ${TAG} already exists"
+    fi
     ${CVS} rtag -r ${CVSBRANCH} ${TAG} gcc || \
       error "Could not tag sources"
-    EXPORTTAG="-r${TAG}"
   else
     if [ ${CVSBRANCH} != "HEAD" ]; then
       EXPORTTAG="-r${CVSBRANCH}"