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 230828

Summary: Handle tree conflicts more gracefully
Product: versioncontrol Reporter: Sean_Cronin
Component: CVSAssignee: Ondrej Vrabec <ovrabec>
Status: REOPENED ---    
Severity: normal    
Priority: P3    
Version: 7.3   
Hardware: PC   
OS: Windows 7   
Issue Type: ENHANCEMENT Exception Reporter:
Attachments: Screenshots showing Netbeans 7.3 CVS integration problems
Screenshots for netbeans integration problems - version 2
Messages.log for Netbeans 7.3
Example java class that had conflicts that could not be resolved.
new messages log
cvs log 1
cvs log out

Description Sean_Cronin 2013-06-06 08:32:46 UTC
Created attachment 135428 [details]
Screenshots showing Netbeans 7.3 CVS integration problems

I am having some problems using the CVS plugin with Netbeans 7.3 (build 201302132200). The OS is Windows 7 version 6.1 (32 bit). The CVS plugin version is 1.25.1.42.1 

Short description of problem: Netbeans gives me local conflicts on files that seem identical to that in the repository. The conflict resolver cannot be used to resolve these conflicts. 

Long description: 
 1) CVS created local conflicts when CVS update selected. 
 2) When I try and resolve these conflicts using the conflict resolver (right click on a filename listed above) the “resolve conflicts” option is greyed out. 
 3) In the projects navigation panel, those which have conflicts are highlighted in blue. 
 4) But when I right click on a file, select cvs > diff, the IDE displays a new window displaying the message “no local changes”. The file that the diff was performed on now turns from blue to black in the projects navigation panel. 
 5) The same happens if I right click, then CVS > update. 
 6) I also checked out an affected file in a separate CVS repository using TortoiseCVS and did a text file comparison. There were no differences between the version in my NetBeans project and the version from the repository (including encoding). 
 7) Following a suggestion on the forum, I emptied the CVS cache under C:\Users\<username>\AppData\Local\NetBeans\Cache\7.3\. This has the effect of removing all the conflicts. But when I right click on the project root folder and select update, the conflicts return.
 7) I can work around this problem by committing and updating files individually, but we are aiming to implement Continuous Integration. Ideally I want to right click on the project and update on one transaction (and similarly commit in another transaction) so I don't break builds due to partial commits.

Apologies if this isn't a bug and is some kind of user error :-)

Screenshots attached.  

Sean.
Comment 1 Ondrej Vrabec 2013-06-06 10:51:30 UTC
Have you tried a complete fresh checkout? I do not know exactly how CVS works but maybe there is something like a tree conflict - file was removed and then added in the repository again.
Comment 2 Ondrej Vrabec 2013-06-06 10:56:00 UTC
btw, what happens when you do the update with commandline client (or TortoiseCVS)?
Comment 3 Ondrej Vrabec 2013-06-06 11:58:13 UTC
y

yo

you

you

you s

you sh

you sho

you shou

you shoul

you should

you should

you should a

you should al

you should als

you should also

i

if

if

if n

if ne

if nei

if neit

if neith

if neithe

if neither

if neither

if neither f

if neither fr

if neither fre

if neither fres

if neither fresh

if neither fresh

if neither fresh c

if neither fresh ch

if neither fresh che

if neither fresh chec

if neither fresh check

if neither fresh checko

if neither fresh checkou

if neither fresh checkout

if neither fresh checkout

if neither fresh checkout w

if neither fresh checkout wo

if neither fresh checkout wor

if neither fresh checkout work

if neither fresh checkout works

if neither fresh checkout works,

if neither fresh checkout works,

if neither fresh checkout works, a

if neither fresh checkout works, at

if neither fresh checkout works, att

if neither fresh checkout works, atta

if neither fresh checkout works, attac

if neither fresh checkout works, attach

if neither fresh checkout works, attach:

if neither fresh checkout works, attach:

if neither fresh checkout works, attach:
1

if neither fresh checkout works, attach:
1)

if neither fresh checkout works, attach:
1)

if neither fresh checkout works, attach:
1) m

if neither fresh checkout works, attach:
1) me

if neither fresh checkout works, attach:
1) mes

if neither fresh checkout works, attach:
1) mess

if neither fresh checkout works, attach:
1) messa

if neither fresh checkout works, attach:
1) messag

if neither fresh checkout works, attach:
1) message

if neither fresh checkout works, attach:
1) messages

if neither fresh checkout works, attach:
1) messagesl

if neither fresh checkout works, attach:
1) messageslo

if neither fresh checkout works, attach:
1) messageslog

if neither fresh checkout works, attach:
1) messageslog:

if neither fresh checkout works, attach:
1) messageslog:

if neither fresh checkout works, attach:
1) messages.log:

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) c

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) co

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) con

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) cont

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) conte

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) conten

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content o

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of o

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of ou

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of out

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of outp

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of outpu

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output w

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output wi

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output win

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output wind

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output windo

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window c

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window cr

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window cre

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window crea

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window creat

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window create

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created d

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created du

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created dur

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created duri

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created durin

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during t

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during th

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the u

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the up

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the upd

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the upda

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the updat

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update c

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update co

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update com

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update comm

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update comma

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update comman

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command:

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command:

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: W

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Wi

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Win

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Wind

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Windo

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window ->

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window ->

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> O

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Ou

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Out

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Outp

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Outpu

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (a

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (an

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and t

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and th

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the t

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the ta

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab r

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab re

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab rel

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab rele

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relev

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab releva

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevan

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant t

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to y

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to yo

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to you

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your r

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your re

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your rep

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your repo

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your repos

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your reposi

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your reposit

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your reposito

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your repositor

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your repository

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your repository)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your Crepository)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your CVrepository)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your CVSrepository)

if neither fresh checkout works, attach:
1) messages.log: http://wiki.netbeans.org/FaqLogMessagesFile
2) content of output window created during the update command: Window -> Output (and the tab relevant to your CVS repository)
Comment 4 Ondrej Vrabec 2013-06-06 11:59:43 UTC
hmm, nice comment
Comment 5 Sean_Cronin 2013-06-06 13:11:17 UTC
Thanks everyone, I deleted the project and did a fresh checkout and now things are working fine. Hopefully we don't have to do this too often in the future. I guess this means it can be closed?

Has someone spilt something on that keyboard, or did someone fall asleep on the keyboard :-)

Sean.
Comment 6 Ondrej Vrabec 2013-06-06 14:04:39 UTC
(In reply to comment #5)
> Has someone spilt something on that keyboard, or did someone fall asleep on the
> keyboard :-)
Yeah, i won the contest for the longest comment :-).
I am closing this now, please reopen if it happens again.
Comment 7 Sean_Cronin 2013-06-13 09:35:17 UTC
Created attachment 135743 [details]
Screenshots for netbeans integration problems - version 2
Comment 8 Sean_Cronin 2013-06-13 09:36:49 UTC
Unfortunately the problem has returned.

I've attached the messages logs this time.

Screenshots attached of the steps I took which were:

1) Opened Netbeans 7.3

2) Right clicked on project "Common HTML Builder Project" then CVS > Update

3) Error messages appeared (see new attachment).

4) 4 Conflicts are listed in the 'Versioning Output CVS Update' window
(see attachment)

5) When I right click on the first one (UserPageData) the option "Open" is not greyed out but "Resolve Conflicts" is greyed out. UserPageData is a class I had edited prior to the update. 

6) Of the 3 other classes listed as conflicts, I can only use the conflict resolver for CalendarBoxBrowserImpl.

(In the explorer panel the classes that aren't resolvable are listed in blue, the class that is resolvable using the conflict resolver is listed in red (see attached).
Comment 9 Sean_Cronin 2013-06-13 09:37:51 UTC
Created attachment 135744 [details]
Messages.log for Netbeans 7.3
Comment 10 Sean_Cronin 2013-06-14 08:36:36 UTC
Created attachment 135793 [details]
Example java class that had conflicts that could not be resolved.
Comment 11 Sean_Cronin 2013-06-14 08:36:50 UTC
I have some more information to add to this bug.

For the class mentioned (UserPageData.java) I right clicked on the class, then selected CVS > Diff. The ide said there were no differences. I then took a physical copy of the class and put it in a text file. I then selected CVS > Revert Modifications. The version retrieved from the repository was clearly different to the version in the browser (that had been overwritten). I've attached a file showing the two versions of UserPageData.java (look for Collections.unmodifiableMap ( ) in the new/overwritten version).
Comment 12 Sean_Cronin 2013-06-14 08:44:48 UTC
Sorry for the drip feeding. One final bit of info. The version of CVS we're using is 1.12.13
Comment 13 Ondrej Vrabec 2013-06-17 09:34:11 UTC
Have you tried updating with commandline client (or another Windows graphical CVS UI)? Does it mark the files as conflicts? What does it say about files already marked by NetBeans?
Comment 14 Sean_Cronin 2013-06-17 09:37:32 UTC
I tried updating with TortoiseCVS. The ones I mentioned earlier in the bug report that were identical to the repository (but listed as a conflict in Netbeans CVS) were identified as no update/identical by TortoiseCVS.
Comment 15 Ondrej Vrabec 2013-06-17 09:38:15 UTC
And also please attach the output from the Update command (from Window -> Output), it should say something as:
> IDE:-------------------------------------------------
> IDE: [6/17/13 11:35 AM] Updating "NewClass.java" started
> RCS file: /home/ondra/NetBeansProjects/cvs/repository/JavaApplication3/src/newpackage1/NewClass.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> Merging differences between 1.1 and 1.2 into NewClass.java
> rcsmerge: warning: conflicts during merge
> cvs update: conflicts found in NewClass.java
> C NewClass.java
> IDE: [6/17/13 11:35 AM] Updating "NewClass.java" finished
Comment 16 Ondrej Vrabec 2013-06-17 09:40:37 UTC
> were identified as no update/identical by TortoiseCVS
But there should be a modification, at least you said there was:
> The version retrieved from the repository was clearly different to the version in the browser (that had been overwritten
Comment 17 Sean_Cronin 2013-06-17 09:46:20 UTC
Sorry, but I don't have the output from the update command, I've now deleted the project and checked out a fresh project (so I can continue development) so can't repeat.

Just to clarify on this bug. The first time this problem appeared (files listed as conflicting, but the conflict resolver greyed out), the two files were identical, but the second time this happened the two files were different (but I couldn't resolve the conflict/ manage the differences because the conflict resolver was greyed out). I guess whether or not there really is a difference/conflict may not be the issue?
Comment 18 Ondrej Vrabec 2013-06-17 09:54:05 UTC
(In reply to comment #17)
> Sorry, but I don't have the output from the update command, I've now deleted
> the project and checked out a fresh project (so I can continue development) so
> can't repeat.
I already asked for it in Comment #3 (item 2) but i guess you missed that since the comment is confusing and looks invalid. Please attach the output once it happens again. I cannot reproduce myself, i need to debug it further. When it happens again, i suggest you do not delete the project but checkout a fresh one somewhere else so we can work on the corrupted one later and find the cause for this.
Comment 19 Sean_Cronin 2013-06-17 09:55:49 UTC
Ok. Will do. Thanks for your help.
Comment 20 Ondrej Vrabec 2013-06-17 10:08:09 UTC
Enabling some logging would also be helpful:
1) Run the IDE with  -J-DcvsClientLog=C:\Temp\CVSLOG (add this option to etc\netbeans.conf - netbeans_default_options)
2) NetBeans will log all CVS communication into C:\Temp\CVSLOG.in and C:\Temp\CVSLOG.out.
3) When this happens again, attach the two files
Comment 21 Sean_Cronin 2013-06-17 10:29:52 UTC
OK, logging is now on.
Comment 22 Sean_Cronin 2013-06-25 09:58:15 UTC
This problem has only reappeared once in the last few weeks. Since the previous discussion I have changed from a dynamic IP address to a static IP address. This may have addressed the issue.

The one time may be "user error" but I think the IDE could give a better message?

Here is the scenario.

Two developers.

Developer 1 and 2 synchronize code with repository.

Developer 1 edits class A.

Developer 2 renames and edits class A. (effectively deleting A from CVS and creating new class B).

Developer 2 commits changes.

Developer 1 calls CVS > update. Class A is listed as a conflict, but the conflict resolver is greyed out.

In this case Developer 1 sits next to Developer 2 and talks about class A. Developer 2 tells developer 1 he's renamed it so developer 1 deletes the class from his workspace. All is well.

However with bigger teams this will present problems. Developers will need to check that the file has been deleted by viewing the repository using a separate tool. It seems risky to assume that conflict resolver greyed out = a class that has been deleted, particularly as the conflict resolver gets greyed out (correctly) after the conflict has actually been resolved. A less careful developer could easily delete a class that he/she shouldn't.

Could the IDE display a different message in this case (eg "class deleted in repository")? Or should it and I've missed something in the IDE?
Comment 23 Ondrej Vrabec 2013-06-25 10:12:50 UTC
Your problem is called a tree conflict, i thought it could be the case (Comment #1).
> Could the IDE display a different message in this case (eg "class deleted in
> repository")? Or should it and I've missed something in the IDE?
The IDE could be more clever and at least give some hint about tree conflicts, yes.
Comment 24 Sean_Cronin 2013-06-25 10:41:41 UTC
OK, thanks. I'll discuss with my tech lead about the best way to handle this. 

Actually it makes sense that this problem occurred a lot a few weeks ago as it was early in the project and we were doing a lot of refactoring.

Is this problem to be fixed in a future version of Netbeans? It would help us decide whether or not to stay with Netbeans or investigate the competition :-)

Another option, apart from a special message for tree conflicts is to change the way a (normal) resolved file is displayed in the IDE. The main risk I see is that someone synchs, finds 5 conflicts but only 1 is a tree conflict. They resolve the 4 normal ones using the conflict resolver, then go off for coffee/go home etc. They come back and find all 5 greyed out. Which one have they resolved and which one is a tree conflict? Which one should they delete? If there was a flag/marker for "resolved in IDE" then the developer could distinguish between the two cases.
Comment 25 Ondrej Vrabec 2013-06-25 10:57:36 UTC
> Is this problem to be fixed in a future version of Netbeans? It would help us
> decide whether or not to stay with Netbeans or investigate the competition :-)
I am afraid this won't be fixed in a near future, we currently have no plans to add new features to CVS or enhance its support. The CVS module is in the maintenance mode and we concentrate our efforts mainly on other newer and i'd say more prosperous versioning modules (Subversion, Git or Mercurial).
I don't know if you have the option but i suggest you switch to a newer SCM if possible.
Comment 26 Sean_Cronin 2013-06-25 15:46:37 UTC
Thanks for being honest about this, that's very helpful. It's early days here so it's not too late to move out of CVS and into one of the 3 systems you mentioned. I'm going to google the plus and minus points of each one.

Out of interest, what tool does the Netbeans project itself use?
Comment 27 Ondrej Vrabec 2013-06-25 15:58:43 UTC
(In reply to comment #26)
> Out of interest, what tool does the Netbeans project itself use?
We use Mercurial to track NB sources
Comment 28 Sean_Cronin 2013-06-27 10:23:04 UTC
Hi Ondrej,

there is one other problem that is quite clear. Is this a tree conflict as well.

Here is the scenario.

1) User right clicks at project level and does CVS > update. All is well and all files are synched.
2) User creates a new package and creates one or more classes/interfaces etc within that package.
3) User right clicks at the project level, does CVS > update (no new changes), then does CVS > commit.
4) User sees the following message

"<Path to new directory>\Entries (The system cannot find the file specified)"

At this stage, there is a file called Entries in this location, but it is empty.

5) User clicks OK

6) User sees new error message "CVS command failed with the following error. cvs commit: nothing known about '<new package>/<new class>'
cvs commit aborted: correct above errors first!

I find that commit is possible if I right click then choose CVS commit on the new package. However when we implement continuous integration I will want to commit the entire project, including a mixture of new packages/new classes and updated existing classes. 

I've got logs and diagrams if you need them.

Thanks,

Sean.
Comment 29 Ondrej Vrabec 2013-06-27 10:59:30 UTC
it's probably not a tree conflict if the package and everything inside it was created by one single user. Attach the messages.log and let me see the error
Comment 30 Sean_Cronin 2013-06-27 11:21:51 UTC
Created attachment 136399 [details]
new messages log
Comment 31 Sean_Cronin 2013-06-27 11:22:09 UTC
Created attachment 136400 [details]
cvs log 1
Comment 32 Sean_Cronin 2013-06-27 11:22:36 UTC
Created attachment 136401 [details]
cvs log out
Comment 33 Sean_Cronin 2013-06-27 11:24:35 UTC
Steps used to create these logs:

1. Shut down netbeans to create clean logs
2. Opened netbeans.
3. Created new package.
4. Created new class and new interface inside new package.
5. CVS > Commit at project level (got error message).
6. CVS > Commit at package level (no message, commit successful).
Comment 34 Sean_Cronin 2013-07-01 16:12:54 UTC
Hi Ondrej,

any news on the "not a tree error" bug? I guess that was last month now :-)

Best wishes,

Sean.