bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible bug in 'cvs status'


From: Mark D. Baushke
Subject: Re: possible bug in 'cvs status'
Date: Wed, 04 Jan 2006 18:56:14 -0800

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Shanker,

address@hidden writes:

> We have a cvs server that doesn't do :pserver or :ext -- just plain
> vanilla directory name.
> Let us say the cvs repository is on host A.
> 
> To reproduce bug,
> 
> a. login to host A
> b. set CVSROOT to A.cisco.com:/usr/local/cvsroot
> c. set CVS_RSH to ssh
> d. cvs co -rMYTAG module-test
> e. cd module-test/test1/
> f. cvs status somefile
> 
> I don't see any Date in the output of cvs status.

Correct. This is working as expected. The code in src/status.c
explicitly checks to see if client/server mode is in operations (the
server_active variable will be non-zero when in client/server mode):

        if (!server_active && strlen (vers->ts_rcs) > 0)


> To fix bug,

It is not a bug, just a difference in operation between :local: and any
of the client/server modes (ie, :pserver:, :ext:, :fork:, :gserver:,
:kserver:).

> a. login to host A
> b. set CVSROOT to /usr/local/cvsroot
> c. set CVS_RSH to ssh
> d. cvs co -rMYTAG module-test
> e. cd module-test/test1/
> f. cvs status somefile.
> 
> Now you see the Date in the output.

Sure.

> The problem, I think is that cvs relies on the output of the date
> command to fill in the date in cvs status and when using ssh, if the
> PATH is not right, it can't find 'date'.

Nope. This is not at all related to the 'date' command on the server.

You get the same output if you set CVSROOT to :fork:/usr/local/cvsroot
which does not actually use the CVS_RSH to go to the remote host, but
instead just forks a 'cvs server' command for you.

In client/server mode, the server side does not have access to the
original file in the sandbox on the client to stat() and fill in the
vers->ts_rcs field. The only entry that is passed to the server is
the 'Entry /somefile./1.n///' you can check this using

set CVS_CLIENT_LOG to $HOME/cvs-tmp-log

then run 'cvs status somefile.' and look at the contents of the
$HOME/cvs-tmp-log.in and $HOME/cvs-tmp-log.out files.

        Enjoy!
        -- Mark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFDvIrOCg7APGsDnFERAjwFAKDJfKtLX+/s9ptiZHPm1gYSlIU2+gCeMlmk
vRO6osZN5gckeo4+BsvoJeA=
=g5uB
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]