Bug 26771

Summary: cvs checkout bug with existing val-tags and readonlyfs
Product: Base System Reporter: Dmitry Morozovsky <marck>
Component: gnuAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description Dmitry Morozovsky 2001-04-22 16:04:17 UTC
>Number:         26771
>Category:       gnu
>Synopsis:       cvs checkout bug with existing val-tags and readonlyfs
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 22 08:10:03 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Morozovsky <marck@rinet.ru>
>Release:        Various
>Organization:
Cronyx Plus LLC (RiNet ISP)
>Environment:
	cvs versions at least 1.10, 1.11

>Description:

When:

- repository is readonly, and
- there is CVSROOT/val-tags file, and
- you try to check out tree with valid tag, and
- this tag is not exist in CVSROOT/val-tags file

cvs exits with an error such as:

[checkout aborted]: cannot write /.../CVSROOT/val-tags: Read-only file system


>How-To-Repeat:

See description.


>Fix:

Just do not try to modify val-tags when readonlyfs is set:
                                                          
Index: src/contrib/cvs/src/tag.c
===================================================================
RCS file: /pub/FreeBSD/ncvs/src/contrib/cvs/src/tag.c,v
retrieving revision 1.1.1.6.2.1
diff -u -r1.1.1.6.2.1 tag.c
--- src/contrib/cvs/src/tag.c   2000/10/31 09:37:58     1.1.1.6.2.1
+++ src/contrib/cvs/src/tag.c   2001/04/22 14:15:48                     
@@ -868,7 +868,8 @@
        /* The tags is valid but not mentioned in val-tags.  Add it.  */
        datum value;

-       if (noexec)
+       /* Do not try to add tags if our repository is read-only */
+       if (noexec || readonlyfs)
        {
            if (db != NULL)
                dbm_close (db);


>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Comment 1 Dmitry Morozovsky 2001-04-22 16:10:03 UTC
When:

- repository is readonly, and
- there is CVSROOT/val-tags file, and
- you try to check out tree with valid tag, and
- this tag is not exist in CVSROOT/val-tags file

cvs exits with an error such as:

[checkout aborted]: cannot write /.../CVSROOT/val-tags: Read-only file system

Fix: Just do not try to modify val-tags when readonlyfs is set:
                                                          


-       if (noexec)
+       /* Do not try to add tags if our repository is read-only */
+       if (noexec || readonlyfs)
        {
            if (db != NULL)
                dbm_close (db);--GySbVGWf5issa6lXYEtDViQRBji2PT3Gfu4ub3RpgvlOPeud
Content-Type: text/plain; name="file.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file.diff"

Index: src/contrib/cvs/src/tag.c
===================================================================
RCS file: /pub/FreeBSD/ncvs/src/contrib/cvs/src/tag.c,v
retrieving revision 1.1.1.6.2.1
diff -u -r1.1.1.6.2.1 tag.c
--- src/contrib/cvs/src/tag.c   2000/10/31 09:37:58     1.1.1.6.2.1
+++ src/contrib/cvs/src/tag.c   2001/04/22 14:15:48                     
@@ -868,7 +868,8 @@
        /* The tags is valid but not mentioned in val-tags.  Add it.  */
        datum value;
How-To-Repeat: 
See description.
Comment 2 Dmitry Morozovsky 2001-04-22 16:54:08 UTC
Addition: the example of checkout sequence may be

mount -r /pub		<- directory with FreeBSD repository
cvs -R -d /pub/FreeBSD/ncvs checkout -P -r RELENG_4_3_0_RELEASE src

Sincerely,
D.Marck                                   [DM5020, DM268-RIPE, DM3-RIPN]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru ***
------------------------------------------------------------------------
Comment 3 Jeroen Ruigrok van der Werven freebsd_committer freebsd_triage 2001-07-31 17:32:37 UTC
State Changed
From-To: open->analyzed

This patch is present in cvs 1.11.1p1 from http://www.cvshome.org/ 

I am currently discussing importing the new version.
Comment 4 Jeroen Ruigrok van der Werven freebsd_committer freebsd_triage 2001-11-03 18:58:46 UTC
State Changed
From-To: analyzed->closed

Peter Wemm imported this version 1.11.1p1 in CURRENT and MFC'd it  
to STABLE.