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 110660 - [CVS update] local modify/remotely deleted incorrectly handled
Summary: [CVS update] local modify/remotely deleted incorrectly handled
Status: NEW
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: CVS (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: issues@versioncontrol
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-24 00:51 UTC by err
Modified: 2007-07-24 16:01 UTC (History)
0 users

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 err 2007-07-24 00:51:42 UTC
Build 200707220000

Did a CVS Update when there are two files that have been locally modified and remotely deleted. There is no UI
indication that these files have been remotely deleted. The handling of these is such that it would be easy to check
these files back in.

In the "Versioning Output - CVS update" window their status is "Conflict"
  Not sure what you would want here, "Conflict - Remotely Removed", doesn't seem quite right
In the CVS Show Changes window their status is "Locally/remotely Modified"
  This should be "Locally Modified/Remotely Deleted" or some such,
Someplace, perhaps on the CVS update widnow, there should be an option (context menu?) to locally remove the file, which
would not queue it up for remote deletion.

I deleted these files through the project window UI, and now they are shown as "Locally Deleted". Not sure what will
happen when I commit.

Hidden in the warning dialog that was generated when I did the "CVS update" are the following two lines, out of some 50
plus lines
  cvs update: conflict: jvi/src/com/raelity/jvi/swing/DefaultCmdEntry.java is modified but no longer in the repository
  cvs update: conflict: jvi/src/com/raelity/jvi/swing/NewWindowCmdEntry.java is modified but no longer in the repository
Comment 1 err 2007-07-24 05:07:05 UTC
When I attempted to make the rather large checkin. I get a dialog:
  CVS Command failed with the following error:
  cvs [add aborted]: there is no version here; do 'cvs checkout' first

Don't know if it's related.
Comment 2 err 2007-07-24 05:09:54 UTC
BTW. There was nothing in messages.log.

I have no idea what it is complaining about.
Comment 3 Maros Sandor 2007-07-24 14:26:11 UTC
I agree that printing more explanatory status would be useful in this case. Let me explain current state:

*Conflict*
means remote changes and local changes are incompatible (remote changes cannot be merged with local changes during
update). This is your case, also the case when you have a locally new file and the same file was already added into
repository and also the most common case is that both parties modify a single line of text.

*Locally/Remotely Modified
means that there are local and remote changes but the actual state (mergeable or conflict) will be determined during Update

In case you have a conflict that cannot be resolved in the Conflict Resolver (via CVS/Resolve Conflicts) - the first two
cases above - use Revert Modifications and Update. This will revert your local changes and then updates your working copy.

As you mentioned in the last paragraph, the exact reason for the conflict is shown in the conflict dialog.
Comment 4 err 2007-07-24 16:01:01 UTC
Thanks for the clarification. Part of my confusion came from seeing "remotely deleted" as a status for some stuff, but
that delete-state info being unavailable for the cases I had trouble with.

> In case you have a conflict that cannot be resolved in the Conflict Resolver 
> (via CVS/Resolve Conflicts) - the first two cases above - use Revert Modifications 
> and Update. This will revert your local changes and then updates your working copy.
In the local-modify/remote-delete case, without knowing that the remote file is gone, it is difficult to revert
modifications. Yes, its true its in the dialog, but the info is buried; if the dialog grouped the conflict messages at
the top, or displayed them in red, or ...

BTW, after the initial update there was also a locally-deleted/remotely-modified file. So I guess the way to handle this
would be to revert-modification (undo the local delete), update, do the local delete again.

Certainly additional status info would have helped. I wonder if conflict resolution options for these two cases would be
useful? Or would it be "too friendly" letting people get into trouble since the proper resolution requires a revert?