[BLACKBOX] AW: [BLACKBOX] Version Control

From: Bernhardt, Gunnar <"Bernhardt,>
Date: Tue, 12 Jan 2010 17:34:12 +0100

----boundary-LibPST-iamunique-508913816_-_-
Content-type: text/plain

Folks,

Aubrey has drawn attention to an interesting question, for which I do not really have a satisfactory solution:

How do you do version control for your Blackbox sources?

Does any of you use a version control system like Bazaar, CVS, Subversion or a variant by Microsoft? If so, does it matter that BB files are binary files instead of plain ASCII?

Is there perhaps a BB-native solution which escaped my quick glance across zinnamturm.eu and google?

My current practice (for managing 29 source files in one subsystem) is to take a copy of the entire subsystem (in fact: a zip-file) for every <stable> state. Individual files are in between copied to a history directory and renamed. Pro: each ZIPed version runs with mostly undiscovered bugs and respresents a certain stage in development (prototype1, prototype2, alpha version...). Con: There is an abundance of files which have to be archived.


How do you handle this problem? Do you really renamed file names AND module names?

kind regards
gunnar


-----Ursprüngliche Nachricht-----
Von: BlackBox [mailto:BLACKBOX{([at]})nowhere.xy
Gesendet: Mittwoch, 30. Dezember 2009 00:58
An: BLACKBOX{([at]})nowhere.xy
Betreff: [BLACKBOX] Version Control

Oh, I am unfocused and this will ramble. Please feel free to skip.

I have a program, Gather, that I first coded many years ago. It reads source, and understands the IMPORT assignment. I had thought it to be a mature program, that the only wrinkles in using it were documentation and user understanding issues.

I have developed a practice of keeping many versions of the source to a program as I make changes, and only saving source when I have a "clean" compile. I bump a minor version number when I work on a new aspect. This may be very minor, such as changing the definition of 1 or 2 RECORDS and propagating the necessary work through the source.

In this practice, there may be many files as time goes by. Each of these sources generates a binary of the same name, and all the sources that import it remain unchanged as I work, possibly unloading many modules then reloading them during debug.

This_01.Mod --> MODULE This; IMPORT That; END This.
This_02.Mod --> MODULE This; IMPORT That; TYPE T1*:INTEGER; END This.
This_03.Mod --> MODULE This; IMPORT That; TYPE T1*:LONGINT; END This.

So I went to use Gather in its intended purpose, to read a list of source file names and then to produce the list of all necessary and available sources in a correct compile order.

For a very discouraging moment, I thought I had found a very serious bug in a program I thought was now part of the bedrock. I gave the list of the versions I wanted, This_03.Mod, That_04.Mod. It sought out the sources This.Mod, That.Mod, and not the versions. :-(

After much reading of the source, the documentation, and running the example programs, I have decided that it actually is working as it should, but that I have always had a subtle misunderstanding of how I manage and document versions. The Gather program implies that when I release a new minor version number, the IMPORT statement of my various client programs should change, and the module name of the various library modules should also change.

(*library config 1*) MODULE This; IMPORT That := That_01; END This.
(*library config 2*) MODULE This; IMPORT That := That_02; END This.
(*library item*) MODULE That_02; END That_02.

I have not gone back into my current project to make this so. I think I am more discouraged than if my trusted program had actually been badly broken. It means that I have to change a work practice to be more clear headed. My thoughts are that this will all be more in the "Oberon" tradition, because the source will actually statically document the version that is in use. I am just rebelling in the same way I did when I had to declare variables the first time I used a Wirth language. I envision a directory that is really, really full of source and binary files of different version numbers.

Well, it is a cold and rainy day, I am drinking coffee and pondering the implications of all this. I'd love to have the wisdom of others who have worked on large and evolving projects. I may (or not) go change a lot of source files and see what I can see.





--
--
Aubrey McIntosh, Ph.D.
1502 Devon Circle
Austin TX 78723-1814
http://home.grandecom.net/~amcintosh/aubrey/Search/
----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-508913816_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBGb2xrcyxccGFyDQpccGFyDQpB
dWJyZXkgaGFzIGRyYXduIGF0dGVudGlvbiB0byBhbiBpbnRlcmVzdGluZyBxdWVzdGlvbiwgZm9y
IHdoaWNoIEkgZG8gbm90IHJlYWxseSBoYXZlIGEgc2F0aXNmYWN0b3J5IHNvbHV0aW9uOlxwYXIN
ClxwYXINCkhvdyBkbyB5b3UgZG8gdmVyc2lvbiBjb250cm9sIGZvciB5b3VyIEJsYWNrYm94IHNv
dXJjZXM/XHBhcg0KXHBhcg0KRG9lcyBhbnkgb2YgeW91IHVzZSBhIHZlcnNpb24gY29udHJvbCBz
eXN0ZW0gbGlrZSBCYXphYXIsIENWUywgU3VidmVyc2lvbiBvciBhIHZhcmlhbnQgYnkgTWljcm9z
b2Z0PyBJZiBzbywgZG9lcyBpdCBtYXR0ZXIgdGhhdCBCQiBmaWxlcyBhcmUgYmluYXJ5IGZpbGVz
IGluc3RlYWQgb2YgcGxhaW4gQVNDSUk/IFxwYXINClxwYXINCklzIHRoZXJlIHBlcmhhcHMgYSBC
Qi1uYXRpdmUgc29sdXRpb24gd2hpY2ggZXNjYXBlZCBteSBxdWljayBnbGFuY2UgYWNyb3NzIHpp
bm5hbXR1cm0uZXUgYW5kIGdvb2dsZT9ccGFyDQpccGFyDQpNeSBjdXJyZW50IHByYWN0aWNlIChm
b3IgbWFuYWdpbmcgMjkgc291cmNlIGZpbGVzIGluIG9uZSBzdWJzeXN0ZW0pIGlzIHRvIHRha2Ug
YSBjb3B5IG9mIHRoZSBlbnRpcmUgc3Vic3lzdGVtIChpbiBmYWN0OiBhIHppcC1maWxlKSBmb3Ig
ZXZlcnkgPHN0YWJsZT4gc3RhdGUuIEluZGl2aWR1YWwgZmlsZXMgYXJlIGluIGJldHdlZW4gY29w
aWVkIHRvIGEgaGlzdG9yeSBkaXJlY3RvcnkgYW5kIHJlbmFtZWQuIFBybzogZWFjaCBaSVBlZCB2
ZXJzaW9uIHJ1bnMgd2l0aCBtb3N0bHkgdW5kaXNjb3ZlcmVkIGJ1Z3MgYW5kIHJlc3ByZXNlbnRz
IGEgY2VydGFpbiBzdGFnZSBpbiBkZXZlbG9wbWVudCAocHJvdG90eXBlMSwgcHJvdG90eXBlMiwg
YWxwaGEgdmVyc2lvbi4uLikuIENvbjogVGhlcmUgaXMgYW4gYWJ1bmRhbmNlIG9mIGZpbGVzIHdo
aWNoIGhhdmUgdG8gYmUgYXJjaGl2ZWQuIFxwYXINClxwYXINClxwYXINCkhvdyBkbyB5b3UgaGFu
ZGxlIHRoaXMgcHJvYmxlbT8gRG8geW91IHJlYWxseSByZW5hbWVkIGZpbGUgbmFtZXMgQU5EIG1v
ZHVsZSBuYW1lcz9ccGFyDQpccGFyDQpraW5kIHJlZ2FyZHNccGFyDQpndW5uYXIgXHBhcg0KXHBh
cg0KXHBhcg0KLS0tLS1VcnNwclwnZmNuZ2xpY2hlIE5hY2hyaWNodC0tLS0tXHBhcg0KVm9uOiBC
bGFja0JveCBbbWFpbHRvOkJMQUNLQk9YQExJU1RTLk9CRVJPTi5DSF0gSW0gQXVmdHJhZyB2b24g
QXVicmV5Lk1jSW50b3NoQEFMVU1OSS5VVEVYQVMuTkVUXHBhcg0KR2VzZW5kZXQ6IE1pdHR3b2No
LCAzMC4gRGV6ZW1iZXIgMjAwOSAwMDo1OFxwYXINCkFuOiBCTEFDS0JPWEBMSVNUUy5PQkVST04u
Q0hccGFyDQpCZXRyZWZmOiBbQkxBQ0tCT1hdIFZlcnNpb24gQ29udHJvbFxwYXINClxwYXINCk9o
LCBJIGFtIHVuZm9jdXNlZCBhbmQgdGhpcyB3aWxsIHJhbWJsZS4gIFBsZWFzZSBmZWVsIGZyZWUg
dG8gc2tpcC5ccGFyDQpccGFyDQpJIGhhdmUgYSBwcm9ncmFtLCBHYXRoZXIsIHRoYXQgSSBmaXJz
dCBjb2RlZCBtYW55IHllYXJzIGFnby4gIEl0IHJlYWRzIHNvdXJjZSwgYW5kIHVuZGVyc3RhbmRz
IHRoZSBJTVBPUlQgYXNzaWdubWVudC4gIEkgaGFkIHRob3VnaHQgaXQgdG8gYmUgYSBtYXR1cmUg
cHJvZ3JhbSwgdGhhdCB0aGUgb25seSB3cmlua2xlcyBpbiB1c2luZyBpdCB3ZXJlIGRvY3VtZW50
YXRpb24gYW5kIHVzZXIgdW5kZXJzdGFuZGluZyBpc3N1ZXMuXHBhcg0KXHBhcg0KSSBoYXZlIGRl
dmVsb3BlZCBhIHByYWN0aWNlIG9mIGtlZXBpbmcgbWFueSB2ZXJzaW9ucyBvZiB0aGUgc291cmNl
IHRvIGEgcHJvZ3JhbSBhcyBJIG1ha2UgY2hhbmdlcywgYW5kIG9ubHkgc2F2aW5nIHNvdXJjZSB3
aGVuIEkgaGF2ZSBhICJjbGVhbiIgY29tcGlsZS4gIEkgYnVtcCBhIG1pbm9yIHZlcnNpb24gbnVt
YmVyIHdoZW4gSSB3b3JrIG9uIGEgbmV3IGFzcGVjdC4gIFRoaXMgbWF5IGJlIHZlcnkgbWlub3Is
IHN1Y2ggYXMgY2hhbmdpbmcgdGhlIGRlZmluaXRpb24gb2YgMSBvciAyIFJFQ09SRFMgYW5kIHBy
b3BhZ2F0aW5nIHRoZSBuZWNlc3Nhcnkgd29yayB0aHJvdWdoIHRoZSBzb3VyY2UuXHBhcg0KXHBh
cg0KSW4gdGhpcyBwcmFjdGljZSwgdGhlcmUgbWF5IGJlIG1hbnkgZmlsZXMgYXMgdGltZSBnb2Vz
IGJ5LiAgRWFjaCBvZiB0aGVzZSBzb3VyY2VzIGdlbmVyYXRlcyBhIGJpbmFyeSBvZiB0aGUgc2Ft
ZSBuYW1lLCBhbmQgYWxsIHRoZSBzb3VyY2VzIHRoYXQgaW1wb3J0IGl0IHJlbWFpbiB1bmNoYW5n
ZWQgYXMgSSB3b3JrLCBwb3NzaWJseSB1bmxvYWRpbmcgbWFueSBtb2R1bGVzIHRoZW4gcmVsb2Fk
aW5nIHRoZW0gZHVyaW5nIGRlYnVnLlxwYXINClxwYXINClRoaXNfMDEuTW9kICAgIC0tPiBNT0RV
TEUgVGhpczsgSU1QT1JUIFRoYXQ7IEVORCBUaGlzLlxwYXINClRoaXNfMDIuTW9kICAgIC0tPiBN
T0RVTEUgVGhpczsgSU1QT1JUIFRoYXQ7IFRZUEUgVDEqOklOVEVHRVI7IEVORCBUaGlzLlxwYXIN
ClRoaXNfMDMuTW9kICAgIC0tPiBNT0RVTEUgVGhpczsgSU1QT1JUIFRoYXQ7IFRZUEUgVDEqOkxP
TkdJTlQ7IEVORCBUaGlzLlxwYXINClxwYXINClNvIEkgd2VudCB0byB1c2UgR2F0aGVyIGluIGl0
cyBpbnRlbmRlZCBwdXJwb3NlLCB0byByZWFkIGEgbGlzdCBvZiBzb3VyY2UgZmlsZSBuYW1lcyBh
bmQgdGhlbiB0byBwcm9kdWNlIHRoZSBsaXN0IG9mIGFsbCBuZWNlc3NhcnkgYW5kIGF2YWlsYWJs
ZSBzb3VyY2VzIGluIGEgY29ycmVjdCBjb21waWxlIG9yZGVyLlxwYXINClxwYXINCkZvciBhIHZl
cnkgZGlzY291cmFnaW5nIG1vbWVudCwgSSB0aG91Z2h0IEkgaGFkIGZvdW5kIGEgdmVyeSBzZXJp
b3VzIGJ1ZyBpbiBhIHByb2dyYW0gSSB0aG91Z2h0IHdhcyBub3cgcGFydCBvZiB0aGUgYmVkcm9j
ay4gIEkgZ2F2ZSB0aGUgbGlzdCBvZiB0aGUgdmVyc2lvbnMgSSB3YW50ZWQsIFRoaXNfMDMuTW9k
LCBUaGF0XzA0Lk1vZC4gIEl0IHNvdWdodCBvdXQgdGhlIHNvdXJjZXMgVGhpcy5Nb2QsIFRoYXQu
TW9kLCBhbmQgbm90IHRoZSB2ZXJzaW9ucy4gOi0oXHBhcg0KXHBhcg0KQWZ0ZXIgbXVjaCByZWFk
aW5nIG9mIHRoZSBzb3VyY2UsIHRoZSBkb2N1bWVudGF0aW9uLCBhbmQgcnVubmluZyB0aGUgZXhh
bXBsZSBwcm9ncmFtcywgSSBoYXZlIGRlY2lkZWQgdGhhdCBpdCBhY3R1YWxseSBpcyB3b3JraW5n
IGFzIGl0IHNob3VsZCwgYnV0IHRoYXQgSSBoYXZlIGFsd2F5cyBoYWQgYSBzdWJ0bGUgbWlzdW5k
ZXJzdGFuZGluZyBvZiBob3cgSSBtYW5hZ2UgYW5kIGRvY3VtZW50IHZlcnNpb25zLiAgVGhlIEdh
dGhlciBwcm9ncmFtIGltcGxpZXMgdGhhdCB3aGVuIEkgcmVsZWFzZSBhIG5ldyBtaW5vciB2ZXJz
aW9uIG51bWJlciwgdGhlIElNUE9SVCBzdGF0ZW1lbnQgb2YgbXkgdmFyaW91cyBjbGllbnQgcHJv
Z3JhbXMgc2hvdWxkIGNoYW5nZSwgYW5kIHRoZSBtb2R1bGUgbmFtZSBvZiB0aGUgdmFyaW91cyBs
aWJyYXJ5IG1vZHVsZXMgc2hvdWxkIGFsc28gY2hhbmdlLlxwYXINClxwYXINCigqbGlicmFyeSBj
b25maWcgMSopIE1PRFVMRSBUaGlzOyBJTVBPUlQgVGhhdCA6PSBUaGF0XzAxOyBFTkQgVGhpcy5c
cGFyDQooKmxpYnJhcnkgY29uZmlnIDIqKSBNT0RVTEUgVGhpczsgSU1QT1JUIFRoYXQgOj0gVGhh
dF8wMjsgRU5EIFRoaXMuXHBhcg0KKCpsaWJyYXJ5IGl0ZW0qKSBNT0RVTEUgVGhhdF8wMjsgRU5E
IFRoYXRfMDIuXHBhcg0KXHBhcg0KSSBoYXZlIG5vdCBnb25lIGJhY2sgaW50byBteSBjdXJyZW50
IHByb2plY3QgdG8gbWFrZSB0aGlzIHNvLiAgSSB0aGluayBJIGFtIG1vcmUgZGlzY291cmFnZWQg
dGhhbiBpZiBteSB0cnVzdGVkIHByb2dyYW0gaGFkIGFjdHVhbGx5IGJlZW4gYmFkbHkgYnJva2Vu
LiAgSXQgbWVhbnMgdGhhdCBJIGhhdmUgdG8gY2hhbmdlIGEgd29yayBwcmFjdGljZSB0byBiZSBt
b3JlIGNsZWFyIGhlYWRlZC4gIE15IHRob3VnaHRzIGFyZSB0aGF0IHRoaXMgd2lsbCBhbGwgYmUg
bW9yZSBpbiB0aGUgIk9iZXJvbiIgdHJhZGl0aW9uLCBiZWNhdXNlIHRoZSBzb3VyY2Ugd2lsbCBh
Y3R1YWxseSBzdGF0aWNhbGx5IGRvY3VtZW50IHRoZSB2ZXJzaW9uIHRoYXQgaXMgaW4gdXNlLiAg
SSBhbSBqdXN0IHJlYmVsbGluZyBpbiB0aGUgc2FtZSB3YXkgSSBkaWQgd2hlbiBJIGhhZCB0byBk
ZWNsYXJlIHZhcmlhYmxlcyB0aGUgZmlyc3QgdGltZSBJIHVzZWQgYSBXaXJ0aCBsYW5ndWFnZS4g
IEkgZW52aXNpb24gYSBkaXJlY3RvcnkgdGhhdCBpcyByZWFsbHksIHJlYWxseSBmdWxsIG9mIHNv
dXJjZSBhbmQgYmluYXJ5IGZpbGVzIG9mIGRpZmZlcmVudCB2ZXJzaW9uIG51bWJlcnMuXHBhcg0K
XHBhcg0KV2VsbCwgaXQgaXMgYSBjb2xkIGFuZCByYWlueSBkYXksIEkgYW0gZHJpbmtpbmcgY29m
ZmVlIGFuZCBwb25kZXJpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiBhbGwgdGhpcy4gIEknZCBsb3Zl
IHRvIGhhdmUgdGhlIHdpc2RvbSBvZiBvdGhlcnMgd2hvIGhhdmUgd29ya2VkIG9uIGxhcmdlIGFu
ZCBldm9sdmluZyBwcm9qZWN0cy4gIEkgbWF5IChvciBub3QpIGdvIGNoYW5nZSBhIGxvdCBvZiBz
b3VyY2UgZmlsZXMgYW5kIHNlZSB3aGF0IEkgY2FuIHNlZS5ccGFyDQpccGFyDQpccGFyDQpccGFy
DQpccGFyDQpccGFyDQotLVxwYXINCi0tXHBhcg0KQXVicmV5IE1jSW50b3NoLCBQaC5ELlxwYXIN
CjE1MDIgRGV2b24gQ2lyY2xlXHBhcg0KQXVzdGluIFRYIDc4NzIzLTE4MTRccGFyDQpodHRwOi8v
aG9tZS5ncmFuZGVjb20ubmV0L35hbWNpbnRvc2gvYXVicmV5L1NlYXJjaC9ccGFyDQpccGFyDQpc
cGFyDQotLS0tXHBhcg0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAi
U0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXHBhcg0KXHBhcg0K
XHBhcg0KLS0tLVxwYXINClRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkg
IlNJR05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSFxwYXINfX0
----boundary-LibPST-iamunique-508913816_-_---
Received on Tue Jan 12 2010 - 17:34:12 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:37 UTC