2010-01-12

rcs ci -l results in "Unable to create temp directory: No such file or directory"

Suddenly, out of the blue, when I was checking in changes via rcs (using ci), I was getting an error.

me@mybox:~/sandbox
$ ci -l example
RCS/example,v  <--  example
Unable to create temp directory: No such file or directory
In my RCS directory I would see remnants of the failed check-in. I would see the example,v as usual, but there would also be a file named ,example, there, too.
me@mybox:~/sandbox
$ ls -l RCS
total 14
-r--r--r-- 1 me me   239 Feb 24 14:41 ,example,
-r--r--r-- 1 me me 11400 Feb 24 14:41 example,v
Subsequent check-in attempts would result in "file is in use" error messages.
me@mybox:~/sandbox
$ ci -l example
ci: RCS file RCS/example,v is in use
If I removed the ,example, file in the RCS directory, then the problem would start all over again when I did another check-in.
me@mybox:~/sandbox
$ rm RCS/,example,
rm: remove write-protected regular file `RCS/,example,'? y
me@mybox:~/sandbox
$ ci -l example
RCS/example,v  <--  example
Unable to create temp directory: No such file or directory
me@mybox:~/sandbox
$ ls RCS
1.conf,v  1.pl,v  1.sh,v  ,example,  example,v
me@mybox:~/sandbox
$ ci -l example
ci: RCS file RCS/example,v is in use
So what was the cause of this problem? Some system admin screwed up the TMP environment variable. It was set to a bad value.
me@mybox:~/sandbox
$ set | grep ^TMP=
TMP=Invalid
Brilliant. Unsetting that variable fixed the problem, after I removed the ,example, file from the RCS directory, of course.
me@mybox:~/sandbox
$ unset TMP
me@mybox:~/sandbox
$ rm RCS/,example,
rm: remove write-protected regular file `RCS/,example,'? y
me@mybox:~/sandbox
$ ci -l example
RCS/example,v  <--  example
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> It works!
>> .
done

1 comment:

  1. thanks, just found this and it saved me! I had TMPDIR= (so nothing) and was having same results as you. thanks again!

    ReplyDelete