FerretDoc.tioga
Copyright © 1986 by Xerox Corporation. All rights reserved.
Hal Murray June 23, 1985 5:28:51 pm PDT
Peter Kessler July 7, 1986 11:21:56 am PDT
FerretDoc
CEDAR 6.1 — FOR INTERNAL XEROX USE ONLY
FerretDoc
Hal Murray
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: Ferret is a Command to find interesting files in your FS Cache after an IFS gets reloaded and forgets the truth.
Created by: Hal Murray
Maintained by: Hal Murray <Murray.PA>
Keywords: IFS, Reload, Files, Rescue
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Why do you want it?
Ferret is a program for locating interesting files that just happen to be left hiding in your FS Cache after an IFS gets reloaded. Unfortunatley, the signal to noise ratio is pretty low, so mostly what it finds is trash. I was amazed an the amount of junk on my disk. When I started working on it, 5% of my attatchments and 4% of my cached files on my disk pointed to remote files that didn't exist. Ferret can clean up so you can find the interesting files.
2. Overview
Ferret <CR> will make a scan over your whole disk. It prints several lines for each quirk it finds. Here are a few samples:

Attached file missing from server.
[]<>Commands>CompilerDoc.Tioga!1 => [Cedar]<Cedar6.0>Documentation>CompilerDoc.Tioga!1
Newer local version is []<>Commands>CompilerDoc.Tioga!2
Would have deleted []<>Commands>CompilerDoc.Tioga!1

Attached file missing from server.
[]<>Commands>PrintDoc.tioga!1 => [Indigo]<CedarChest6.0>Documentation>PrintDoc.tioga!1
No remote version at all.

*** Server for "[Seattle]<>Walsh.txt" is inaccessible

Attached file missing from server.
[]<>X>Foo!13 => [Ivy]<Murray>Foo!12
*** Beware: Missing remote version was NEWER.
[Ivy]<Murray>Foo!12 >> [Ivy]<Murray>Foo!11
*** There is hope. The file is in your cache!
The last example, of course, is the whole reason for writing Ferret. I don't have any automatic way to rescue a file, but so far, it's been easy to Open them, make a phoney edit, and Save the file. If Copy or the DF software says Locked when you try to move the rescued file out to the IFS, the file cache is probably tripping over itself. Try storing the file onto another IFS or another directory first.
If somebody comes up with a good test case, I'm willing to work on automating the recovery step.
Beware: Be sure you have a local copy of the file before you try to slosh anything to an IFS. The FS Cache machinery will automatically delete things from the cache when it writes a remote file if a file with that version number happens to be in the local cache. That may be the copy you want! Use the List -a command to verify that the file you want isn't attached to anything.
3. How to use it
Ferret <CR> will make a scan over your whole disk. It prints several lines for each quirk it finds.
Ferret recognizes 2 switches: -d lets it delete bogus attachments, and -f lets it flush bogus files from the cache. "Bogus" means that the file doesn't exist on the server, and something more reasonable exists on the server or as a local attachment.
Ferret also recognizes filename patterns - just like the ListB command. They are a bit obscure.
Ferret [Indigo]* will scan all the files in the cache that came from Indigo.
Ferret X* will scan all the attachments in the cache that have local names matching ///X*.
If you don't give Ferret any arguments, it will scan the whole system volume.
I suggest you let it make a trial pass and scan the printout before you let it do anything. The summary line at the end of the run will alert you if anything interesting needs attention. If things look clean, Ferret -df <CR> will Delete all the dangling attachments and Flush all the dangling cached files.