...
If you leave the store_internal
option set to true (or omit it altogether), then the normal storage behaviour is selected: opConfig assumes your file contents are text, treats them as the 'command output' for this special command, and stores the output in the database. Hence, you'll see the whole file contents in the GUI, and change detection will be performed line-by-line. This does not cannot work for binary files, and cannot work for large files (above 16 megabytes) either (16 megabytes is MongoDB's size limit for individual documents).
On the other hand with this option set to false, opConfig stores a separate copy of the the file for each revision (under the directory configured with config option opconfig_external_store
, usually /usr/local/omk/var/opconfig
/external). The 'command output' is made up from the size and the SHA256 checksum of the file contents, and change detection (and the GUI) uses this data instead of the (binary or huge) file contents. This produces much more coarse change detection, but works with binary files. In the GUI you'll see the made up 'command output', and a button to download the actual file data.
...
Furthermore, in opConfig 3.1.1 and newer, any command output that is larger than 16 megabytes is automatically reconfigured for storage on disk. In these versions the configuration option store_internal
is also supported for any command whatsoever, not just _download_file_<xyz>
, but using the shadow_file
facility is more likely to be useful for 'normal' commands.
Grouping commands into sessions
...