[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CVS "Search" function?
Re: CVS "Search" function?
Fri, 26 Sep 2008 09:59:45 -0400
Thunderbird 18.104.22.168 (X11/20080707)
Hamilton, Fred wrote, On 09/25/2008 12:23 PM:
I think we need a bit more information.
When you say "He then deleted all that code" do you mean:
A) he logged into the cvs server (or accessed the NFS drive) an
executed `rm important/code/`.
He didn't have the know-how to do that.
Let's keep hoping. :)
B) in his sandbox he executed
`cvs remove -f important/code;cvs commit -m "hurt these guys"`. ????
I'm pretty sure it was more something like that. We're using
TortoiseCVS on WinXP, so I think he just removed and committed the
remove as you state (not 100% sure about the switches).
Good, then you should be able to use just CVS commands to recover the files.
BTW, he wasn't
intentionally trying to hurt us, he just had no clue how to use CVS and
apparently it didn't occur to him to ask or look it up or think before
This is why I usually run over each VC plan (pre execution) with anyone who
will be messing about in my repositories, until I think they "Get It"(tm).
BTW my -m "text" was mostly for flair.
You do have backups of the repository prior to his changes, RIGHT????
I'm sure we do, though this happened 18 months ago so the backups are
probably spaced pretty coarsely in time.
If you still have them, I would sequester (don't allow it to be reused or
destroyed) the backup media until I was sure that we had all the files back
the way you wanted them.
To answer the two questions at the end of your email: maybe, probably.
I ended up doing "cvs log >logfile.txt" I found many earlier versions of
the file in different projects.
I find when doing this kind of work, cvs2cl (or cvs2cl.py on windows, comes
with CVSNT & tortoise) to be very useful, as it lets you see the big sweeping
changes, such as a directory tree getting cvs removed or added at the same time.
My standard execution would be:
cvs2cl -r -t
BTW, Is your repository server running a CVS version or CVSNT version?
The reason for asking is that CVSNT keeps 'change set' records that may be
I didn't find any checked in by me, but
I did find plenty of pre-genocide files, followed by the deletion,
followed by the re-adding once we discovered they had been deleted, so I
think it's a comprehensive list of all the files.
If $CVSROOT/CVSROOT/history was kept, the cvs history command might be of help
and it sounds like once you have found the files and versions you need to work
with, you already know about using `cvs add` and `cvs update -jnew -jold` for
At this point I'm starting to think that I never did check in this file
myself - I must have given it to the employee to check in.
In any case, I did find a version of it that I can use.
Nice to hear.
Thanks for your support!
suggestion for the future:
When having someone re-factor a baseline|directory tree, it is usually a good
idea to have someone who is both very familiar with the version control tool
and very familiar with configuration management practices do: A) planning
(scripting) of the changes, B) test in a copy of the baseline, C) execute the
plan on the real baseline. And it only hurts a little if they happen to be
obsessive compulsively detail oriented.
I have seen, too many times, junior folks assigned to the role of "integrator"
or "Configuration Manager" and because they A) don't know what they are doing,
B) don't have a desire to learn the tools and C) think they know it all (think
straight from college, or the old mainframe-er thrown on your modern
development team), make a right royal mess.
[In slight defense of the old mainframe-er, at least the mess is from keeping
too much stuff, which happens to be reasonably organized.]
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter