I use ProjectHooks a lot in my day to day VFP development - for a variety of things:
a) copying the completed APP into a test and/or deployment directory
b) ensuring version #s are consistent across our remote development team
But what I'm always missing is a way to ensure the latest code is always checked in.
We deal with a lot of remote programmers so it's really important that if I finish working on something that it gets checked in so if others have to work on it, they can grab it without worry.
What I have found is that I can call
_VFP.ActiveProject.Files(1).Checkin()
and it will pull up the VSS Check-in utility BUT there's one gotcha:
it only works if you have the Project Builder open.
If you simply issue a BUILD EXE xxx FROM xxx, it won't run. Now I suppose, I COULD do a MODIFY PROJECT _VFP.ActiveProject.Name before hand and then let it go but is that really necessary?
I could also force an update by manually calling the internal check-in commands but that's a kludge. Has anyone else ever come across this - What did you do for a solution?
a) copying the completed APP into a test and/or deployment directory
b) ensuring version #s are consistent across our remote development team
But what I'm always missing is a way to ensure the latest code is always checked in.
We deal with a lot of remote programmers so it's really important that if I finish working on something that it gets checked in so if others have to work on it, they can grab it without worry.
What I have found is that I can call
_VFP.ActiveProject.Files(1).Checkin()
and it will pull up the VSS Check-in utility BUT there's one gotcha:
it only works if you have the Project Builder open.
If you simply issue a BUILD EXE xxx FROM xxx, it won't run. Now I suppose, I COULD do a MODIFY PROJECT _VFP.ActiveProject.Name before hand and then let it go but is that really necessary?
I could also force an update by manually calling the internal check-in commands but that's a kludge. Has anyone else ever come across this - What did you do for a solution?
Comments
I always worked from the Project Manager, but there's a neat hack: The PJX is just a table, and tables can be part of databases. Add the table to a database, and enable database events for the database. DBC_BeforeOpenTable gives you the "OnOpen()" method they didn't want to add to ProjectHooks.
I know the NOSHOW SHOULD work - but it messes things up if you're in the middle of a build while doing it.
Example:
Build exe xxx from xxx
(Starts the build hook)
In the build hook, I want to ensure we get all the latest code so I would have to do a
MODIFY PROJ xxx NOSHOW
_VFP.Activeproject.files(1).getlatest()
and that somehow breaks it for some strange reason.