Whenever I make changes to a tp component, I put the component folder under 
source control before I make the changes.  Once the changes are working, I 
check them in with appropriate log notes.  I can then check the version control 
to see what changes I made at any given time.  YOU can create or view a dif 
file that will tell you all the changes between two versions.  That will then 
guide you to making the same changes in the new tp supplied version.

E.g.
Revision 1
Original Virtual Tree 1

Revision 2..5 
Series of changes to VT by Chuck

Revision 6
New virtual tree from supplier

... Create diff file containing changes from 2..5
Apply diff file or manually make the changes 

Revision 7
Now has all Chuck changes

...
 

If you are not using version control, you should be.

I use subversion with the jedi integration. I wrote a series of posts on using 
subversion with Delphi:

http://sourceitsoftware.blogspot.com/2008/07/starting-out-with-delphi-and-subversion.html
 http://sourceitsoftware.blogspot.com/2008/07/subversion-server-options.html 
http://sourceitsoftware.blogspot.com/2008/07/common-tasks-with-subversion.html 
http://sourceitsoftware.blogspot.com/2008/08/subversion-add-ins-for-delphi.html

Regards
 
Sean Cross
CIO
Catalyst Risk Management


-----Original Message-----
From: delphi-boun...@elists.org [mailto:delphi-boun...@elists.org] On Behalf Of 
Chuck Belanger
Sent: Wednesday, 1 July 2009 6:14 a.m.
To: Delphi Listserve
Subject: How to manage changes I make to 3rd party source code in a project?

Hello:

As a self-taught Delphi user that has used D5, D7 and now D2007 over the 
last 9 years, I still feel that I'm a newbie about many issues. Here's 
one I need help on:

When moving a big project from D7 to D2007, I updated all the 3rd party 
code to their most recent code, but in so doing I forgot that there were 
a handful of pas files that I had to make changes to so that everything 
worked correctly. Last night I had to add a couple of lines of code to 
VirtualTrees.pas to check if a particular object (a tree node) was nil 
or not when called otherwise it is possible that users who click on 
checked nodes quickly, but miss the check box could end up with an error.

What I want to avoid is what happened in this transition from D7 to 
D2007--I spent many hours  trying to figure out what went wrong, only to 
discover that it was I who made changes to the code so that things 
worked as expected. In general I really dislike changing 3rd party code 
because of this. Now, my question is how does one properly manage this?

I added documentation in my code to indicate I did this, plus in the 3rd 
party pas, used a unique line identifier so that I can check for my own 
code changes, but that really is not enough. Should I add the unit to 
the project or move over the changed copy to my project and add that, or 
something else?

Thank you for any advice,

Chuck Belanger.
_______________________________________________
Delphi mailing list -> Delphi@elists.org
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi
_______________________________________________
Delphi mailing list -> Delphi@elists.org
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi

Reply via email to