This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 41109 - Commands process no files when CVS folder does not exist in current folder.
Summary: Commands process no files when CVS folder does not exist in current folder.
Status: VERIFIED FIXED
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: CVS library (show other bugs)
Version: 3.x
Hardware: PC Windows ME/2000
: P2 blocker (vote)
Assignee: Martin Entlicher
URL:
Keywords: RELNOTE
Depends on:
Blocks:
 
Reported: 2004-03-18 13:34 UTC by andrevcf
Modified: 2007-01-04 17:14 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description andrevcf 2004-03-18 13:34:04 UTC
I found that, when I select a directory A 
(mounted with vcs-pcvs) and this directory has 
three children A.A, A.B and A.C, and I select the 
option Refresh Recursively, all the files in the 
repository (either the files in A.A, A.B and A.C) 
is listed in directory A, the files in A.A, A.B 
and A.C on my working directory becames Local. 
And then, when I'm in the same directory (A) 
listing all the files from A, A.A, A.B and A.C, 
and I select Refresh, the error file (the ones 
from A.A, A.B and A.c) are removed from A.
Comment 1 Martin Entlicher 2004-03-18 15:34:13 UTC
Moving to vcsgeneric module, where the PVCS profile is located.
Comment 2 Martin Entlicher 2004-03-19 16:46:30 UTC
Which build do you use? I can not reproduce this behavior.
Also, you use a project imported from NetBeans 3.5? If yes, are you
able to reproduce this bug with a newly mounted PVCS filesystem?
Comment 3 andrevcf 2004-03-19 18:30:47 UTC
I'm using 3.6 RC1 on window$ 2000. I didn't import a project from 
3.5.1
I think that the module of this issue is wrong, because I'm using CVS 
(pserver).
I reproduce the bug this way from scratch:
- mount a Version Control Filesystem.
- profile CVS
- CVS server type: pserver
- repository: /test
- add a directory A in root (/A)
- add a directory A in A (/A/A)
- add a directory B in A (/A/B)
- add a text file a.a in /A/A
- add a text file a.b in /A/B
- add a text file a in /A
- Add all the directories and file to CVS and commit them
- ok, all the files are in the correct path
- select the /A directory and click Refresh Recursively
- The files a (correct, /A/a), a.a (wrong, the correct path 
is /A/A/a.a), a.b (wrong, the correct path is /A/B/a.b) appears in 
the /A directory.
- select the /A directory and click Refresh
- The files a.a, a.b disappear from /A
Comment 4 Martin Entlicher 2004-03-21 03:14:15 UTC
Aha, you wrote "pcvs" and I've read it as "pvcs".
Changing the summary, will test the CVS profile...
Comment 5 Martin Entlicher 2004-03-21 03:57:28 UTC
Hmm, it works fine for me on Windows XP and NetBeans 3.6 RC1.
Can someone from QE please test this? Thanks.
Comment 6 Jiri Kovalsky 2004-03-22 07:52:04 UTC
Peter, can you please take a look at this one and try to reproduce it ?
Thanks, Jirka
Comment 7 Richard Gregor 2004-03-24 14:19:50 UTC
I'm unable to reproduce this as well.Scheduling for promoD for now.
Comment 8 andrevcf 2004-03-24 19:51:39 UTC
If you tell me the class (full name) and the line that is called when 
the user press Refresh Recursively, I can try to find the problem.
Thank's for the time.
Comment 9 Martin Entlicher 2004-03-26 09:55:02 UTC
Well, the code is not much straightforward. CVS implementation of
recursive refresh is in vcsgeneric/profiles/cvsprofiles module:
org.netbeans.modules.vcs.profiles.cvsprofiles.list.CvsListRecursiveCommand.
Method listRecursively() is called and it's supposed to build the
hierarchy of versioned files in filesByNameCont object. So either the
hierarchy is build in a wrong way, or the infrastructure that
translates these objects into files corrupts the hierarchy (vcscore
module, class org.netbeans.modules.vcscore.caching.VcsCache, method
readDirFinishedRecursive().
Comment 10 dmladek 2004-03-26 13:37:28 UTC
Hi guys,

It's happening (or at least it's easily reproductable by me and Peter)
using build-in client, thus changing summary.

Just mount a CVS-INT FS, have some [up-to-date] sources in it
and on its root perform Ref.Rec. All [up-to-date] files became [local]
At absolutely clear up every cmd.nbxxxx.cache file :-(

On CVS-EXT it seems it works fine.
Comment 11 Patrick Keegan 2004-04-01 17:31:19 UTC
proposed relnote:

After running Refresh Recursively on the root of a CVS filesystem
(using the IDE's built-in CVS client), the status of up-to-date files
is changed to Local.

Workaround: Run the Refresh Recursively command again to display the
current status.
Comment 12 Martin Entlicher 2004-04-02 12:51:17 UTC
Well, the problem is, that *every* Recursive Refresh on the root of
the filesystem with built-in client makes all files [Local]. This is a
bug in the javacvs library, the status command does nothing.

The workaround is either to use the command-line client, or run only
non-recursive Refresh on the root of the filesystem. Recursive Refresh
works good for all folders under the FS root, therefore all subfolders
can be selected and Recursive Refresh can be invoked on them.
Comment 13 Martin Entlicher 2004-04-02 12:53:15 UTC
Changing subcomponent to "library". The status command does not work
correctly when there is no CVS sub-directory in the current working
directory.
Comment 14 Patrick Keegan 2004-04-02 13:56:05 UTC
reworked proposed workaround:

Workarounds: To workaround the problem, do one of the following:

* Remount the CVS filesystem using the IDE's command-line support
instead of the built-in client support.
* Refresh the root of the CVS filesystem with the Refresh command. You
can use the Refresh Recursively command on the filesystem's subnodes.
Comment 15 Jiri Kovalsky 2004-04-02 14:39:43 UTC
Sounds pretty good to me. Thanks Patrick.
Comment 16 Martin Entlicher 2004-04-19 10:27:27 UTC
The problem can be reproduced only when the CVS/ folder does not exist
in the FS root.
Comment 17 Martin Entlicher 2004-04-19 10:32:04 UTC
It's not only about status, but also log, update and probably bunch of
other commands.

I'm changing the summary to better describe the problem. The
non-functioning rec. refresh is one of the consequences of this problem.
Comment 18 Martin Entlicher 2004-04-19 11:17:29 UTC
The problem is fixed in trunk. All subdirectories that have CVS
subfolders are processed:

/cvs/javacvs/libsrc/org/netbeans/lib/cvsclient/command/BasicCommand.java,v
 <--  BasicCommand.java
new revision: 1.50; previous revision: 1.49
Comment 19 Peter Pis 2005-07-26 17:26:40 UTC
Verified.