Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I've used several methods, depending on the size of, and amount of customization to, the 3rd-party project:</p> <ul> <li><p><strong>For small or highly-customized projects</strong> I'll check the whole thing in, starting with the stock code. This makes it easy to work on the entire project and provides "one-stop shopping" to check out everything I need to build it.</p></li> <li><p><strong>For large or slightly-customized projects</strong> I'll keep a copy of the stock archive (typically a <code>.tar.bz2</code> or <code>.zip</code> file) and be sure it's backed up. Then I'll keep the files that embody my customizations under revision control in some form. Options here are </p> <ul> <li><p>Check in (only) the customized files themselves. This is usually the best choice if you're modifying source code. </p></li> <li><p>Check in a script that does the customization. This is most effective if the script supplies input to a configuration utility, because you're storing your customizations (the input data) separate from the stock pieces (the config utility). If a new version of the 3rd-party library is released, it's usually easy to apply your customizations to it, allowing for critical upgrades.</p></li> </ul></li> <li><p><strong>For projects that "will never change&trade;,"</strong> or for which customers have <strong>contractually bound you to particular versions,</strong> store the stock code somewhere, and create patch files under revision control. Then you can release the "approved" version with a patch. <em>Note: this is a fairly horrible choice, as patch files are awful to maintain--if you make a new patch, you must either re-create the patch files or create an additional patch that's applied on top of the first patch. The reasons for choosing this option are usually not chosen for technical reasons.</em></p></li> </ul> <p>I cannot stress enough that <strong>_you need to document the entire process of building this sort of project and adding customizations, or automate it, or (preferably) both.</strong> It's astonishingly easy to forget which files belong where, or to whom, and it's painful to start over. Especially if you're the heir.</p> <p>Good luck!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload