Package: cvs
Version: 1:1.12.13-8
Severity: normal

I've hit this problem on production CVS server,
when tagging (cvs tag XXX a b c/ d/) a part of
distribution of some proprietary s/w for release.
One directory was not tagged and hence didn't
get into the export (cvs export -r XXX some_sw).

I've set up a cvsd environment on my WS to
reproduce the problem. Here is the file/dir
layout of working directory:
> [EMAIL PROTECTED]:/tmp/t$ find . | grep -v CVS | xargs ls -ld
> drwxr-xr-x 6 xrgtn xrgtn 48 2007-04-27 11:02 .
> drwxr-xr-x 3 xrgtn xrgtn 24 2007-04-27 11:02 ./d1
> -rw-r--r-- 1 xrgtn xrgtn  0 2007-04-27 10:27 ./d1/f1
> drwxr-xr-x 4 xrgtn xrgtn 32 2007-04-27 11:02 ./D2
> drwxr-xr-x 3 xrgtn xrgtn 24 2007-04-27 11:02 ./D2/d3
> -rw-r--r-- 1 xrgtn xrgtn  0 2007-04-27 10:27 ./D2/d3/f3
> -rw-r--r-- 1 xrgtn xrgtn  0 2007-04-27 10:27 ./D2/f2
> drwxr-xr-x 3 xrgtn xrgtn 24 2007-04-27 11:02 ./d4
> -rw-r--r-- 1 xrgtn xrgtn  0 2007-04-27 10:27 ./d4/f4
> -rw-r--r-- 1 xrgtn xrgtn  0 2007-04-27 10:27 ./f0

You can see 1st-level _shallow_ directories
d1 and d4 plus 1st-level _deep_ directory D2.

`cvs tag XXX` works OK when no other arguments
except tag name are given on commandline, but
when I want to tag specific directories and
files, `cvs tag XXX ...` mysteriously
skips directories followed by slash:
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX d1/ d4 f0 ; cvs -Q tag -d XXX
> T f0
> T d4/f4
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX d1 d4/ f0 ; cvs -Q tag -d XXX
> T f0
> T d1/f1
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX f0 d1/ d4/ ; cvs -Q tag -d XXX
> T f0

If a directory name on cmdline is not followed
by slash, it's tagged OK:
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX f0 d1 d4 ; cvs -Q tag -d XXX
> T f0
> T d1/f1
> T d4/f4

Also, if a directory name is alone on a cmdline
(after tag name), it's tagged OK regardless of
the trailing slash:
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX d1/ ; cvs -Q tag -d XXX
> T d1/f1

Moreover, only _shallow_ directories are prone
to be skipped, looks like _deep_ ones (i.e.
those having subdirectories inside them) are
tagged OK regardless of the trailing slash:
> [EMAIL PROTECTED]:/tmp/t$ cvs -q tag XXX f0 d1/ D2/ d4/ ; cvs -Q tag -d XXX
> T f0
> T D2/f2
> T D2/d3/f3

Because directories are skipped _silently_, i.e.
without giving any error message, the bug can
easily lead to producing broken releases if
tagging part of working directory.

-- System Information:
Debian Release: 4.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-grsec
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages cvs depends on:
ii  debconf [debconf-2.0]       1.5.11       Debian configuration management sy
ii  libc6                       2.3.6.ds1-10 GNU C Library: Shared libraries
ii  libpam-runtime              0.79-4       Runtime support for the PAM librar
ii  libpam0g                    0.79-4       Pluggable Authentication Modules l
ii  update-inetd                4.27-0.2     inetd.conf updater
ii  zlib1g                      1:1.2.3-13   compression library - runtime

Versions of packages cvs recommends:
ii  emacs21 [info-browser] 21.4a+1-3         The GNU Emacs editor
ii  info [info-browser]    4.8.dfsg.1-4      Standalone GNU Info documentation 
ii  konqueror [info-browse 4:3.5.5a.dfsg.1-6 KDE's advanced file manager, web b
ii  netbase                4.29              Basic TCP/IP networking system

-- debconf information:
  cvs/rotatekeep: 7
  cvs/badrepositories: create
  cvs/rotatekeep_nondefault: no
  cvs/rotate_individual: true
  cvs/pserver_repos_individual: true
  cvs/pserver_setspawnlimit: false
  cvs/rotatekeep_individual: 7
  cvs/pserver_repos: all
* cvs/pserver: false
* cvs/repositories: /var/lib/cvs
  cvs/pserver_spawnlimit: 400
  cvs/rotatehistory: no


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to