The '@(#)' prefix comes from the SCCS source code control system code that is used to check in/out source code from a repository. Other source code control systems may use the same prefix. The stuff immediately following the prefix, 'TestFile.java' in your case, is not actually stored in SCCS but is inserted on the fly when you get the file out of SCCS.
Andy Schmid
Greenhorn
Joined: Jan 14, 2009
Posts: 6
posted
0
Hi Carey,
everything clear now. Thanks for your fast Reply.
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 26710
posted
0
Glad somebody could help; I didn't know what @(#) meant. And welcome to the Ranch
David Newton
Author
Rancher
Joined: Sep 29, 2008
Posts: 12612
posted
0
What's the purpose? In case I forgot the name of the file I'm editing? Seems a little superfluous to me.
First of all, the '@(#)' was specifically chosen for the C language. It was a pattern that did not appear in normal compiled code, therefore you could scan the binaries for this pattern. Second, the file name usage by itself, like you said, only provided limited usefulness, though it did end up in the binaries in a searchable form. More often the file name was accompanied by the revision number and the date the last modification was checked in.
P.S. The expanded SCCS tags would end up in the binaries by putting them inside string constants. It was pretty cool. You could scan an executable file for the pattern and extract the entire list of files and their versions that went into building it.