Bug 79325 - [Operations] Remote tag should batch as much as possible
Summary: [Operations] Remote tag should batch as much as possible
Status: ASSIGNED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: CVS (show other bugs)
Version: 3.0.1   Edit
Hardware: PC Windows XP
: P5 normal (vote)
Target Milestone: ---   Edit
Assignee: platform-cvs-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted, performance
Depends on:
Blocks:
 
Reported: 2004-11-23 13:59 EST by Charles Oliver Nutter CLA
Modified: 2019-09-06 16:11 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Charles Oliver Nutter CLA 2004-11-23 13:59:05 EST
When tagging files via the repository view, files from multiple repositories,
projects, and tags can be selected. In order to allow this behavior, the
TagInRepositoryOperation loops over all resources and tags them individually.
This works correctly, but generates considerably more CVS traffic than is necessary.

As a result of the loop, every resource results in a separate hit to the
associated CVS servers. Because of these separate hits, multiple taginfo events
are also generated on the server. Software that uses taginfo events to fire
programs or log information about CVS access end up handling multiple events. I
my case, the CVS server ends up sending an email for each file tagged.

TagInRepositoryOperation should be modified to batch CVS hits by repository and
source tag. This would be sufficient separation to allow the current behavior of
the repository view to work correctly, but would allow multiple tag operations
against the same repository and tag to be sent to the server as a single operation.

I have part of this work under way now, but would like comments.
Comment 1 Michael Valenta CLA 2004-12-01 12:06:17 EST
Are you saying you ar working on a patch and want to know if the direction you 
are taking is correct? If so, the answer is a definite yes. The behavior you 
describe would be the most desirable. If you are working on this, feel free to 
ask questions either in this bug report or on the platform-cvs-dev mailing 
list.
Comment 2 Charles Oliver Nutter CLA 2004-12-01 12:27:50 EST
You are correct, I am working on a patch because we have need of this behavior,
and I'm glad to hear this is the correct direction.

The only snag I've hit so far is that when rtagging a remote file based on a
specific tag, Eclipse CVS is sending -r <revision> rather than -r <tag>,
presumably to support tagging using so-called "date tags" which have no real
analog within CVS. I believe in order for this batching to work, rtagging files
under a specific named tag must be modified to -r <tag> instead.

I think tagging this way would also qualify as a bug, given the following scenario:

1. User #1 refreshes their repository view and navigates to file myFile.java,
revision 1.1, under tag "MYTAG"
2. User #2 commits myFile.java 1.2 and tags with "MYTAG"
3. User #1 attempts to tag the myFile in their view with "MYOTHERTAG"; however,
their local view knows only about 1.1, and passes this in the "cvs rtag" command.

The intention here is to tag the most current "MYTAG" revision, but instead the
previous revision gets tagged. Using revision to tag files under a specific tag
is also not really in line with how stock CVS would do it. If I wanted to tag
the "MYTAG" version of a given file, I would specify -r MYTAG...not -r <revision>

My patch currently is working correctly other than this little glitch, but it's
a pretty significant glitch. Fixing it would modify the way Eclipse CVS rtags
tagged files...any comment? Should this go under a new bug?
Comment 3 Michael Valenta CLA 2004-12-02 09:41:40 EST
The problem is that if a user selected 5 files in the repository view and 
chose to tag them, it is hard to say whether they are interested in tagging 
the latest on the branch or the exact revisions. If the tag is a version tag, 
there isn't really an issue since the revisions don't change so you could just 
use rtag with the common version tag as the base. However, for HEAD and 
branches there is no way to know what the users intent was. One possibility 
would be to prompt the user if they have selected files (on a branch or HEAD 
only) to ask them if they want to tag the specific revisions or the latest on 
the branch. It's not the greatest to have an extra prompt but a 
MessageDialogWithToggle would give the user the option to avoid it in the 
future.

I think this issue needs to be addressed by this bug since it would be a 
change in behavior and also because, if the user chooses a file directly, they 
could reasonably expect that exact revision to be tagged.
Comment 4 Charles Oliver Nutter CLA 2004-12-02 10:00:58 EST
So perhaps we're closer...am I hearing that you agree that rtagging files under
a version tag could reasonably be assumed to mean the user wants to tag the
revision associated with that tag (as opposed to a specific revision)? That's
probably 50% of the battle right there.

So we have the following:

Tagging of files under a version tag should use -r <tag>.
Tagging of files under a "date tag" should use -D <date> (not sure if it does
this now or not).
Tagging of files under a branch (HEAD or otherwise) is still questionable, and
might need to be revision based AND -r <tag> based.

That about the size of it?
Comment 5 Michael Valenta CLA 2004-12-02 10:05:42 EST
That sounds about right to me.
Comment 6 Eclipse Webmaster CLA 2019-09-06 16:11:18 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.