TMate replacement

Hello everyone,

Now that the build 6951 is out, it's high time to look at the new committed/incoming
changes functionality and to judge whether it's an adequate replacement for
TMate. We've done most of the things we had planned; some features that are
still planned to be added are:
- read/unread changelist support
- support for distinguishing CVS changelists by branch
- (maybe) optional possibility to load changes history from TeamCity rather
than the VCS server to reduce VCS load (particularly for CVS)
- display of "Update Project" results as a list of changelists, in addition
to the current tree grouped by status

With this in mind, are there any use cases that are covered by TMate but
not covered by IDEA's functionality?

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


85 comments
Comment actions Permalink

I discovered something else in the debug logs for the committed changes. I added a file on a branch which has not been merged to HEAD yet. So it only exists on the branch. I see the following messages in idea.log for this file when refreshing:

2007-05-10 14:04:40,314 INFO - ges.committed.ChangesCacheFile - Checking file C:\dev\performasure\purt1\src\dist\config\agent\Attic\modelfilters.config
2007-05-10 14:04:40,314 INFO - ges.committed.ChangesCacheFile - Could not find local file for change C:\dev\performasure\purt1\src\dist\config\agent\Attic\modelfilters.config

0
Comment actions Permalink

Right now it doesn't handle branches at all. But it
definitely will (see IDEADEV-16610).


Dang :P That makes the Incoming view pretty useless for me until it's fixed. Oh well, hopefully it's fixed soon :)

0
Comment actions Permalink

Adding this I still only get INFO messages for the committed.* loggers
but I logged a defect anyway.
http://www.jetbrains.net/jira/browse/IDEA-12684
R

0
Comment actions Permalink

Hello Dmitry,

There's a button to show the cache settings dialog in VCS general
settings. If you know a better place for that, suggestions are welcome. :)


I was looking for this button in the Incoming changes panel, since I had
to give initial values for these parameters the first time I went there.
R

0
Comment actions Permalink

Dear Gilles,

GP> Do you plan to add a Clearcase implementation ?

Yes, the only question is how smoothly CCase data will fit into IDEA's design
for incoming changes.

GP> If it's just a matter of being able to to 'preview' which elements
GP> would be changed after an update, it's available with the following
GP> command :
GP>
GP> cleartool update -print

I know, thanx anyway!

GP> (Produces a preview of the update operation: instead of copying or
GP> removing files, update prints a report to standard output of the
GP> actions it would take for each specified element.)


GP> As a side note, i'd like to know what strategy is used in Selena to
GP> perform an update of a project under Clearcase. It seems to issue a
GP> lot of cleartool commands which can be a big performance hog. I
GP> would suggest using a combination of commands like "cleartool ls -r"
GP> on each module and maybe "cleartool ls -r -view_only" to be more
GP> effective performance wise.

Generally, LS command is issues per list of files. In good case, we manage
to get all necessary information via one call to "ls" and one call to "Describe".
Thus I do not think "-view_only" will help here.
Starting form next week I'll make some optimizations, which will reduce amount
of calls to cleartool.

best wishes,
Michael Gerasimov,
Software Developer
JetBrains, Inc


0
Comment actions Permalink

Hello Gordon,

A few quick notes that I made. Unfortunately I have an extremely
important deadline so I can't spend much more time on this.


Thanks for the feedback!

These are all regarding the Incoming Changes window:

Needs collapse-all and expand-all actions.


done

The "more..." link only works if you click it while that commit is NOT
selected. And sometimes it doesn't even work at all.


fixed

I would prefer a more tabular layout with the user and date as two
small columns on the right side.


We've changed the layout a bit in the next build - hopefully it'll be more
readable.

Multi-line commit messages don't display very well in the single-line
view. Perhaps convert newlines to spaces for this view?


This should also be covered by the layout improvements we've made.

Toggling the Group by Directory option in the Changed Files view
causes the whole Changes window to minimize.


Couldn't reproduce this, sorry.

The contents of the Changelist Details popup should be scrolled to the
top when first displayed.


fixed

Mutli-line commit messages should not have their newlines stripped
when displayed in the Changelist Details popup.


fixed

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Hello Martin,

What I really miss is a simple way to copy a commit message out of the
tree view. Currently I work on a project which is split into three
different branches, and every change has to be done on every branch.
So everything is very well supported, only to get at the commit
message is extremely difficult. What I would expect is an action 'Copy
Commit Message' in the context menu of the committed changes view.


Done. The action is on the toolbar, and Ctrl-C works as expected.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Hi Dmitry,

I just installed 6951 and I have to say I'm impressed by the CVS browsing facilities - well done guys!

After the disappointment of losing TMate in Selena, and having to stick with IntelliJ 6, I can now start using Selena - excellent.

The only TMate features I don't see on the list is the ability to update (all or selectively) from the outstanding changes list (which I guess is the 'Incoming' changes?).

0
Comment actions Permalink

Hello Dave,

I just installed 6951 and I have to say I'm impressed by the CVS
browsing facilities - well done guys!

After the disappointment of losing TMate in Selena, and having to
stick with IntelliJ 6, I can now start using Selena - excellent.


Thanks!

The only TMate features I don't see on the list is the ability to
update (all or selectively) from the outstanding changes list (which I
guess is the 'Incoming' changes?).


This is already implemented and will be included in the next EAP build.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Thanks, Dmitry. Is there any chance to get it on the context menu too?

Dmitry Jemerov wrote:

Hello Martin,

>> What I really miss is a simple way to copy a commit message out of the
>> tree view. Currently I work on a project which is split into three
>> different branches, and every change has to be done on every branch.
>> So everything is very well supported, only to get at the commit
>> message is extremely difficult. What I would expect is an action 'Copy
>> Commit Message' in the context menu of the committed changes view.


Done. The action is on the toolbar, and Ctrl-C works as expected.

0
Comment actions Permalink

Hello Dmitry,

>> The only TMate features I don't see on the list is the ability to
>> update (all or selectively) from the outstanding changes list (which
>> I guess is the 'Incoming' changes?).
>>

This is already implemented and will be included in the next EAP
build.


When looking at "Incoming" view, what's the difference between filter "Incoming"
and filter "None"?


0
Comment actions Permalink

Hello Taras,

>>> The only TMate features I don't see on the list is the ability to
>>> update (all or selectively) from the outstanding changes list (which
>>> I guess is the 'Incoming' changes?).
>>>
>> This is already implemented and will be included in the next EAP
>> build.
>>

When looking at "Incoming" view, what's the difference between filter
"Incoming" and filter "None"?


None. :) It's just some experimentation, to see whether a separate "Incoming"
tab is better or worse than a single "Committed" tab with "Incoming" filter.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

OK, thanks! ;)

Thanks, Dmitry. Is there any chance to get it on the
context menu too?

Dmitry Jemerov wrote:

Hello Martin,

>> What I really miss is a simple way to copy a
commit message out of the
>> tree view. Currently I work on a project which is
split into three
>> different branches, and every change has to be
done on every branch.
>> So everything is very well supported, only to get
at the commit
>> message is extremely difficult. What I would
expect is an action 'Copy
>> Commit Message' in the context menu of the
committed changes view.


Done. The action is on the toolbar, and Ctrl-C

works as expected.
>

0
Comment actions Permalink

How tough would it be to add an icon to incoming change list which says whether any of the changes on the incoming list will require merging with my current changes. If I'm in the middle of a large change that is going to take a while and require changing more files, I often want to update changes if they don't affect my current work, and defer updating changes that could conflict with my current work until just before I'm ready to commit. Having IDEA tell me whether it is "safe" to update an incoming change would be a real time saver.

--Dave Griffith

0
Comment actions Permalink

Hello Dave,

How tough would it be to add an icon to incoming change list which
says whether any of the changes on the incoming list will require
merging with my current changes. If I'm in the middle of a large
change that is going to take a while and require changing more files,
I often want to update changes if they don't affect my current work,
and defer updating changes that could conflict with my current work
until just before I'm ready to commit. Having IDEA tell me whether it
is "safe" to update an incoming change would be a real time saver.


JIRA request please?

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

+1

I've been using Eclipse for the last couple of months and now that I am back on IntelliJ, I really miss the Synchronize view of Eclipse where I can filter and view incoming changes, outgoing changes and conflicts.

Todd

0
Comment actions Permalink

Hello Todd,

I've been using Eclipse for the last couple of months and now that I
am back on IntelliJ, I really miss the Synchronize view of Eclipse
where I can filter and view incoming changes, outgoing changes and
conflicts.


Have you actually tried the latest Selena EAP build? It's very interesting
for us to know which use cases of the Eclipse synchronize view are not covered
by IDEA's current functionality.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

http://www.jetbrains.net/jira/browse/IDEA-12847 , now that I've gotten around to JIRA'ing.

--Dave Griffith

0
Comment actions Permalink

Hi Dmitry

Have you actually tried the latest Selena EAP build?
It's very interesting
for us to know which use cases of the Eclipse
synchronize view are not covered
by IDEA's current functionality.


I am using Selena (Build 6963).

I like the local changes view in IDEA a lot. What I am missing that I liked in Eclipse is the global view available in the Syncronizing perspective. A tree view of my entire CVS workspace that had icon overlays showing me the incoming, outgoing, conflict status of each file. The conflict overlays are also promoted up the hierarchy, so that I can see at a glance if I have any conflicts, and I can drill down to find them.

I could also perform all of my syncrhonization from this view. The default action when double-clicking on a file is to display a diff view. I could then perform the merge (if conflicts) and mark the file as merged and it the conflict notation would be removed.

As I said in the earlier post, filters to show me only incoming changes, outgoing changes, or conflicts is another feature that I used frequently in Eclipse.

I must say I am a little confused by the Changes view in IDEA right now. Local changes I get and use frequently. However, the new committed and incoming tabs don't make a lot of sense to me. For example, I've just done a CVS update of my entire workspace, and yet my incoming tab shows over a hundred files. I would expect this to only show files that are different in the CVS repository than in my local workspace. Could be a bug with the implementation of branches, I suppose, since my current workspace is a branch.

Hope this helps, and thanks for a great IDE!

Todd

0
Comment actions Permalink

Hello Todd,

I like the local changes view in IDEA a lot. What I am missing that I
liked in Eclipse is the global view available in the Syncronizing
perspective. A tree view of my entire CVS workspace that had icon
overlays showing me the incoming, outgoing, conflict status of each
file. The conflict overlays are also promoted up the hierarchy, so
that I can see at a glance if I have any conflicts, and I can drill
down to find them.

I could also perform all of my syncrhonization from this view. The
default action when double-clicking on a file is to display a diff
view. I could then perform the merge (if conflicts) and mark the file
as merged and it the conflict notation would be removed.


So do I understand correctly that your main use case for the view is locating
conflicts? Would it help if there was a single place in IDEA where all conflicts
would be displayed together?

Do you often synchronize only part of your project, rather than the entire
project? Why?

I must say I am a little confused by the Changes view in IDEA right
now. Local changes I get and use frequently. However, the new
committed and incoming tabs don't make a lot of sense to me. For
example, I've just done a CVS update of my entire workspace, and yet
my incoming tab shows over a hundred files. I would expect this to
only show files that are different in the CVS repository than in my
local workspace. Could be a bug with the implementation of branches, I
suppose, since my current workspace is a branch.


The functionality is still under active development, and full support for
CVS branches will be available in the next EAP build. The expected behavior
is that the incoming changes view should be empty after a project update.

The committed changes tab shows a complete history of changes in your project,
which you can filter by user, date or project structure (to see the changes
in a particular module or directory).

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Dmitriy

So do I understand correctly that your main use case
for the view is locating
conflicts? Would it help if there was a single place
in IDEA where all conflicts
would be displayed together?


That's not the main use case, but it is an important one. A single place for conflict display and resolution would be nice, but if it's too far removed from other VCS views it might be cumbersome. That's why I like the consolidated view in the Eclipse synchronize perspective.

Do you often synchronize only part of your project,
rather than the entire
project? Why?


I do, sometimes. Because of the way our project and team is structured, I may need to update/commit a single directory or set of directories. For example, if one of our web designers has made changes to a JSP that might affect the code I am working on, I will only update a specific JSP directory and all of its descendants.

The functionality is still under active development,
and full support for
CVS branches will be available in the next EAP build.
The expected behavior
is that the incoming changes view should be empty
after a project update.


Good to hear. That is what I would expect. I'll keep an eye on this in future builds.

The committed changes tab shows a complete history of
changes in your project,
which you can filter by user, date or project
structure (to see the changes
in a particular module or directory).


Yep. This works as expected.

Todd

0
Comment actions Permalink

Hello Dave,

http://www.jetbrains.net/jira/browse/IDEA-12847 , now that I've gotten
around to JIRA'ing.


Sneak preview. :)
http://pics.livejournal.com/yole/pic/000p9d9g

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Ooooh, shiny! I want it!!! And a status bar indicator of incoming changes! And project panel highlighting of changed files!! And a pony!!! Pony! Pony! Pony!

You guys are really starting to rock on this whole team integration stuff.

--Dave Griffith

0
Comment actions Permalink

>You guys are really starting to rock on this whole team integration stuff.

Which is not to excuse the TeamCity guys from their embarrassing lack of RSS notifications.

--Dave Griffith

0
Comment actions Permalink

We had to stop using TMate because it put too much load on our CVS server. I haven't used the new IDEA functionality enough to see if it suffers the same issue, but the thought of numerous individual IDEs hitting CVS to get updates concerns me somewhat. Based on my historical experience, I hope loading changes from TeamCity gets implemented.

0
Comment actions Permalink

As far as I can tell, it uses the CVS rlog command and it seems to be really slow. I was wondering why it doesn't use the CVS history command like TMate did?

0
Comment actions Permalink


In Selena EAP #6891, my "Incoming" pane stays populated, while I've just
done a full update to HEAD.
Are there known issues in this area, or should I submit a new JIRA ticket?
Is this perhaps related to the "failure to detect external changes" that
everyone's talking about?

-tt


0
Comment actions Permalink

And when we are at that issue: Would it be possible to have an 'update
project' button in the 'incoming' pane? It would be very handy to first
check what will be updated and then update it all at once (and then
seeing everything vanish from the 'incoming' pane of course...).

Taras Tielkes wrote:


In Selena EAP #6891, my "Incoming" pane stays populated, while I've just
done a full update to HEAD.
Are there known issues in this area, or should I submit a new JIRA
ticket? Is this perhaps related to the "failure to detect external
changes" that everyone's talking about?

-tt


--
Martin Fuhrer
Fuhrer Engineering AG
http://www.fuhrer.com

0

Please sign in to leave a comment.