Hi Paul,

thanks very much for your quick response.

>> fossil and sqlite solve that somehow by being compiled :-) -- they just
>> compile the information from those manifest files in their final
>> executable, but thats not a reasonable approach for scripts that are
>> executed by an interpreter.
> 
> Actually, both fossil and sqlite use their build interpreter ('make' and
> 'tcl' respectively) to process the manifest files into source code. What
> stops your interpreter from doing the same? It could perform all the
> functions you require, perhaps using additional info made available
> through the manifest.

Well, usually scripts checked in some version control system are simply 
ready to run (executable bit set) as they are and don't require a 
'preprocessing' step to generate some kind of executable (in contrast to 
C/C++ programs like sqlite and fossil) . The source *is* the executable so 
to say.

That means you cannot distribute this executable versioned unless you either 
distribute the manifest files altogether with the script or you somehow 
change it after checkout/update/commit by some helper scripts to include the 
version inside. If you distribute your script to someone else I find it 
rather unconvinient to give hime some "detached version information" like 
the manifest files that for sure will be lost, not noticed or not unpacked 
properly on the other side.

Of course I can also imagine checking in only some 'skeleton' for the script 
and let make or other tools create the real script from this skeleton and 
the manifest and whatever on demand as you propose above, but then changes 
in the script cannot be done in-place for the next check in. You have to 
edit the skeleton and create the script from it each time. It simply adds 
two (IMHO unnecessary?) steps in the development workflow if you would like 
to have a version embedded in the script. (Note there are also no commit 
hooks in fossil to automate that, this would have been another possible 
approach)

> Personally I've always considered 'in source' markers as a bad hack,
> rooted in now ancient tools (SCCS/1972 and RCS/1982). I'm not against the
> idea per se, but I would like to understand your requirements better.
> Could you elaborate?

I don't like general keyword expansion either, but for the special case 
'scripts' (maybe also for easy versioned plain text documents like concepts, 
rfcs or similar) it could make sense. That's why it should be a well 
configurable optional feature (as for example in mercurial).

> Could you elaborate?
Hope this was now understandable enough, please ask if there are still 
things unclear.

Thanks

Tino

_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to