Hi all,

If you have write access to the manual module, please read this message 
carefully.

Yesterday, I have created a CVS branch called B_Release. This branch is 
intended for all the *published* (or at least *buildable and publishable*) 
revisions of our documents.

The idea is that, for most of the time, we keep on working like before. We edit 
manuals and other files in our working copies, and commit to CVS whenever we 
deem appropriate, even if the document is in an unpublishable state. All these 
commits are automatically done to HEAD (the tip of the default MAIN branch, or 
trunk).

However, as soon as a (new version of) a document is published, we must also 
commit it to the B_Release branch. This can be done in several ways:

- If you're fluent in CVS, you can first commit to HEAD, tag the file(s), then 
switch your local copy of the file(s) to B_Release, merge in the differences 
made in MAIN since the previous merge (which you should have tagged as well) or 
since the branch point, commit to B_Release, and switch back to MAIN.

- You can also (just once) check out a second working copy, specifying the 
B_Release branch. You work in your main working copy, but after committing a 
publishable version, you go the the B_Release working copy, and update, merge 
and commit. This too requires tagging like in the previous example. The 
difference is that now you have two working copies: one of MAIN, and one of 
B_Release. Within these working copies, you don't switch files back and forth 
between branches, and you don't risk to accidentally leave a file on another 
branch than where you think it is, or to tag a file on the wrong branch.

- The third way is not very subtle, and frowned upon by CVS gurus, but very 
robust (in our case!): You have two working copies like above. You work in the 
first one (the trunk). When you're going to publish, you bluntly copy the 
file(s) in question over their counterparts in the B_Release working copy, and 
commit there (of course you also commit to HEAD). The advantage of this method 
is that now you are absolutely sure that the revision in B_Release is identical 
to the one in HEAD. You can't make subtle mistakes while merging, because 
there's no merging and tagging involved. You just bulldozer your way into the 
B_Release branch and drop your stuff there.

Oh, and in all cases: don't forget to build and upload the HTML and PDF :-)

The advantage of all this: The B_Release branch always contains the latest 
publishable revision of every document. So if ever we have to re-upload any 
manuals, or even the entire set, all we have to do is build them from B_Release 
and we're fine. At the same time, we can commit as often as we want without 
fear of breaking any builds.


To be continued...


Cheers,
Paul Vinkenoog

------------------------------------------------------------------------------
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
_______________________________________________
Firebird-docs mailing list
Firebird-docs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-docs

Reply via email to