Herman --
Regarding AutoVer, there is a new version 1.3.0 and a new URL for its forum:
http://bean.freeforums.org/autover-f2.html
I discovered both purely by accident.
I had some questions regarding upgrading procedure and versioning of
subfolders (look for cindysdad). Got response in only a few hours. I
haven't had a chance to implement suggestions yet though.
-- Keith
On 2/28/2010 05:12, Herman wrote:
Thanks Keith, yes I am using autover and I like the program very much.
Thanks Sanjiv Bansal, I could use compare programs but that would
introduce anther program and probably involve more steps for the user.
Thanks for the feedback everyone, a bit of discussion always makes the
brain work better!
Normally I develop in real-time on one computer while the system is
being tested in RT on other computers. Remote computer need to update
in real-time when I make changes on the development computer. Using
Windows Live Sync and a common/shared folder where all code/data
resides this is working nicely now. However because synchronization
uses the Internet it can be slow, I need to be able to verify in
real-time that all systems are running the same code.
I suddenly realized that the problem can be solved very simply but
adding a counter that increments each time a file in the system folder
is modified on the development computer. I save this count in a small
file in the system folder and read/display it on the main chart. This
count is communicated separately from the synchronization process
(visual, email, skype, etc). If on any of the remote computers the
count is different they have to be synchronized.
btw, below is a function to time-stamp (string) and display your
formulas. Not sure if this is useful for anyone but this timestamp
will update each time you Apply the formula.
best regards,
herman
// The next line must be the first line in your formula
Filename = StrLeft( _DEFAULT_NAME(), StrLen( _DEFAULT_NAME() ) - 2 ) +
".afl";
*function* GetFormulaTimeStamp( Path )
{
*global* FileName;
DN = fgetstatus( Path + Filename, 1, 3 );
TN = fgetstatus( Path + Filename, 1, 4 );
TSs = NumToStr( DN, 1.0, *False* ) + NumToStr( TN, 1.0, *False* );
*return* TSs;
}
Path = "C:\\Program Files (x86)\\AmiBroker\\Formulas\\Custom\\";
TS = GetFormulaTimeStamp( Path );
*Title* = Filename + "\nFormula TimeStamp: " + TS;
Herman --
This does not answer the question you asked. But along a similar
line, I use a free program called AutoVer to automatically save every
version of .afl code that I write and/or modify. You can find it here:
http://beanland.net.au/autover/ <http://beanland.net.au/autover/>
It's most helpful when my obvious fix is not a fix at all and I have
to back peddle unexpectedly (multiple versions ago).
-- Keith
On 2/27/2010 13:59, Herman wrote:
Thanks Dennis,
I have been using revision numbers but I make so many edits (often
during RT Testing) that it is too easy to apply the code without
incrementing the revision number. It has happened way too many times
that same-name files contained slightly different code, when this
happens a lot of time can be wasted trying to get the remote person in
sync. That is why I want to automatically sample the DateTime the
formula is last modified. If this is not possible then the best
solution is to sum all DTs in the master folder. This folder however
may contains files not used by the system (Docs etc) and also
sometimes files used by the system are located elsewhere.
Not sure yet how to solve this yet... I have a feeling I am missing a
simple solution. Perhaps Windows Live Sync works better than I
expect... however I noticed that there is a delay before files are
updated - this is what worries me - one could apply a formula before
it was updated.
best regards,
herman
Herman,
Good idea. One possibility is build it into each module. If your
formulas are based on smaller include modules, then you can include a
sequence number based on a shortened date and edit number of the last
change 20100227 edit 1 (e.g., 00227.01), then any edits to the code
requires bumping the sequence number in the first line of the code:
checksum += 00227.01;
Your top level system:
checksum = 0;
theExpectedChecksum = someConstant;
// All the includes go here
If (checksum != theExpectedChecksum )
{
//popup the expected vs calculated result
}
The first time after a change, the warning will give the right result
that can be edited into the top level value of theExpectedChecksum.
BR,
Dennis
On Feb 27, 2010, at 10:07 AM, Herman wrote:
Hello,
I would like to create a System-CheckSum, for example sum the
last DateTime of each of the component formulas and/or data files used
by the system. This would provide me, based on a single number, a way
to verify that all computers are using the same code and using the
same data files. I know files are supposed to be synchronized but I
would feel better if there were an additional Check. I can't simply
sum the DT of all shared files because not all are always used.
I played with the code below and even tried using an include to read
the DateTime of the formula including it. But I can't get it to go.
There must be an easier/better way but it has to be automated.
Is anyone doing this or have any ideas?
Thanks,
herman
Filename = "C:\\SharedFormulas\ <smb://SharedFormulas//>\
<smb://SharedFormulas//>"+StrLeft(_DEFAULT_NAME(),StrLen(_DEFAULT_NAME())-2);
FileModified= fgetstatus( Filename, 1, 3 );
// CheckSum = sum of FileModified DTs