tmate feature requests

Alexander, I must say that tmate has become one of my most favorate and
relied upon plugins. I used to try to monitor commits with viewcvs and
its commit script that populated mysql. But that was always troublesome.
Tmate is much cleaner and way way way better in usability. Thanks very
much!!!

Oh, and since I had some problem with 0.0.29, let me mention that the
only problems I have expirience with .30 are the 'Go to source' not
working and being prompted to define the connection upon startup of idea
even though I specified that the connection was to be saved in the
project. After resetting the connection however, all other information
(eg, the components and modules) were restored and tmate worked fine.


Now that I have softened you up ;), here are my ideas for new
features/changes:

- Whenever possible use the same keys as the CVS plugin for similar
functionality. For example, I have Alt-= for doing a CVS comparison to
the head revision. Using Enter in tmate requires me to remember another
keymapping for a very similar (but not identical) function.

- Allow for triggering all CVS actions from files in the tmate pane. For
example, when I see the change 'v1.4 => v1.5' I often want to see the
entire CVS history. Currently I would have to open the file, then
trigger the CVS action. (Well, currently I have to open the file via
idea's 'Goto class' because tmate's 'Go to source' does not work.)

- Provide for an 'Autoscroll to Source' toggle (like the standard idea
feature). This would trigger the 'Go to source' action.

- Allow for collapsing files under different modules (ie, don't show the
modules as nodes in the tree). I would have expected to be able to do
this via the 'Group by' but cannot. My 'Group by' contains:
"Week.Date.User". But the module is still shown in the tree.


-



And, if there is any way I can help, don't hesitate to ask.

-barry

9 comments

Hello Barry,

Thank you for so positive feedback, it inspires me a lot!

+- Whenever possible use the same keys as the CVS plugin for similar
functionality. For example, I have Alt-= for doing a CVS comparison to
the head revision. Using Enter in tmate requires me to remember another
keymapping for a very similar (but not identical) function.+

Good point! I've just implemented this request for all CVS-related actions. Thank you for discovering the problem!

+- Allow for collapsing files under different modules (ie, don't show the
modules as nodes in the tree). I would have expected to be able to do
this via the 'Group by' but cannot. +

You may get rid of "module" nodes inside "change" node using grouping by module, so that "module" nodes will be displayed above the "change" nodes in the changes tree and "change" nodes will contain only files, without intermidiate level. Anyway, I will add an option to hide "module" nodes completely (files will be displayed like "[module name] : path") in the build 0.0.32

Now I'm working on the new features for the build 0.0.31, so your requests related to the "Go to source" action, autoscroll and "CVS" menu will be implemented in the build 0.0.32 as well. I agree that such features are "must have" and should be included into the first realse.

The common problem, that prevents me from implementing those features right now is that I do not have the code that locates CVS roots in the project, i.e. finds project folder mathcing CVS module root. For instance, "Go to source" now works the following way:

- it interates all the content roots
- looks for the file "root/path"
- opens file if one exists

and in your project, probably, CVS roots doesn't correspond to the content roots of the project. Having a code that locates folder matching CVS module root will also open a way to implementing other features, such as "Rollback".

Thank you once more for the useful feedback!
Alexander Kitaev.

0

Hello,

I've just published build 0.0.32 that contains features that cover some of your requests. In particular, there is "CVS History" action integrated into TMate window, autroscroll to source option, "Goto Source" changed such way that it should work correctly now in most of the cases, option to hide "module" node inside transaction.

Thank you for evaluating the plugin!
Alexander Kitaev

0

Yes, I just installed. Thanks very much!!!

However..... (I posted this as reply to your announcment also) ... only
one of the three work for me. The cvs history and goto source do not
work. The goto source (and autoscroll) simply do nothing, providing no
feedback. The cvs history is always dimmed. How can help to determine
why this might be?


Alexander Kitaev wrote:

Hello,

I've just published build 0.0.32 that contains features that cover some of your requests. In particular, there is "CVS History" action integrated into TMate window, autroscroll to source option, "Goto Source" changed such way that it should work correctly now in most of the cases, option to hide "module" node inside transaction.

Thank you for evaluating the plugin!
Alexander Kitaev


0

Update: The autoscroll /does/ work the 'TMate Changes' panel (but not
for the 'TMate' panel).

Also, I forget to mention, since the cvs history is always dimmed, alt-h
opens the idea help menu on the menubar. I suppose is the proper
behavior when the action is unavailable.

0

Another update. I just updated from 1138 to 1141 and the connection
settings /were/ retained. So I guess never mind on that previous issue.

0

Hello Barry,

If you've upgraded to TMate version 0.0.34, could you please start IDEA with the following command line option:

and try to "go to source" from the TMate window. tmate.log.txt file will be created in IDEA_SYSTEM_PATH/tmate/ folder that will contain details about how TMate tries to match repository file with the one in the project. If this feature (Go to Source) doesn't work in your environment could you please send me this log file?

Thanks a lot in advance!
Alexander Kitaev.

0

Ok Alexander, here is a log file. I opened idea and did a goto source
for just a few files. My cvs module structure and idea module structure
are the same as I described before. Hope this helps.

-bk



[F.A:541] building local modules for: trading
[F.A:554] processing content root:
C:/cvs.local/its.dev/infrastructure
[F.A:554] processing content root:
C:/cvs.local/its.dev/deployment
[F.A:554] processing content root:
C:/cvs.local/its.dev/clients/webtrader
[F.A:554] processing content root:
C:/cvs.local/its.dev/trading/src/api
[F.A:554] processing content root:
C:/cvs.local/its.dev/clients/webadmin
[F.A:554] processing content root: C:/cvs.local/its.dev
[F.A:554] processing content root:
C:/cvs.local/its.dev/clients/webclient
[F.A:554] processing content root:
C:/cvs.local/its.dev/clients/webcommon
[F.A:554] processing content root:
C:/cvs.local/its.dev/thirdparty
[F.A:561] revisions found: 9
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/infrastructure
[D.A:35] creating local module for:
C:/cvs.local/its.dev/infrastructure, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: infrastructure
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/deployment
[D.A:35] creating local module for:
C:/cvs.local/its.dev/deployment, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: deployment
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/clients/webtrader
[D.A:35] creating local module for:
C:/cvs.local/its.dev/clients/webtrader, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: clients/webtrader
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/trading/src/api
[D.A:35] creating local module for:
C:/cvs.local/its.dev/trading/src/api, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: trading/src/api
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/clients/webadmin
[D.A:35] creating local module for:
C:/cvs.local/its.dev/clients/webadmin, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: clients/webadmin
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root: C:/cvs.local/its.dev
[D.A:35] creating local module for: C:/cvs.local/its.dev,
trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: all
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/clients/webclient
[D.A:35] creating local module for:
C:/cvs.local/its.dev/clients/webclient, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: clients/webclient
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/clients/webcommon
[D.A:35] creating local module for:
C:/cvs.local/its.dev/clients/webcommon, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: clients/webcommon
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:565] processing local CVS root:
C:/cvs.local/its.dev/thirdparty
[D.A:35] creating local module for:
C:/cvs.local/its.dev/thirdparty, trading
[D.A:40] Local CVS Root:
:pserver:cvs.somehost.com:2401:2401/cvs/its
[D.A:41] Local Module Name: thirdparty
[D.A:42] Local Branch: HEAD
[D.A:45] Remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its/trading
[D.A:47] Remote Module Name: trading
[D.A:49] Converted remote CVS Root:
:pserver:cvs.somehost.com:2401:/cvs/its
[D.A:51] Remote root doens't match to local one
[F.A:571] can't create local module
[F.A:574] totally 0 local modules was created
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths
[Q.B:812] local module : trading
[F.A:494] looking in 0 local modules
[F.A:503] resolved 0 paths

Alexander Kitaev wrote:

Hello Barry,

If you've upgraded to TMate version 0.0.34, could you please start IDEA with the following command line option:


and try to "go to source" from the TMate window. tmate.log.txt file will be created in IDEA_SYSTEM_PATH/tmate/ folder that will contain details about how TMate tries to match repository file with the one in the project. If this feature (Go to Source) doesn't work in your environment could you please send me this log file?

Thanks a lot in advance!
Alexander Kitaev.


--
Barry Kaplan
Integrated Trading Solutions
bkaplan@integratedtrading.com

0

Hello,

Thank you for posting the log file! It helps a lot. Looking at the log file I've discovered that your local CVSROOT is processed incorrectly, so the result is ":pserver:host:2401:2401/path" (incorrect). I've made a mistake assuming that host and path in the CVSROOT string are always separated by ':' symbol (like :protocol:[user@]host[:port]:/path) that is not correct. CVSROOT actually could be defined as :protocol:[user@]host[:port][:]/path as it is in your project. Now the bug is fixed and I hope that TMate features depending on the local CVSROOT detection will work fine with your project in the next TMate build.

Thank you for your help!
Alexander Kitaev.

0

Excellent. I anxiously await.


Alexander Kitaev wrote:

Hello,

Thank you for posting the log file! It helps a lot. Looking at the log file I've discovered that your local CVSROOT is processed incorrectly, so the result is ":pserver:host:2401:2401/path" (incorrect). I've made a mistake assuming that host and path in the CVSROOT string are always separated by ':' symbol (like :protocol:[user@]host[:port]:/path) that is not correct. CVSROOT actually could be defined as :protocol:[user@]host[:port][:]/path as it is in your project. Now the bug is fixed and I hope that TMate features depending on the local CVSROOT detection will work fine with your project in the next TMate build.

Thank you for your help!
Alexander Kitaev.


--
Barry Kaplan

0

Please sign in to leave a comment.