bug-cvs
[Top][All Lists]
Advanced

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

cvs dotdot problem


From: David Taylor
Subject: cvs dotdot problem
Date: Thu, 24 Mar 2011 16:05:04 -0400

Based on there being no messages in the mailing list archive for
cvs-dev, I'm guessing it is dead.  This seems like the next best list
since it does concern a cvs bug.

The following occurs with both cvs 1.12.13 and the cvs trunk.

Suppose I have a repository with the following:

    test-dir
        dir-one
            file-a
            file-b
        dir-two
            file-c

If I check it out (using pserver), cd into dir-two, and do:

    cvs status ../dir-one/file-a file-c

I'll get an error.

Turning on logging and looking at the .in file, I see:

    Root /home/cvs/dotdot-testing
    Valid-responses ok error Valid-requests Force-gzip Referrer Redirect 
Checked-in New-entry Checksum Copy-file Updated Created Update-existing Merged 
Patched Rcs-diff Mode Mod-time Removed Remove-entry Set-static-directory 
Clear-static-directory Set-sticky Clear-sticky Edit-file Template 
Clear-template Notified Module-expansion Wrapper-rcsOption M Mbinary E F MT
    valid-requests
    UseUnchanged
    Global_option -q
    Command-prep status
    Argument --
    Max-dotdot 1
    Directory ../dir-one
    test-dir/dir-one
    Entry /file-a/1.1.1.1//-ko/
    Unchanged file-a
    Directory .
    test-dir/dir-two
    Entry /file-c/1.1.1.1//-ko/
    Unchanged file-c
    Directory .

    Argument ../dir-one/file-a
    Argument file-c
    status

The line after the final (3rd) Directory is wrong.

If I replace it with test-dir/dir-two it works; if I delete both it and
the immediately preceding 'Directory .' line, it works.

These two lines are generated by a call to send_repository at the bottom
of the function send_files (in client.c).

To the extent that I understand toplevel_repos, it has the wrong value;
but, I'm guessing what it is supposed to be based on how it is used; the
comments don't really describe it, so my understanding is imperfect.
Additionally, I don't understand the purpose of the final call to
send_repository.

BTW, the send_repository line dates back to the import of cvs into the
current cvs repository on savannah in 1994.

Thanks.

David
--
David Taylor
dtaylor@emc.com



reply via email to

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