- // How can we know _how_ to do the checkout?
- // With the current VC support it has to be an RCS
- // file since CVS and SVN do not have special ,v files.
- RCS::retrieve(fn);
- return true;
+ // Since the retrieve commands are implemented using
+ // more general update commands we need to ensure that
+ // we do not change an existing file by accident.
+ if (fn.exists())
+ return false;
+ if (foundRCS)
+ return RCS::retrieve(fn);
+ else if (foundCVS)
+ return CVS::retrieve(fn);
+ else
+ return SVN::retrieve(fn);