ARPUS/ce, Version 2.6.2 (03/10/05) (SCCS 1.9) _______________________________________________________________________________ Concept: Edit file backup modes. DESCRIPTION: Since there may be times at which you will want to revert to a previous version of a file, ce can automatically create a backup file before saving a changed version. There are a number of events that can take place that cause a file to be updated to disk. In fact, such events can occur multiple times during a single edit session. A backup file is created when such an event occurs for the first time during an edit session. A backup file is given the same name as the original file, except that the suffix ".bak" is added to the backup file's name. If ce attempts to create the "file.bak" file and a file with that name already exists, the existing version is overwritten. (This should not be a problem unless files with names ending in ".bak" are also being generated by some other application.) By default ce will always create a backup file unless you use the "-bkuptype none" command line option or the "Ce.bkuptype: none" X resource specification. Backup files can be created using one of two modes: "dm" mode In this mode, the original <file> being edited is renamed to <file>.bak, and a new <file> is created. This means that any hard links that pointed to the original <file> will subsequently point to <file>.bak. This is because a hard link actually points to a file's internal system identifier, and a file that is renamed retains its original identifier. Specify "-bkuptype dm" on the command line or "Ce.bkuptype: dm" in your .Xdefaults file. "vi" mode In this mode, <file> is copied to <file>.bak. This means that hard links that pointed to <file> will still point to <file>, which will be the changed <file> following termination of the edit session. Doing the copy means that the file is read in and copied out an extra time. This is slower than "dm" mode. Specify "-bkuptype vi" on the command line or "Ce.bkuptype: vi" in your .Xdefaults file. "dm<n>" mode This mode is like dm mode backups except that <n> numbered backup copies are kept in addition to the .bak file. To elaborate, assume that <n> is 3 and we are editing file file.c. This means either "-bkuptype dm3" was specified on the command line or "Ce.bkuptype: dm3" is coded in your .Xdefaults file. The first time a save is done, a check is done for file.c.bak3. If this file exists, it is deleted. Then file.c.bak2 is renamed to file.c.bak3. Then file.c.bak1 is renamed to file.c.bak2 and file.c.bak is renamed to file.c.bak1. Finally file.c is renamed to file.c.bak and the save is performed creating a new file.c, This last part follows the same logic as the default "Ce.bkuptype: dm" "vi<n>" mode This mode is like vi mode backups except that <n> numbered backup copies are kept in addition to the .bak file. The processing of the numbered .bak files is identical to the "dm<n>" mode. The creation of the .bak file from the original file is done accoring to the rules of "vi" mode. The default backup mode is "dm". Use the "-bkuptype" command line option or the "Ce.bkuptype" X resource to change the mode to "vi" or "none". When turning off backups on the command line, -nb is an abbreviation for -bkuptype none. TROUBLE: A distributed computing environment is a complex entity. Ce makes use of this environment with such features as display back and 'cc' across multiple workstations. In a complex network, things can go wrong. The network can go down. A file server can go down breaking an NFS connection. The machine you are executing on can run out of swap space. Ce makes every attempt it can to protect your data in the event of a failure. In the event of a loss of connection or an interupt (SIGTERM, SIGQUIT, or SIGINT), ce will attempt to create a crash file. The steps involved are: 1. Add .CRA to the end of the edit file name and attempt to save the file. 2. If this fails, attempt to save the file in /usr/tmp/<filename>.CRA and change the permissions to 700. This is the /usr/tmp directory on the node Ce was running on. 3. If this fails, try to save the file in the users $HOME directory with the .CRA suffix. 4. If this fails, create a directory called /tmp/Ce_CRASH and attempt to save the crash file in this directory. This is the /tmp directory on the node Ce was running on. 5. If either of the later three cases succeed, create a soft link from the first choice place to create the crash file to the place it was created. In the event of running out of swap space on the node (normal cause for "out of memory" errors), Ce will attempt to do garbage collection by getting rid of storage associated with the undo command and clear out the contents of the message output window. If it collects enough space to continue, it then outputs the out of memory message with a suggestion to save your file. If it cannot collect enough space to continue, it frees a block of storage it holds in reserve and attempts to create the crash file as described above. Then it issues a message to stderr specifying that it is out of space and it is going to pause. It gives the process id and specifies that it should be sent a SIGCONT (kill -25 <pid>) when the out of memory problem has been resolved. Out of memory problems can normally be temporarily cleared up by closing applications. Your system administrator can increase your total swap space. RELATED HELP FILES: xresources (Arguments and X resources) pw (Pad Write) support (customer support) _______________________________________________________________________________ Copyright (c) 2005, Robert Styma Consulting. All rights reserved.