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

I would dearly love to try this feature out but as I describe in http://www.jetbrains.net/jira/browse/IDEA-12687 it's currently unusable for me because the whole window just freezes while trying to refresh the Incoming Changes view. Perhaps I shouldn't have accepted the default timespan of 90 days...

A question about your planned features: The list of changelists displayed in Update Project, would that just be to show what's being updated or would they be selectable to choose which changes to get?

0

Hello Gordon,

A question about your planned features: The list of changelists
displayed in Update Project, would that just be to show what's being
updated or would they be selectable to choose which changes to get?


"Update Project" is the results of an update operation. So you've already
gotten what's displayed there.

A "Get" action for changelists in Incoming Changes is also planned.

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


0

Oh, you're referring to the results window after the update is completed? I thought you meant showing the incoming changelists in the Update Project dialog before the update starts.

0

Hello Gordon,

Oh, you're referring to the results window after the update is
completed? I thought you meant showing the incoming changelists in the
Update Project dialog before the update starts.


That's the "Incoming Changes" view which is already in 6951.

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


0

Yeah, I realize that. I just thought that you would be ALSO showing them in the Update Project dialog. Now that I think about it, that doesn't make much sense :)

0

Hello Dmitry,

DJ> Now that the build 6951 is out, it's high time to look at the new
DJ> committed/incoming
DJ> changes functionality and to judge whether it's an adequate
DJ> replacement for
DJ> TMate.

It looks great. Here are a few comments, suggestions:
- the ability to parse the comment for text patterns indicating bug reports
(like in Teamcity and TMate). Might be there, but I haven't found a way to
configure it.
- the ability to allign (eventually reorder) the user/comment/date column.
The user is bolded right now, but I find the comment/user/timestamp line
a bit harder to parse (I'd vote for user/timestamp/comment with tabbed content,
so all the comments start at the same column)
- somehow, I ended up with a couple of incoming changes from last week that
would not go away (even after several updates). I suspect it's a bug, but
since the other income changes got processed correctly (and were removed
after the update) I thought I'd ask.

Best,
Andrei


0

Hi Dmitry,

I read that the commited/incoming feature is only supported by CVS, Perforce, SVN.
Do you plan to add a Clearcase implementation ?
If it's just a matter of being able to to 'preview' which elements would be changed after an update, it's available with the following command :

cleartool update –print

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

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

Gilles

0

Hello Andrei,

DJ>> Now that the build 6951 is out, it's high time to look at the new
DJ>> committed/incoming
DJ>> changes functionality and to judge whether it's an adequate
DJ>> replacement for
DJ>> TMate.

It looks great. Here are a few comments, suggestions:
- the ability to parse the comment for text patterns indicating bug reports
(like in Teamcity and TMate). Might be there, but I haven't found a way to
configure it.


Not yet there, but planned.

- the ability to allign (eventually reorder) the user/comment/date column.
The user is bolded right now, but I find the comment/user/timestamp line
a bit harder to parse (I'd vote for user/timestamp/comment with tabbed
content, so all the comments start at the same column)


We'd like to get some more feedback on that. Internally we liked the tree
UI better than the table which was there in previous builds.

- somehow, I ended up with a couple of incoming changes from last week that
would not go away (even after several updates). I suspect it's a bug, but
since the other income changes got processed correctly (and were removed
after the update) I thought I'd ask.


Yep, that's a bug. Steps to troubleshoot such problems:

- enable DEBUG logging for category "#com.intellij.openapi.vcs.changes.committed"
in log.xml
- press Refresh in Incoming Changes tab
- file a JIRA request and attach idea.log

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


0

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

These are all regarding the Incoming Changes window:

Needs collapse-all and expand-all actions.

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

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

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

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

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

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

0

One really small request. I'd like to see a small icon in the status bar, indicating there are incoming changes pending. Right next to where the TeamCity plugin puts its status icons would be most excellent. I do feel there should be something similar to the TMate graphical checkin metrics display available, but I'll be honest and say I never used it as much as I thought I would. Other than that, just some visual polishing and I'm most happy with the functionality.

--Dave Griffith

0

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.

Dmitry Jemerov wrote:

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?

0

Hello Dave,

One really small request. I'd like to see a small icon in the status
bar, indicating there are incoming changes pending. Right next to
where the TeamCity plugin puts its status icons would be most
excellent.


We'll see what we can do. :)

I do feel there should be something similar to the TMate
graphical checkin metrics display available, but I'll be honest and
say I never used it as much as I thought I would.


This is one thing that we definitely do not plan to implement in Selena.
This really belongs to TeamCity much more than to IDEA.

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


0

>> - the ability to allign (eventually reorder) the user/comment/date
>> column.
>> The user is bolded right now, but I find the comment/user/timestamp line
>> a bit harder to parse (I'd vote for user/timestamp/comment with tabbed
>> content, so all the comments start at the same column)


We'd like to get some more feedback on that. Internally we liked the
tree UI better than the table which was there in previous builds.


Please, please leave it as it is now! The tree UI is an immense
improvement over the previous table view. IMHO the current UI is
extremely readable and pleasant.

0

And of course pressing Ctrl+C on a tree entry should also copy the
commit message to clipboard. Currently it copies something like
org.jetbrains.idea.svn.history.SvnChangeList@f041838d

Martin Fuhrer wrote:

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.

Dmitry Jemerov wrote:

>> 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?
>>

0

Hello Dmitry,

DJ> We'd like to get some more feedback on that. Internally we liked the
DJ> tree UI better than the table which was there in previous builds.
DJ>

I like the tree structure more, as well (I didn't think that reordering those
columns would require a table control). It's just that, most of the time,
the user is the piece of information I browse by (since the lines are nicely
sorted by date) and I find it a bit jarring to have the user positioned all
over the place in that window (as the comments lengths vary more than anything
else in the line). So the ability to place the user first would be what I'd
vote for, mostly.

Best,
Andrei


0

Hello Andrei,

DJ>> We'd like to get some more feedback on that. Internally we liked
DJ>> the tree UI better than the table which was there in previous
DJ>> builds.
DJ>>

I like the tree structure more, as well (I didn't think that
reordering those columns would require a table control). It's just
that, most of the time, the user is the piece of information I browse
by (since the lines are nicely sorted by date) and I find it a bit
jarring to have the user positioned all over the place in that window
(as the comments lengths vary more than anything else in the line). So
the ability to place the user first would be what I'd vote for,
mostly.


Have you tried "Group by | User"?

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


0

As a counterpoint, I don't particularly care which user made the commit. I'm more interested in the commit message and, to a lesser degree, the timestamp.

0

Hello Dmitry,

DJ> Have you tried "Group by | User"?
DJ>

I have, but that's not what I want. When looking at the window, for me the
order of priorities is when (want the most recent first), who and then what
the comment says. The user has more importance than the comment and the current
view forces me to move my eyes all over the screen in order to spot who changed
things (and I'd avoid straining my eyes unnecessarily, if possible).

Note that TeamCity does the same priority sorting when showing results (if
there's only one user changing things, for instance, the user name is shown
for changes, or grouping changes by user when more than one change is displayed).

Best,
Andrei


0

Why am I always the only guy who doesn't get an answer in the forums :) ?...

Gilles

0

Hello Gilles,

Why am I always the only guy who doesn't get an answer in the forums
:) ?...


ClearCase is not my area of responsibility, and the developer responsible
for the ClearCase plugin is out of the office today. :)

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


0

Hello Dmitry,

>>
DJ> Have you tried "Group by | User"?
DJ>

OK, I guess you mean "Filter by | User". I just tried it now (I somehow missed
it and concentrated on the Group by functionality) and it's great! It seems
that my previous request is already covered by the current functionality,
so please disregard it.

Best,
Andrei


0

The VCS History cache settings really need to be separately accessible from the act of refreshing the cache. For one, once I have accepted the settings on the initial Refresh, I can't find where to change the settings. Also, even if it showed the settings dialog every time I pressed the Refresh button, if I want to turn off the automatic refreshing, I don't want to have to sit through a refresh after I've done so.

0

My working copy is up to date and yet Incoming is still showing changelists all the way back to Feburary.

0

Hello Gordon,

The VCS History cache settings really need to be separately accessible
from the act of refreshing the cache. For one, once I have accepted
the settings on the initial Refresh, I can't find where to change the
settings. Also, even if it showed the settings dialog every time I
pressed the Refresh button, if I want to turn off the automatic
refreshing, I don't want to have to sit through a refresh after I've
done so.


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. :)

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


0

Hello Gordon,

My working copy is up to date and yet Incoming is still showing
changelists all the way back to Feburary.


All changelists, or only some of them?

Incoming changes is refreshed in two phases: first, it updates the committed
changes, and then it tries to find the local files for each committed change
and checks if the local revision is equal or later than the revision of the
committed change. If you see all committed changes, just press Refresh on
the Incoming changes tab. If you see just some of the changes, then it'll
be necessary to investigate why the local files were not matched with some
of the changes.

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


0

Ah. I didn't think to look there. I think that's because when the dialog initially popped up, there was no context to indicate that it was actually a dialog from the VCS settings page. It seemed to be a dialog like the Update Project dialog which pops up every time you use Update Project. I didn't expect it to do the refresh without the dialog the second time I pressed the Refresh button.

0

- enable DEBUG logging for category
"#com.intellij.openapi.vcs.changes.committed"
in log.xml


Would this be the appropriate snippet to add?

Just before the ]]> element?

0

Hello Gordon,

>> - enable DEBUG logging for category
>> "#com.intellij.openapi.vcs.changes.committed"
>> in log.xml

Would this be the appropriate snippet to add?

<category name="#com.intellij.openapi.vcs.changes.committed">
<priority value="DEBUG"/>
</category>
Just before the <root> element?


Yes, this looks correct.

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


0

I believe I'm seeing only some of the changelists. I turned on debug for the #com.intellij.openapi.vcs.changes.committed category and I'm seeing stuff which seems to indicate that I may have parts of my working copy not updated correctly. Not sure yet, still investigating.

and then it tries to find the local files
for each committed change
and checks if the local revision is equal or later
than the revision of the
committed change.


How does this deal with having HEAD checked out and then a new commit is made on a branch? For instance, revision 1.5 checked out, there's a branch off that revision which has a new revision at 1.5.10.1. Would that branch commit be considered an incoming change? I would say it should not, simply because if I do an Update Project I won't get that change because it's not on the branch which I have checked out.

0

Hello Gordon,

>> and then it tries to find the local files
>> for each committed change
>> and checks if the local revision is equal or later
>> than the revision of the
>> committed change.

How does this deal with having HEAD checked out and then a new commit
is made on a branch? For instance, revision 1.5 checked out, there's a
branch off that revision which has a new revision at 1.5.10.1. Would
that branch commit be considered an incoming change? I would say it
should not, simply because if I do an Update Project I won't get that
change because it's not on the branch which I have checked out.


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

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


0

Please sign in to leave a comment.