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.
In case a DataObject's primary file is stored in VCS and a new important secondary file is created, the user need to be aware of that fact and needs to be able to conveniently add the new file into VCS when needed. This functionality is critical for DataObjects, that alter the number of important files during their existence so that they will be correctly kept in the version control repository.
Scheduling to "future" for now. The proposed solution: 1) Add a mechanism, that will detect DataObject creations on VCS filesystems. 2) As the DataObjects are created, construct a list of all secondary FileObjects, that are important and that are not in the VCS repository (have [Local] status) and their corresponding primary FileObjects are in the VCS repository (have status != [Local]). 3) When the user runs a commit(check in) command, go through this list and offer the appropriate files to add them first. A dialog will popup before the actual commit. This dialog will contain the list of files, which are to be added. The user can: a) add them all or b) select only some files to be added or c) skip this to follow with the commit without anything to add or d) cancel the whole action. There however are several potential problems associated with this solution: 1) A performance slowdown when the listeners connected to DataSystems will construct the list of secondary FileObjects. This can make the process of DataObject recognition a little slower. 2) How to maintain the created list of secondary FileObjects? There are two sub-problems: 2a) Keep the list up-to-date. Remove deleted files from the list, reflect the change of file status (a file, that is considered as local can become version-controlled later and vice versa). 2b) Store the list persistently accross IDE restarts, re-mount of the filesystem, etc. To solve 2a) I propose to cooperate with the delete action and VCS cache status change listeners. To solve 2b) I propose to keep the list as an attribute of the root FileObject of the VCS filesystem. What about other solutions? If someone find a different, more elegant solution, please write it here.
Adding UI keyword - this feature needs a new dialog to be added. The first proposal of the dialog: ---------------------------------------------------------------------- There were detected local files, that are associated with object, that are already stored in VCS repository. To keep the consistency of these objects, you may consider to add them into the repository as well. Select local files to be added: ------------------- | XXX.xxx | [ Select All ] | YYY.yyy | | ZZZ.zzz | [ Unselect All ] | | | | ------------------- [ Add ] [ Skip To Commit ] [ Cancel ] ----------------------------------------------------------------------
Perhaps some sort of "Do not show this dialog again" checkbox should be added so that this dialog will not be too intrusive when it's not desired. It probably should be something like "Do not show this dialog again for unselected local files", because on some DataObjects it might be desired to add all newly created files and on others not.
...checking bugs and found out this: don't we have too many opened bugs for one thing? Please, see: issue #30112 issue #21458 I suggest to mark 2 of them as duplicats for one of those 3
Some basic implementation is done but not yet tested. Now I'm doing first tests. The committed functionality is not yet bind to any VCS filesystem, so it's not active yet. Directory /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity added to the repository RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/FileObjectImportantness.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/FileObjectImportantness.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/FileObjectImportantness.java,v <-- FileObjectImportantness.java initial revision: 1.1 done Processing log script arguments... More commits to come... RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/Bundle.properties,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/Bundle.properties; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/Bundle.properties,v <-- Bundle.properties initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommand.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommand.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommand.java,v <-- ObjectIntegrityCommand.java initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommandSupport.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommandSupport.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommandSupport.java,v <-- ObjectIntegrityCommandSupport.java initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.form,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.form; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.form,v <-- ObjectIntegrityPanel.form initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.java,v <-- ObjectIntegrityPanel.java initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsObjectIntegritySupport.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsObjectIntegritySupport.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsObjectIntegritySupport.java,v <-- VcsObjectIntegritySupport.java initial revision: 1.1 done
The next bunch of updates committed into the main trunk. The feature is activated for CVS profile (CVS command-line integration, not JavaCVS). Newly created secondary files are catched and suggested for addition before the commit command. Changes in vcscore module: Checking in vcscore/src/org/netbeans/modules/vcscore/VcsFSCommandsAction.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFSCommandsAction.java,v <-- VcsFSCommandsAction.java new revision: 1.7; previous revision: 1.6 done Checking in vcscore/src/org/netbeans/modules/vcscore/DefaultVcsCommandsProvider.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/DefaultVcsCommandsProvider.java,v <-- DefaultVcsCommandsProvider.java new revision: 1.5; previous revision: 1.4 done Checking in vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java,v <-- VcsFileSystem.java new revision: 1.209; previous revision: 1.208 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java,v <-- CommandProcessor.java new revision: 1.10; previous revision: 1.9 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommand.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommand.java,v <-- ObjectIntegrityCommand.java new revision: 1.2; previous revision: 1.1 done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityPanel.java,v <-- ObjectIntegrityPanel.java new revision: 1.2; previous revision: 1.1 done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsObjectIntegritySupport.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsObjectIntegritySupport.java,v <-- VcsObjectIntegritySupport.java new revision: 1.2; previous revision: 1.1 done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/Bundle.properties; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/Bundle.properties,v <-- Bundle.properties new revision: 1.2; previous revision: 1.1 done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommandSupport.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/ObjectIntegrityCommandSupport.java,v <-- ObjectIntegrityCommandSupport.java new revision: 1.2; previous revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/IntegritySupportMaintainer.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/IntegritySupportMaintainer.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/IntegritySupportMaintainer.java,v <-- IntegritySupportMaintainer.java initial revision: 1.1 done RCS file: /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsOISActivator.java,v done Checking in vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsOISActivator.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/objectintegrity/VcsOISActivator.java,v <-- VcsOISActivator.java initial revision: 1.1 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/api/vcs/commands/CommandTask.java; /cvs/vcscore/src/org/netbeans/api/vcs/commands/CommandTask.java,v <-- CommandTask.java new revision: 1.3; previous revision: 1.2 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/spi/vcs/commands/CommandInvocationHandler.java; /cvs/vcscore/src/org/netbeans/spi/vcs/commands/CommandInvocationHandler.java,v <-- CommandInvocationHandler.java new revision: 1.3; previous revision: 1.2 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/modules/vcscore/cmdline/UserCommandSupport.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/cmdline/UserCommandSupport.java,v <-- UserCommandSupport.java new revision: 1.20; previous revision: 1.19 done Processing log script arguments... More commits to come... Checking in vcscore/src/org/netbeans/modules/vcscore/actions/CommandMenu.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/actions/CommandMenu.java,v <-- CommandMenu.java new revision: 1.6; previous revision: 1.5 done Processing log script arguments... Mailing the commit message to cvs@vcscore.netbeans.org (from mentlicher@netbeans.org) Changes in vcsgeneric/profiles/cvsprofile: Checking in vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsUnix.xml; /cvs/vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsUnix.xml,v <-- cvsUnix.xml new revision: 1.29; previous revision: 1.28 done Checking in vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsWin.xml; /cvs/vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsWin.xml,v <-- cvsWin.xml new revision: 1.31; previous revision: 1.30 done Checking in vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsWin98.xml; /cvs/vcsgeneric/profiles/cvsprofiles/src/org/netbeans/modules/vcs/profiles/cvsprofiles/config/cvsWin98.xml,v <-- cvsWin98.xml new revision: 1.30; previous revision: 1.29 done Processing log script arguments... Mailing the commit message to cvs@vcsgeneric.netbeans.org (from mentlicher@netbeans.org)
I am sorry Martin but it's not perfect yet. If I "Deselect All" and push "Add", IDE tries to add null to repository which is obviously impossible. Please take care of this scenario too. Trying to verify in development build #200303140100 of NetBeans 4.0.
Also it looks like "Do not show this dialog ..." checkbox does not work. I had unselected one file, checked the checkbox, pushed "Add", "OK" button twice. If I repeated the "CVS|Commit" on the same node, the unselected file was displayed again.
The enhancement is already implemented, so I would like to keep this as fixed. The problems you found are just defects, so they should be submitted as defects. I'll not be permitted to fix enhancements in this stage into 3.5 branch. I've filled issue #32097 for these problems.
Okay, I agree then. Verified as implemented.
*** Issue 30557 has been marked as a duplicate of this issue. ***