STORE question...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

STORE question...

Anderson, Kimberly

Hi all,
 
My main headache with STORE is the lack of relationship between classes and methods.
In ENVY, I could easily browse versions of a class to see when particular methods were added or removed.
How can I do this in STORE?
Versions of a class in STORE seem to only keep track of class definition changes.
 
I posted this question on comp.lang.smalltalk and got a couple of replies but they dont quite solve my problem.
 
thanks for any help.
Kimberly
 


This e-mail and any files transmitted with it contain confidential and privileged information intended solely for the use of the individual to whom they are addressed.

If you received this e-mail in error please inform the sender and delete it. You may not use/distribute or copy it or take any action as a consequence of its content.

Recipients are reminded that e-mail is an insecure communication medium and we accept no responsibility for any losses, incurred as a result of fictitious or falsified messages. If in doubt recipients should take action to verify the authenticity of any message received.

This footnote also confirms that this e-mail message has been swept by MIMEsweeper for the presence of computer viruses. E-mails and their contents can be monitored.

RMB Investment Services Limited is licensed by the Guernsey Financial Services Commission to conduct Investment Business.

A member of the FirstRand Group

This email and all content are subject to the following disclaimer:

http://content.momentum.co.za/content/legal/disclaimer_email.htm

Reply | Threaded
Open this post in threaded view
|

Re: STORE question...

OCIT
well, the closest thing to that is something that is at least not quite  
ready in my 7.4 image but perhaps already working in the public repository.

I believe its the Glorp framework or probably rather the StoreForGlorp. A  
menu option is added to the RB browser namely "(Prototype) Browse Class  
versions"

currently in my image it does take a bit to load all the class versions  
but once loaded the browser will show you the methods associated to the  
specific class version, unfortunately I get the following bug when I try  
to click on a protocol, again this may have been fixed by now. I guess  
Alan would know.

Here is the bug I get:

Unhandled exception: BlockClosure [] in Object>>doesNotUnderstand:
Glorp.StoreClassExtension(Object)>>doesNotUnderstand:
Refactory.CodeHighlighter.CodeHighlightingParser>>findNamespaceFor:
Refactory.CodeHighlighter.CodeHighlightingParser>>formatVariableReference:
Refactory.CodeHighlighter.CodeHighlightingParser>>reduceActionForPrimary3:
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performReduceMethod:with:
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>reduce:
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performAction:
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performParsingLoop
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>parse
optimized [] in Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
BlockClosure>>on:do:
Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
optimized [] in  
Refactory.CodeHighlighter.HighlightingTextEditorController>>startHighlighting:
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Glorp.StoreClassExtension(Object)>>doesNotUnderstand:
Receiver:
        a Glorp.StoreClassExtension
Instance Variables:
        organization = ('database retrieval - Stats')
('view management')
('port VW3.0')
('initialize-release')
('database updates')
('model massaging')
('startup-shutdown')
('profile processing')
('accessing')
('database retrieval - Gen')
('database retrieval')
('database retrieval - Upd')

        classDefinition = (StoreClassDefinition(Root.Smalltalk.DsDbInterface) in  
{StorePackage(TradeBlazer - Main Classes,1.65.17)})
        classMethods = an IdentitySet[28]
        name = '1.65.17'
        longName = '1.65.17'
        package = StorePackage(TradeBlazer - Main Classes,1.65.17)
        instanceMethods = an IdentitySet[214]
        metaclass = nil
        sharedVariables = an IdentitySet[0]
Arguments:
        aMessage = a Message with selector: #environment and arguments: #()
Temporaries:
        excpt = a MessageNotUnderstood
        resumeValue = nil
Context PC = 25

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser>>findNamespaceFor:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        aBindingReference = #{selector}
Temporaries:
        isAbsolute = false
        pathString = 'selector'
        home = nil
Context PC = 37

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser>>formatVariableReference:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        aSmaCCToken = {selector(9,16,#(20))}
Temporaries:
        ref = #{selector}
        binding = nil
Context PC = 112

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser>>reduceActionForPrimary3:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        nodes = an OrderedCollection[1]
Context PC = 7

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performReduceMethod:with:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        aSymbol = #reduceActionForPrimary3:
        items = an OrderedCollection[1]
Context PC = 13

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>reduce:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        anInteger = 58
Temporaries:
        reduceEntry = an Array[3]
        items = an OrderedCollection[1]
        size = 1
Context PC = 49

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performAction:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Arguments:
        action = 234
Temporaries:
        value = 58
        actionType = 2
Context PC = 38

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>performParsingLoop
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Temporaries:
        action = 234
Context PC = 20

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser(Refactory.SmaCC.SmaCCParser)>>parse
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser
Instance Variables:
        scanner = a Refactory.CodeHighlighter.CodeHighlightingScanner
        currentToken = {and(18,20,#(20))}
        errorToken = nil
        stateStack = an OrderedCollection[3]
        nodeStack = an OrderedCollection[2]
        text = Text for 'message selector and argument...variable names |
        statements'
        string = 'message selector and argument...variable names |
        statements'
        class = 1.65.17
        temps = an OrderedCollection[0]
        args = an OrderedCollection[0]
        blockArgs = an OrderedCollection[0]
        namespace = nil
Context PC = 7

----------------------------------------------------------------------
optimized [] in Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
Receiver:
        an UndefinedObject
Temporaries:
        .parser = a Refactory.CodeHighlighter.CodeHighlightingParser
Context PC = 5

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in  
Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
        outerContext = nil
        copiedValues = a Refactory.CodeHighlighter.CodeHighlightingParser
Arguments:
        anExceptionSelector = Refactory.SmaCC.SmaCCParserError
        handlerBlock = BlockClosure [] in  
Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
Context PC = 18

----------------------------------------------------------------------
Refactory.CodeHighlighter.CodeHighlightingParser  
class>>formatMethod:forClass:namespace:
Receiver:
        a Refactory.CodeHighlighter.CodeHighlightingParser class
Instance Variables:
        superclass = Refactory.SmaCC.SmaCCParser
        methodDict = a MethodDictionary[144]
        format = 16396
        subclasses = nil
        instanceVariables = an Array[7]
        organization = ('private' #actionForCurrentToken #addTemp: #addTemps  
#findErrorHandlerIfNoneUseErrorNumber: #findNamespaceFor:  
#isBlockArgument: #isInstanceVariable: #isMethodArgument:  
#isTemporaryVariable: #isValidMessage:for: #lookupClassFor: #removeTemps)
('initialize-release' #class: #initialize #text:)
('private-error handling' #dismissErrorToken #errorHandlerStates  
#handleError: #patchErrorHandlerStates:)
('formatting' #formatArrayHash:leftParenthesis:rightParenthesis:  
#formatArrayLeftBrace:rightBrace: #formatAssignedVariable:  
#formatAssignment: #formatBinaryMethod:with:  
#formatBlockArgumentSeparator: #formatBlockVariable:colon:  
#formatByteArrayHash:leftBracket:rightBracket: #formatCascade:  
#formatCharacter: #formatComment: #formatFalse: #formatFrom:to:with:  
#formatKeyword:with: #formatLeftBracket: #formatLeftParenthesis:  
#formatMessage:to: #formatMethodArgument: #formatNil: #formatNumber:  
#formatPeriod: #formatPrimitiveFrom:to:  
#formatQualifiedReferenceHash:leftBrace:rightBrace: #formatReturn:  
#formatRightBracket: #formatRightParenthesis: #formatSelf: #formatString:  
#formatSuper: #formatSymbol:hash: #formatSyntaxError  
#formatSyntaxErrorFrom:to: #formatTemporaryVariable: #formatToken:with:  
#formatTrue: #formatUnaryMethod: #formatVariableReference:)
('accessing' #namespace #namespace:)
('generated-reduction actions' #reduceActionForArray4:  
#reduceActionForBinaryMessage1: #reduceActionForBinaryMessageSend1:  
#reduceActionForBinaryMessageSend2: #reduceActionForBinaryMessageSend3:  
#reduceActionForBinaryMethodName1: #reduceActionForBlock1:  
#reduceActionForBlock2: #reduceActionForBlock3: #reduceActionForBlock4:  
#reduceActionForBlockArgs1: #reduceActionForBlockArgs2:  
#reduceActionForCascade1: #reduceActionForCascade2:  
#reduceActionForCascade3: #reduceActionForCascadeList1:  
#reduceActionForCascadeList2: #reduceActionForExpression1:  
#reduceActionForExpression2: #reduceActionForKeywordMessage1:  
#reduceActionForKeywordMessage2: #reduceActionForKeywordMessageSend1:  
#reduceActionForKeywordMessageSend2: #reduceActionForKeywordMessageSend3:  
#reduceActionForKeywordMethodName1: #reduceActionForKeywordMethodName2:  
#reduceActionForKeywordMethodName3: #reduceActionForLiteral10:  
#reduceActionForLiteral11: #reduceActionForLiteral12:  
#reduceActionForLiteral13: #reduceActionForLiteral14:  
#reduceActionForLiteral15: #reduceActionForLiteral16:  
#reduceActionForLiteral17: #reduceActionForLiteral1:  
#reduceActionForLiteral2: #reduceActionForLiteral3:  
#reduceActionForLiteral4: #reduceActionForLiteral5:  
#reduceActionForLiteral6: #reduceActionForLiteral7:  
#reduceActionForLiteral8: #reduceActionForLiteral9:  
#reduceActionForMethodSequenceNode1: #reduceActionForObjectStudioArray4:  
#reduceActionForOptional_____1: #reduceActionForOptional_____2:  
#reduceActionForPrimary1: #reduceActionForPrimary2:  
#reduceActionForPrimary3: #reduceActionForPrimary4:  
#reduceActionForPrimary5: #reduceActionForPrimitiveMessageSend10:  
#reduceActionForPrimitiveMessageSend11:  
#reduceActionForPrimitiveMessageSend2:  
#reduceActionForPrimitiveMessageSend3:  
#reduceActionForPrimitiveMessageSend4:  
#reduceActionForPrimitiveMessageSend5:  
#reduceActionForPrimitiveMessageSend6:  
#reduceActionForPrimitiveMessageSend7:  
#reduceActionForPrimitiveMessageSend8:  
#reduceActionForPrimitiveMessageSend9: #reduceActionForPrimitives2:  
#reduceActionForPrimitives3: #reduceActionForSequenceNode1:  
#reduceActionForSimpleMessage1: #reduceActionForSimpleMessage2:  
#reduceActionForSimpleMessage3: #reduceActionForStatementList2:  
#reduceActionForStatementList3: #reduceActionForStatements2:  
#reduceActionForStatements3: #reduceActionForStatements4:  
#reduceActionForStatements5: #reduceActionForStatements6:  
#reduceActionForTemporaries1: #reduceActionForTemporaries2:  
#reduceActionForTemporaryVariables1: #reduceActionForTemporaryVariables2:  
#reduceActionForUnaryMessage1: #reduceActionForUnaryMessageSend1:  
#reduceActionForUnaryMessageSend2: #reduceActionForUnaryMethodName1:)
('generated-tables' #reduceTable #transitionTable)

        name = #CodeHighlightingParser
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[5]
        stylesToRemove = an Array[37]
        styles = nil
Arguments:
        aText = Text for 'message selector and argument...variable names |
        statements'
        aClass = 1.65.17
        aNamespace = nil
Temporaries:
        parser = a Refactory.CodeHighlighter.CodeHighlightingParser
Context PC = 34

----------------------------------------------------------------------
optimized [] in  
Refactory.CodeHighlighter.HighlightingTextEditorController>>startHighlighting:
Receiver:
        an UndefinedObject
Temporaries:
        win = nil
        event = nil
        .delay = 0
        .self = a Refactory.CodeHighlighter.HighlightingTextEditorController
        .localText = Text for 'message selector and argument...variable names |
        statements'
        .class = 1.65.17
        .namespace = nil
        .uiPriority = 50
Context PC = 23

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in  
Refactory.CodeHighlighter.HighlightingTextEditorController>>startHighlighting:
        outerContext = nil
        copiedValues = an Array[6]
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in  
Refactory.CodeHighlighter.HighlightingTextEditorController>>startHighlighting:
Context PC = 9


On Tue, 29 Aug 2006 09:44:19 -0400, Anderson, Kimberly  
<[hidden email]> wrote:

>
> Hi all,
> My main headache with STORE is the lack of relationship between classes  
> and methods.
> In ENVY, I could easily browse versions of a class to see when  
> particular methods were added or removed.
> How can I do this in STORE?
> Versions of a class in STORE seem to only keep track of class definition  
> changes.
> I posted this question on comp.lang.smalltalk and got a couple of  
> replies but they dont quite solve my problem.
> thanks for any help.
> Kimberly
>
>
> This e-mail and any files transmitted with it contain confidential and  
> privileged information intended solely for the use of the individual to  
> whom they are addressed.
>
> If you received this e-mail in error please inform the sender and delete  
> it. You may not use/distribute or copy it or take any action as a  
> consequence of its content.
>
> Recipients are reminded that e-mail is an insecure communication medium  
> and we accept no responsibility for any losses, incurred as a result of  
> fictitious or falsified messages. If in doubt recipients should take  
> action to verify the authenticity of any message received.
>
> This footnote also confirms that this e-mail message has been swept by  
> MIMEsweeper for the presence of computer viruses. E-mails and their  
> contents can be monitored.
>
> RMB Investment Services Limited is licensed by the Guernsey Financial  
> Services Commission to conduct Investment Business.
>
> A member of the FirstRand Group
>
> This email and all content are subject to the following disclaimer:
>
> http://content.momentum.co.za/content/legal/disclaimer_email.htm
>
>



--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Reply | Threaded
Open this post in threaded view
|

Re: STORE question...

Alan Knight-2
At 11:40 AM 8/29/2006, Charles A. Monteiro wrote:

>well, the closest thing to that is something that is at least not quite  
>ready in my 7.4 image but perhaps already working in the public repository.
>
>I believe its the Glorp framework or probably rather the StoreForGlorp. A  
>menu option is added to the RB browser namely "(Prototype) Browse Class  
>versions"
>
>currently in my image it does take a bit to load all the class versions  
>but once loaded the browser will show you the methods associated to the  
>specific class version, unfortunately I get the following bug when I try  
>to click on a protocol, again this may have been fixed by now. I guess  
>Alan would know.

I haven't tried it in 7.4 lately. In 7.4.1 there seems to be a bug with the distribution version that it doesn't pre-read the source, and it disconnects the session, so you get a walkback clicking on the method. But if you load the latest versions of GlorpVWPort, Glorp, and StoreGlorp from the public repository it should work.

It's also very prototype-quality. Lots of browser options won't work, and it can be quite slow, depending on the database and the particular class. But I do find it quite useful anyway.


--
Alan Knight [|], Cincom Smalltalk Development
[hidden email]
[hidden email]
http://www.cincom.com/smalltalk

"The Static Typing Philosophy: Make it fast. Make it right. Make it run." - Niall Ross

Reply | Threaded
Open this post in threaded view
|

Re: STORE question...

Jan Lukeš
In reply to this post by Anderson, Kimberly
concerning migrating from ENVY to Store
I faced following problems:

1) Store doesn't support "automatic on-line" mode, when all changes are stored in repository
   (e.g. all accepted methods) only manual publishing is possible
2) Store doesn't support versions of classes, only whole packages are units of repository
   it can be seen as a lack of granularity
3) comparing history doesn't support hierarchy
   no hierarchical view of changes in bundles,packages
4) comparing 2 selected versions is complicated
   select one then select "compare with"
     then select another from list is too complicated
5) missing hierarchy of bundles/packages+classes (~Application manager in ENVY)
   Loaded/Published items are only one-level
   and standard package browser is not high enough for such a purpose
6) version names are not directly visible
7) no filtering for blessing level, only one-level list
   hierarchy necessary for mixing scratch/editions/versions
8) no support for export/import of whole history
    several versions together
9) very slow and manual publishing of "base" at the beginning
   and complicated by errors
10) Store doesn't support renaming and moving classes (methods)
   all history is lost
11) only global "garbage collection"
    choosing particular versions is necessary
12) minor things:
    - manual switching to "show code differences"
    - parts of compare window can't be resized



I solved some issues by modifying some tools
    generally I used (1 class - 1 package) principle in order to get what I need
(my changes are published as JExpTools in Cincom Public Repository
really prototype version - it works unless you are using something that I don't need)

what I did:
   1) menu Store->Packages like "Application manager"
   2) show versions - bundles, packages, classes
   3) show only direct classes in bundle
   4) colored modified bundles
   5) colored versions according to blessing level
   6) hiding packages (1 class - 1 package)
   7) class menu - add package actions
   8) colored modified classes
   9) package versions - also image version
   10) new class, extension - create package first
   11) rename class - rename package first
   12) published items - show contents directly (with versions)
   13) "on-line" mode - each accept published as scratch .x
   14) "unbranching" scratches when publishing manually

to be done:
   1) hierarchical compare tool
   2) migration of complete history from Envy to Store

hope it can help at least as an inspiration
Jan Lukes

Anderson, Kimberly napsal(a):

Hi all,
 
My main headache with STORE is the lack of relationship between classes and methods.
In ENVY, I could easily browse versions of a class to see when particular methods were added or removed.
How can I do this in STORE?
Versions of a class in STORE seem to only keep track of class definition changes.
 
I posted this question on comp.lang.smalltalk and got a couple of replies but they dont quite solve my problem.
 
thanks for any help.
Kimberly
 

This e-mail and any files transmitted with it contain confidential and privileged information intended solely for the use of the individual to whom they are addressed.

If you received this e-mail in error please inform the sender and delete it. You may not use/distribute or copy it or take any action as a consequence of its content.

Recipients are reminded that e-mail is an insecure communication medium and we accept no responsibility for any losses, incurred as a result of fictitious or falsified messages. If in doubt recipients should take action to verify the authenticity of any message received.

This footnote also confirms that this e-mail message has been swept by MIMEsweeper for the presence of computer viruses. E-mails and their contents can be monitored.

RMB Investment Services Limited is licensed by the Guernsey Financial Services Commission to conduct Investment Business.

A member of the FirstRand Group

This email and all content are subject to the following disclaimer:

http://content.momentum.co.za/content/legal/disclaimer_email.htm



IMPORTANT: The contents of this email and any attachments are confidential. They are intended for the named recipient(s) only.
If you have received this email in error, please notify the system manager or the sender immediately and do not disclose the contents to anyone or make copies thereof.
*** eSafe scanned this email for viruses, vandals, and malicious content. ***

Reply | Threaded
Open this post in threaded view
|

Re: STORE question...

Steve Aldred
In reply to this post by Anderson, Kimberly
Anderson, Kimberly wrote:
>
> My main headache with STORE is the lack of relationship between
> classes and methods.
> In ENVY, I could easily browse versions of a class to see when
> particular methods were added or removed.
> How can I do this in STORE?
> Versions of a class in STORE seem to only keep track of class
> definition changes.

When looking at the Published Items list you can 'compare versions' of a
package. You can then 'Compare Packages' and see all of the class/method
changes.

I haven't looked at how it does this but if there isn't already a menu
option somewhere for comparing method changes in a class it should be
possible to create one using the same techniques

cheers
Steve A

Reply | Threaded
Open this post in threaded view
|

Re: STORE question...

Jan Lukeš
Steve Aldred napsal(a):

> Anderson, Kimberly wrote:
>>
>> My main headache with STORE is the lack of relationship between
>> classes and methods.
>> In ENVY, I could easily browse versions of a class to see when
>> particular methods were added or removed.
>> How can I do this in STORE?
>> Versions of a class in STORE seem to only keep track of class
>> definition changes.
>
> When looking at the Published Items list you can 'compare versions' of
> a package. You can then 'Compare Packages' and see all of the
> class/method changes.
I would say that this is a very simple tool
instead of hierarchy of bundles/packages (in browser) which I would expect
    it presents just text information (no interaction is possible)
highlighting of changes is done just as a text comparing on version names

"compare packages" opens separate window for each pair of packages
    which is completely unusable for larger sets

so I'm really missing ENVY-like tool for comparing two versions of
application
    I mean in one browser window:
          first component - (hierarchy of) subapplications with differences
          second component - (list of) classes with differences
          third component - (list of) methods with differences
          and comparison of method bodies at the bottom

Jan Lukes
**********************************************************************************************
IMPORTANT: The contents of this email and any attachments are confidential. They are intended for the
named recipient(s) only.
If you have received this email in error, please notify the system manager or the sender immediately and do
not disclose the contents to anyone or make copies thereof.
*** eSafe scanned this email for viruses, vandals, and malicious content. ***
**********************************************************************************************