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 37353 - Have a possibility to modify recursively CVSROOT in CVS/Root
Summary: Have a possibility to modify recursively CVSROOT in CVS/Root
Status: STARTED
Alias: None
Product: obsolete
Classification: Unclassified
Component: vcsgeneric (show other bugs)
Version: 3.x
Hardware: All All
: P3 blocker with 1 vote (vote)
Assignee: issues@obsolete
URL:
Keywords:
Depends on: 37398
Blocks:
  Show dependency tree
 
Reported: 2003-11-19 19:32 UTC by dmladek
Modified: 2011-09-19 23:29 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
Here is the mentioned class "ChangeCVSRoot.java" (10.89 KB, text/plain)
2003-11-21 17:25 UTC, dmladek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description dmladek 2003-11-19 19:32:51 UTC
There is known problem if you checkout your sources
using somehow deffined CVSROOT, but later this
CVSROOT stop work (because of rename of cvs
pserver,etc.) and you have to start another CVSROOT.
In IDE CVS support is used global (-d) CVSROOT
and you could modify it accordingly to your actual
needs.
But for instance:
I have checkout sources using this CVSROOT option:
:pserver:anoncvs@fortecvs:/nbextra

and now, the network configuration changed and I
could update my sources only using this CVSROOT:
:pserver:anoncvs@fortecvs.sfbay:/nbextra

Well, update on individual files work, but
if you run cvs->update on the top of your working
all files give you status [Merge Conflicts]

This is because of inconsistency in those 2
CVSROOT options.

There should be some kind of Action which will
allow user to change all CVS/Root files to the new
specified values.
Comment 1 dmladek 2003-11-19 19:34:18 UTC
Also, I don't have any idea where to put such functionality to the IDE.
If you could think about it Gabo, I'll appreceate it.
thanks
Comment 2 dmladek 2003-11-19 19:35:09 UTC
I'll take a look at it:)
Comment 3 dmladek 2003-11-21 17:17:37 UTC
Well, I've got some functional class which search for old vaules:
(User,Pserver,Port Repository) and replace them with the new ones.
It starts from the given CVSWorking (of current FS).

Comment 4 dmladek 2003-11-21 17:25:51 UTC
Created attachment 12262 [details]
Here is the mentioned class "ChangeCVSRoot.java"
Comment 5 dmladek 2003-11-21 21:04:32 UTC
Now, what we need is: to place this feature somewhere in the IDE GUI.

Potentially there are a few possibilities like to put it into:
  * MainMenu->Versioning->...
  * PopupMenu->CVS->...
  * VCS Mounting Wizard/Customizer
  * and sure, there might be other places (Toolbars, etc...)

I'd prefer to have it in VCS MntWizard/Customizer, so I'll describe
here my idea about GUI implementation:

(1) Why into Customizer?
 -Because it is related to customizing VCS-FS properties and it really
  customize all your CVS/Root files in the entire CVS Working and
  influence by this modification cvs commands behavior:
    +update under some circumstances return [Merge-conflict] file
     status instead of performing real update.
 -And because, it seems more probably that VCS MntWizard is going to
  extend for extra panels due to CVS specific issue #37398

(2) Extra TAB/Panel in Customizer/Wizard
    If happen that current VCS MntWizard would extend into proposed
    suggestion mentioned in the issue #37398,
    I'd suggest to add a button "Check CVS/Roots" next by
    "CVSROOT" textfield which will popup a new dialog which
    will use "ChangeCVSRoot" class.

(3) The dialog (using "ChangeCVSRoot" class) eg. "Unify your CVS/Root"
    Will be mainly composed from Table which will allow sorting on
    individual columns representanting:
      +User, Server, Port, Repository
    In the table will be as many row as it will be found differing
    CVS/Root files from your actually set CVSROOT variable on
    the Second TAB/Panel "Server Settings" of the Wizard/Customizer
    Which is described in depending issue #37398

/--------------------------------------------------------------------\
|    Maintainer of CVS/Root files vs. CVSROOT variable               |
|====================================================================|
|  ________________________________________________________________  |
|  |{usrName}  {srvName}   {Port}  {Repository}  {ConnectingMethod}| |
|  _________________________________________________________________ |
|  |   ...   |   ...     |  ....  |   ...       |      ...         | |
|  |   ...   |   ...     |  ....  |   ...       |      ...         | |
|  |   ...   |   ...     |  ....  |   ...       |      ...         | |
|  |   ...   |   ...     |  ....  |   ...       |      ...         | |
|  |         |           |        |             |                  | |
|  _________________________________________________________________ |
|  |repl[x]  |repl[x]    |repl[x] |repl[x]      |repl[x]           | |
|  _________________________________________________________________ |
|                                                                    |
|   [Replace All Roots]  [Repl.selected Roots(rows)]   [Cancel]      |
\--------------------------------------------------------------------/

-Replace [x] chckbox:
 Under each table's column will be a checkbox representanting if this
 part of CVSROOT (eg.User) will be included in replacing process.
 For instance:
   On the II.Wizard's panel the CVSROOT variable is:
           :pserver:dmladek@myserver:/usr/repo
   And in the table there were found 4 CVS/Root files of contents
   differing just in the username and servername:
   ________________________________________________________________ 
   |{usrName}  {srvName}   {Port}  {Repository}  {ConnectingMethod}|
   _________________________________________________________________
   |anonymous| myserver  |  ....  | /usr/repo   |   pserver        |
   |anonymous| myserver  |  ....  | /usr/repo   |   pserver        |
   |dmladek  |myserver.cz|  ....  | /usr/repo   |   pserver        |
   |anonymous|myserver.cz|  ....  | /usr/repo   |   pserver        |
   _________________________________________________________________
   |repl[ ]  |repl[x]    |repl[x] |repl[x]      |repl[x]           |


If user left unchecked only username column, then (according current
CVSROOT variable which is still :pserver:dmladek@myserver:/usr/repo)
will be replaced only srvname, port, repo, connect.Method
and because port, repo and con.method  are same only
srvname will be replaced in those 4 CVS/Root files

-Replace All Roots Button:
 include all rows (CVS/Root files) listed in table into replacing
 process

-Replace selected Roots Button:
 will include into replacing process only selected rows from table.


(4)
This GUI, in this way as it is designed, offers a user a maximum
variety and freedom of what she will replace by what.