Show classes you have changed

Forums for specific tips, techniques and example code
ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Show classes you have changed

Postby ConvertFromOldNGs » Fri Aug 07, 2009 2:16 pm

by Roger Parkinson >> Wed, 23 Jun 1999 9:11:09 GMT

Does anyone else have a use for this? Like lots of people we have multiple developers working in single user mode and merging at convenient intervals. So I spend lots of time writing down lists of classes I change on bits of paper and losing the bits of paper. Getting the list of methods changed (which you can do) doesn't tell you about attributes you added to the class etc so is not enough.

So I knocked up this thing. It is a jadescript method called displayDates and a method on the Class class which figures the last modified date (including properties and methods). It put them all into a list, sorts it by modified timestamp, and writes it out to the Output Viewer.

It is a bit ugly, but it is very simple, and you can see what has changed really easily. I made use of the undocumented schemaEntity.modifiedTimeStamp. I tried to get the user profile as well but that didn't work quickly enough to hold my attention, if anyone else knows....

Anyway, here it is. In spite of the file name it has nothing to do with Jade's delta facility.

Roger
Attachments
1463_1.zip
(1.25 KiB) Downloaded 168 times
Last edited by ConvertFromOldNGs on Fri Aug 07, 2009 3:55 pm, edited 1 time in total.

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: Show classes you have changed

Postby ConvertFromOldNGs » Fri Aug 07, 2009 2:16 pm

by Eric Peachey >> Thu, 24 Jun 1999 0:08:59 GMT

Have you looked at the Changed Methods option on the Browser menu? That probably does what you want.

In JADE 5 you'll find a lot of new facilities for doing this kind of thing - you can set a patch level for your schema and find all changes to classes since that patch level was defined. Changes would include changes to properties as well - something not previously available as JADE didn't seem to record when these were changed.

I'm not the best person to describe all the new features in JADE 5, but you'll find it has much better support for this kind of thing. Multiple developers working on separate copies of a schema is a nightmare - if you have a suitable network then in JADE 5 you can use the JADE Thin Client so that all developers are using the same schema - problem solved!

Eric in Dunedin

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: Show classes you have changed

Postby ConvertFromOldNGs » Fri Aug 07, 2009 2:16 pm

by Roger Parkinson >> Fri, 25 Jun 1999 2:02:46 GMT

Yes I have looked in the Changed Methods (I did refer to it in my note). Changed Methods doesn't tell you that you created a whole new dictionary class, added an attribute to another class and changed the protected status of, say, a reference.

If you didn't make any changes to the methods on any of these classes Changed Methods will not help you.

We use separate single user schemas for several reasons. One is that deltas are (shall I say it?) suspect. Everyone I have spoken to about them tried them and stopped using them. Another reason is that developers are not always physically in the same building, making organising a LAN more trouble than it is worth. At present deltas only help with changes to methods, which is the same issue I commented on above.

I have heard that Jade 5 has more features in this area. But I need them now, and maybe others do too.

Roger Parkinson

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: Show classes you have changed

Postby ConvertFromOldNGs » Fri Aug 07, 2009 2:16 pm

by Craig Shearer >> Fri, 25 Jun 1999 3:07:49 GMT

I agree that JADE was pretty lax in features for supporting multi-user development on distributed single-user development envirnoments.

Here at Wang I developed a tool for supporting this - basically it takes a snapshot of all the SchemaEntity objects in the system (which represent all your stuff like classes, properties, methods, constants etc.) then you do your development, then take another snapshot. Then the tool compares two snapshots and comes up with a report on what has changed. It generates .unl (unload parameter) files which can be used in a schema extract to extract what you've changed. Additionally, the tool generates a nice report that shows exactly what you've changed. The tool works by comparing timestamps on SchemaEntity objects to determine whether they've changed or not.

Unfortunately, the .unl format in JADE 4 doesn't support extraction of some stuff like global constants, so you'd need to either apply changes manually to a master copy, or create a .scm file by hand to do it.

Another means of doing this stuff that I have seen recently is to compare two .scm files on a textual basis, and come up with a new .scm file containing just the changes between them. This would also work well, provided you can accurately parse and detect changes in the .scm files.

JADE 5 seems to have a feature that allows you to set a patch, make changes then extract out changes made between one patch number and the next, and even extract only changes for a particular developer. This would allow you to do exactly what you require... still, you have to wait for JADE 5.0 to come out - hopefully, not too far away now.

Craig.


Return to “Tips and Techniques”

Who is online

Users browsing this forum: No registered users and 23 guests