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 31056 - Add a possibility to conveniently add new secondary files into VCS
Summary: Add a possibility to conveniently add new secondary files into VCS
Status: VERIFIED FIXED
Alias: None
Product: obsolete
Classification: Unclassified
Component: vcscore (show other bugs)
Version: 3.x
Hardware: All All
: P1 blocker (vote)
Assignee: Martin Entlicher
URL:
Keywords: UI
: 30557 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-02-14 10:25 UTC by Martin Entlicher
Modified: 2003-04-15 10:03 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Entlicher 2003-02-14 10:25:31 UTC
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.
Comment 1 Martin Entlicher 2003-02-14 12:56:42 UTC
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.
Comment 2 Martin Entlicher 2003-02-14 15:50:06 UTC
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 ]

----------------------------------------------------------------------
Comment 3 Martin Entlicher 2003-02-14 15:58:41 UTC
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.
Comment 4 dmladek 2003-02-20 14:25:06 UTC
...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
Comment 5 Martin Entlicher 2003-02-28 14:27:10 UTC
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
Comment 6 Martin Entlicher 2003-03-03 10:02:10 UTC
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)
Comment 7 Jiri Kovalsky 2003-03-14 15:45:34 UTC
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.
Comment 8 Jiri Kovalsky 2003-03-14 15:49:57 UTC
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.
Comment 9 Martin Entlicher 2003-03-18 15:28:24 UTC
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.
Comment 10 Jiri Kovalsky 2003-03-18 15:59:17 UTC
Okay, I agree then. Verified as implemented.
Comment 11 Martin Entlicher 2003-04-15 10:03:46 UTC
*** Issue 30557 has been marked as a duplicate of this issue. ***