Re: [BLACKBOX] BlackBox and Tortoise

From: [at]} <Alexander>
Date: Wed, 4 Feb 2009 12:38:16 +0600

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

Hello!

>> Does Blackox, as a development environment, provide (some

>> equivalent of) version control functionality?
>> What are good practices of version control under Blackbox?
>> Do people need extra version control software for version control

>> of large projects?

  The BlackBox gives you a way to have /two/ revisions of your program
  (the "server" configuration, as described by Fyodor), i.e. the
  "server" copy and the "client" copy. The contents of the "client"
  override the corresponding files of the "server". This is a very
  useful feature for BlackBox core development, and it can be used to
  some extent in your application projects, but if you are used to
  thinking about revision control systems as of "time-machines" for
  your code, then no, that does not work that way.

  I use Subversion for all my software projects, including BlackBox,
  even though I don't need the access control features (the
  repositories are local folders on my machine). The biggest advantage
  for me since I started using a revision control system was the
  change of mind that makes you see the development process not as a
  flow of "work" in a general direction, but as a series of
  incremental changes, each with explicitly stated meaning and
  purpose.

  When you don't just create something for yourself, but deploy your
  software product to a customer, you will some times get reports of
  erratic behaviour of your product. At the time of the report you've
  probably moved on with your project since the version you deployed.
  You could easily get trapped in a situation when:
  1) the fix is trivial and can be done instantly to make the customer
  happy;
  2) your current source code is in the middle of a big rework that
  can't be finished in a timely fashion.
  This is no issue for you if you know exactly which revision of the
  source code was used to build the customer's version of the program.
  You just get the older code, make the fix, and continue with your
  big rework (you'll find description of the best approach to version
  branches on the 'Net, probably even in the Subversion book).

  Another reason for using a revision control system is, of course,
  development branches. I've got a branch for my own experiments, a
  branch for trying out the Component Pascal Collection, a branch for
  School BlackBox, which I used to be involved with, and some
  application programs. All those share a considerable amount of code.
  When I make a change to a common module, I can port the change
  across to all the interested branches without much hassle. Plus, the
  Subversion repository makes a great backup tool, since all the
  shared code is actually stored only once (and packed).

  The best practices for using Subverion are described here:
  http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html
  Those are applicable to any project.

  In addition to that, my approach is as follows.
  \ProjectOne\trunk
  \ProjectOne\tags
  \ProjectOne\branches
  \ProjectTwo\trunk
  \ProjectTwo\tags
  \ProjectTwo\branches
  ...

  I use one big repository for all of my BlackBox-related work. I use
  the "server" configuration, where I keep the BlackBox distribution
  intact. All of my projects are in their own folders, being "clients"
  for the "server". This way
  1) BlackBox folders don't get in the way;
  2) I can locally override things for my project, while other
  projects use their own (or default) stuff.

  I only keep the source code and documentation in the repository (no
  binary or symbol files, with the exception of the BlackBox itself,
  which I imported fully). I keep empty "Code" and "Sym" folders in
  the repo, because I don't want BlackBox to ask me if I want to
  create them on compilation of a fresh checkout.

  There is sort of a master-file for every project. The file contains
  hyperlinks to all files of the project. The list of files is divided
  in categories: subsystem -> source, resources, etc.; files are sorted
  alphabetically in each category for quick search. The subsystem's
  prefix is omitted from the hyperlink label. The master-file also
  contains commanders for full compilation and unloading of all
  modules of the project, as well as running a test suite, if any.
  This is a mouse-clicking version of the "make" functionality. Come
  to think of it, it could be bound to a hotkey, but I didn't get that
  far before I quit working in BlackBox.

  (Sorry if this reply shows in the wrong place of the thread, but Google
  has this stupid "basic HTML" interface where I can't figure out how to
  reply to a specific e-mail. And their "standard" view shows nothing in
  my Opera 9.63. And BlackBox mailing list does not accept e-mails
  from my normal yandex e-mail with good interface.)

---=====---
 Alexander


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-854187516_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhlbGxvIVxwYXINClxwYXINCj4+IERvZXMgQmxh
Y2tveCwgYXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgcHJvdmlkZSAoc29tZVxwYXINCj4+
IGVxdWl2YWxlbnQgb2YpIHZlcnNpb24gY29udHJvbCBmdW5jdGlvbmFsaXR5P1xwYXINCj4+IFdo
YXQgYXJlIGdvb2QgcHJhY3RpY2VzIG9mIHZlcnNpb24gY29udHJvbCB1bmRlciBCbGFja2JveD9c
cGFyDQo+PiBEbyBwZW9wbGUgbmVlZCBleHRyYSB2ZXJzaW9uIGNvbnRyb2wgc29mdHdhcmUgZm9y
IHZlcnNpb24gY29udHJvbFxwYXINCj4+IG9mIGxhcmdlIHByb2plY3RzP1xwYXINClxwYXINCiAg
VGhlIEJsYWNrQm94IGdpdmVzIHlvdSBhIHdheSB0byBoYXZlIC90d28vIHJldmlzaW9ucyBvZiB5
b3VyIHByb2dyYW1ccGFyDQogICh0aGUgInNlcnZlciIgY29uZmlndXJhdGlvbiwgYXMgZGVzY3Jp
YmVkIGJ5IEZ5b2RvciksIGkuZS4gdGhlXHBhcg0KICAic2VydmVyIiBjb3B5IGFuZCB0aGUgImNs
aWVudCIgY29weS4gVGhlIGNvbnRlbnRzIG9mIHRoZSAiY2xpZW50IlxwYXINCiAgb3ZlcnJpZGUg
dGhlIGNvcnJlc3BvbmRpbmcgZmlsZXMgb2YgdGhlICJzZXJ2ZXIiLiBUaGlzIGlzIGEgdmVyeVxw
YXINCiAgdXNlZnVsIGZlYXR1cmUgZm9yIEJsYWNrQm94IGNvcmUgZGV2ZWxvcG1lbnQsIGFuZCBp
dCBjYW4gYmUgdXNlZCB0b1xwYXINCiAgc29tZSBleHRlbnQgaW4geW91ciBhcHBsaWNhdGlvbiBw
cm9qZWN0cywgYnV0IGlmIHlvdSBhcmUgdXNlZCB0b1xwYXINCiAgdGhpbmtpbmcgYWJvdXQgcmV2
aXNpb24gY29udHJvbCBzeXN0ZW1zIGFzIG9mICJ0aW1lLW1hY2hpbmVzIiBmb3JccGFyDQogIHlv
dXIgY29kZSwgdGhlbiBubywgdGhhdCBkb2VzIG5vdCB3b3JrIHRoYXQgd2F5LlxwYXINClxwYXIN
CiAgSSB1c2UgU3VidmVyc2lvbiBmb3IgYWxsIG15IHNvZnR3YXJlIHByb2plY3RzLCBpbmNsdWRp
bmcgQmxhY2tCb3gsXHBhcg0KICBldmVuIHRob3VnaCBJIGRvbid0IG5lZWQgdGhlIGFjY2VzcyBj
b250cm9sIGZlYXR1cmVzICh0aGVccGFyDQogIHJlcG9zaXRvcmllcyBhcmUgbG9jYWwgZm9sZGVy
cyBvbiBteSBtYWNoaW5lKS4gVGhlIGJpZ2dlc3QgYWR2YW50YWdlXHBhcg0KICBmb3IgbWUgc2lu
Y2UgSSBzdGFydGVkIHVzaW5nIGEgcmV2aXNpb24gY29udHJvbCBzeXN0ZW0gd2FzIHRoZVxwYXIN
CiAgY2hhbmdlIG9mIG1pbmQgdGhhdCBtYWtlcyB5b3Ugc2VlIHRoZSBkZXZlbG9wbWVudCBwcm9j
ZXNzIG5vdCBhcyBhXHBhcg0KICBmbG93IG9mICJ3b3JrIiBpbiBhIGdlbmVyYWwgZGlyZWN0aW9u
LCBidXQgYXMgYSBzZXJpZXMgb2ZccGFyDQogIGluY3JlbWVudGFsIGNoYW5nZXMsIGVhY2ggd2l0
aCBleHBsaWNpdGx5IHN0YXRlZCBtZWFuaW5nIGFuZFxwYXINCiAgcHVycG9zZS5ccGFyDQpccGFy
DQogIFdoZW4geW91IGRvbid0IGp1c3QgY3JlYXRlIHNvbWV0aGluZyBmb3IgeW91cnNlbGYsIGJ1
dCBkZXBsb3kgeW91clxwYXINCiAgc29mdHdhcmUgcHJvZHVjdCB0byBhIGN1c3RvbWVyLCB5b3Ug
d2lsbCBzb21lIHRpbWVzIGdldCByZXBvcnRzIG9mXHBhcg0KICBlcnJhdGljIGJlaGF2aW91ciBv
ZiB5b3VyIHByb2R1Y3QuIEF0IHRoZSB0aW1lIG9mIHRoZSByZXBvcnQgeW91J3ZlXHBhcg0KICBw
cm9iYWJseSBtb3ZlZCBvbiB3aXRoIHlvdXIgcHJvamVjdCBzaW5jZSB0aGUgdmVyc2lvbiB5b3Ug
ZGVwbG95ZWQuXHBhcg0KICBZb3UgY291bGQgZWFzaWx5IGdldCB0cmFwcGVkIGluIGEgc2l0dWF0
aW9uIHdoZW46XHBhcg0KICAxKSB0aGUgZml4IGlzIHRyaXZpYWwgYW5kIGNhbiBiZSBkb25lIGlu
c3RhbnRseSB0byBtYWtlIHRoZSBjdXN0b21lclxwYXINCiAgaGFwcHk7XHBhcg0KICAyKSB5b3Vy
IGN1cnJlbnQgc291cmNlIGNvZGUgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIGJpZyByZXdvcmsgdGhh
dFxwYXINCiAgY2FuJ3QgYmUgZmluaXNoZWQgaW4gYSB0aW1lbHkgZmFzaGlvbi5ccGFyDQogIFRo
aXMgaXMgbm8gaXNzdWUgZm9yIHlvdSBpZiB5b3Uga25vdyBleGFjdGx5IHdoaWNoIHJldmlzaW9u
IG9mIHRoZVxwYXINCiAgc291cmNlIGNvZGUgd2FzIHVzZWQgdG8gYnVpbGQgdGhlIGN1c3RvbWVy
J3MgdmVyc2lvbiBvZiB0aGUgcHJvZ3JhbS5ccGFyDQogIFlvdSBqdXN0IGdldCB0aGUgb2xkZXIg
Y29kZSwgbWFrZSB0aGUgZml4LCBhbmQgY29udGludWUgd2l0aCB5b3VyXHBhcg0KICBiaWcgcmV3
b3JrICh5b3UnbGwgZmluZCBkZXNjcmlwdGlvbiBvZiB0aGUgYmVzdCBhcHByb2FjaCB0byB2ZXJz
aW9uXHBhcg0KICBicmFuY2hlcyBvbiB0aGUgJ05ldCwgcHJvYmFibHkgZXZlbiBpbiB0aGUgU3Vi
dmVyc2lvbiBib29rKS5ccGFyDQpccGFyDQogIEFub3RoZXIgcmVhc29uIGZvciB1c2luZyBhIHJl
dmlzaW9uIGNvbnRyb2wgc3lzdGVtIGlzLCBvZiBjb3Vyc2UsXHBhcg0KICBkZXZlbG9wbWVudCBi
cmFuY2hlcy4gSSd2ZSBnb3QgYSBicmFuY2ggZm9yIG15IG93biBleHBlcmltZW50cywgYVxwYXIN
CiAgYnJhbmNoIGZvciB0cnlpbmcgb3V0IHRoZSBDb21wb25lbnQgUGFzY2FsIENvbGxlY3Rpb24s
IGEgYnJhbmNoIGZvclxwYXINCiAgU2Nob29sIEJsYWNrQm94LCB3aGljaCBJIHVzZWQgdG8gYmUg
aW52b2x2ZWQgd2l0aCwgYW5kIHNvbWVccGFyDQogIGFwcGxpY2F0aW9uIHByb2dyYW1zLiBBbGwg
dGhvc2Ugc2hhcmUgYSBjb25zaWRlcmFibGUgYW1vdW50IG9mIGNvZGUuXHBhcg0KICBXaGVuIEkg
bWFrZSBhIGNoYW5nZSB0byBhIGNvbW1vbiBtb2R1bGUsIEkgY2FuIHBvcnQgdGhlIGNoYW5nZVxw
YXINCiAgYWNyb3NzIHRvIGFsbCB0aGUgaW50ZXJlc3RlZCBicmFuY2hlcyB3aXRob3V0IG11Y2gg
aGFzc2xlLiBQbHVzLCB0aGVccGFyDQogIFN1YnZlcnNpb24gcmVwb3NpdG9yeSBtYWtlcyBhIGdy
ZWF0IGJhY2t1cCB0b29sLCBzaW5jZSBhbGwgdGhlXHBhcg0KICBzaGFyZWQgY29kZSBpcyBhY3R1
YWxseSBzdG9yZWQgb25seSBvbmNlIChhbmQgcGFja2VkKS5ccGFyDQpccGFyDQogIFRoZSBiZXN0
IHByYWN0aWNlcyBmb3IgdXNpbmcgU3VidmVyaW9uIGFyZSBkZXNjcmliZWQgaGVyZTpccGFyDQog
IGh0dHA6Ly9zdm4uY29sbGFiLm5ldC9yZXBvcy9zdm4vdHJ1bmsvZG9jL3VzZXIvc3ZuLWJlc3Qt
cHJhY3RpY2VzLmh0bWxccGFyDQogIFRob3NlIGFyZSBhcHBsaWNhYmxlIHRvIGFueSBwcm9qZWN0
LlxwYXINClxwYXINCiAgSW4gYWRkaXRpb24gdG8gdGhhdCwgbXkgYXBwcm9hY2ggaXMgYXMgZm9s
bG93cy5ccGFyDQogIFxcUHJvamVjdE9uZVxcdHJ1bmtccGFyDQogIFxcUHJvamVjdE9uZVxcdGFn
c1xwYXINCiAgXFxQcm9qZWN0T25lXFxicmFuY2hlc1xwYXINCiAgXFxQcm9qZWN0VHdvXFx0cnVu
a1xwYXINCiAgXFxQcm9qZWN0VHdvXFx0YWdzXHBhcg0KICBcXFByb2plY3RUd29cXGJyYW5jaGVz
XHBhcg0KICAuLi5ccGFyDQpccGFyDQogIEkgdXNlIG9uZSBiaWcgcmVwb3NpdG9yeSBmb3IgYWxs
IG9mIG15IEJsYWNrQm94LXJlbGF0ZWQgd29yay4gSSB1c2VccGFyDQogIHRoZSAic2VydmVyIiBj
b25maWd1cmF0aW9uLCB3aGVyZSBJIGtlZXAgdGhlIEJsYWNrQm94IGRpc3RyaWJ1dGlvblxwYXIN
CiAgaW50YWN0LiBBbGwgb2YgbXkgcHJvamVjdHMgYXJlIGluIHRoZWlyIG93biBmb2xkZXJzLCBi
ZWluZyAiY2xpZW50cyJccGFyDQogIGZvciB0aGUgInNlcnZlciIuIFRoaXMgd2F5XHBhcg0KICAx
KSBCbGFja0JveCBmb2xkZXJzIGRvbid0IGdldCBpbiB0aGUgd2F5O1xwYXINCiAgMikgSSBjYW4g
bG9jYWxseSBvdmVycmlkZSB0aGluZ3MgZm9yIG15IHByb2plY3QsIHdoaWxlIG90aGVyXHBhcg0K
ICBwcm9qZWN0cyB1c2UgdGhlaXIgb3duIChvciBkZWZhdWx0KSBzdHVmZi5ccGFyDQpccGFyDQog
IEkgb25seSBrZWVwIHRoZSBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBpbiB0aGUgcmVw
b3NpdG9yeSAobm9ccGFyDQogIGJpbmFyeSBvciBzeW1ib2wgZmlsZXMsIHdpdGggdGhlIGV4Y2Vw
dGlvbiBvZiB0aGUgQmxhY2tCb3ggaXRzZWxmLFxwYXINCiAgd2hpY2ggSSBpbXBvcnRlZCBmdWxs
eSkuIEkga2VlcCBlbXB0eSAiQ29kZSIgYW5kICJTeW0iIGZvbGRlcnMgaW5ccGFyDQogIHRoZSBy
ZXBvLCBiZWNhdXNlIEkgZG9uJ3Qgd2FudCBCbGFja0JveCB0byBhc2sgbWUgaWYgSSB3YW50IHRv
XHBhcg0KICBjcmVhdGUgdGhlbSBvbiBjb21waWxhdGlvbiBvZiBhIGZyZXNoIGNoZWNrb3V0Llxw
YXINClxwYXINCiAgVGhlcmUgaXMgc29ydCBvZiBhIG1hc3Rlci1maWxlIGZvciBldmVyeSBwcm9q
ZWN0LiBUaGUgZmlsZSBjb250YWluc1xwYXINCiAgaHlwZXJsaW5rcyB0byBhbGwgZmlsZXMgb2Yg
dGhlIHByb2plY3QuIFRoZSBsaXN0IG9mIGZpbGVzIGlzIGRpdmlkZWRccGFyDQogIGluIGNhdGVn
b3JpZXM6IHN1YnN5c3RlbSAtPiBzb3VyY2UsIHJlc291cmNlcywgZXRjLjsgZmlsZXMgYXJlIHNv
cnRlZFxwYXINCiAgYWxwaGFiZXRpY2FsbHkgaW4gZWFjaCBjYXRlZ29yeSBmb3IgcXVpY2sgc2Vh
cmNoLiBUaGUgc3Vic3lzdGVtJ3NccGFyDQogIHByZWZpeCBpcyBvbWl0dGVkIGZyb20gdGhlIGh5
cGVybGluayBsYWJlbC4gVGhlIG1hc3Rlci1maWxlIGFsc29ccGFyDQogIGNvbnRhaW5zIGNvbW1h
bmRlcnMgZm9yIGZ1bGwgY29tcGlsYXRpb24gYW5kIHVubG9hZGluZyBvZiBhbGxccGFyDQogIG1v
ZHVsZXMgb2YgdGhlIHByb2plY3QsIGFzIHdlbGwgYXMgcnVubmluZyBhIHRlc3Qgc3VpdGUsIGlm
IGFueS5ccGFyDQogIFRoaXMgaXMgYSBtb3VzZS1jbGlja2luZyB2ZXJzaW9uIG9mIHRoZSAibWFr
ZSIgZnVuY3Rpb25hbGl0eS4gQ29tZVxwYXINCiAgdG8gdGhpbmsgb2YgaXQsIGl0IGNvdWxkIGJl
IGJvdW5kIHRvIGEgaG90a2V5LCBidXQgSSBkaWRuJ3QgZ2V0IHRoYXRccGFyDQogIGZhciBiZWZv
cmUgSSBxdWl0IHdvcmtpbmcgaW4gQmxhY2tCb3guXHBhcg0KXHBhcg0KICAoU29ycnkgaWYgdGhp
cyByZXBseSBzaG93cyBpbiB0aGUgd3JvbmcgcGxhY2Ugb2YgdGhlIHRocmVhZCwgYnV0IEdvb2ds
ZVxwYXINCiAgaGFzIHRoaXMgc3R1cGlkICJiYXNpYyBIVE1MIiBpbnRlcmZhY2Ugd2hlcmUgSSBj
YW4ndCBmaWd1cmUgb3V0IGhvdyB0b1xwYXINCiAgcmVwbHkgdG8gYSBzcGVjaWZpYyBlLW1haWwu
IEFuZCB0aGVpciAic3RhbmRhcmQiIHZpZXcgc2hvd3Mgbm90aGluZyBpblxwYXINCiAgbXkgT3Bl
cmEgOS42My4gQW5kIEJsYWNrQm94IG1haWxpbmcgbGlzdCBkb2VzIG5vdCBhY2NlcHQgZS1tYWls
c1xwYXINCiAgZnJvbSBteSBub3JtYWwgeWFuZGV4IGUtbWFpbCB3aXRoIGdvb2QgaW50ZXJmYWNl
LilccGFyDQpccGFyDQotLS09PT09PS0tLVxwYXINCiBBbGV4YW5kZXJccGFyDQpccGFyDQpccGFy
DQotLS0tXHBhcg0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAiU0lH
Tk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIfX0ALQDBTA==
----boundary-LibPST-iamunique-854187516_-_---
Received on Wed Feb 04 2009 - 07:38:16 UTC

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