Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>To back out a revision of a single file, use <code>cvs admin -o</code>.</p> <p>See the CVS documentation (<code>info cvs</code> if you're on a Unix-like system) for details, or see <a href="http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_16.html#SEC124" rel="noreferrer">this link</a>.</p> <p>Quoting from the manual:</p> <pre><code>`-oRANGE' Deletes ("outdates") the revisions given by RANGE. Note that this command can be quite dangerous unless you know _exactly_ what you are doing (for example see the warnings below about how the REV1:REV2 syntax is confusing). If you are short on disc this option might help you. But think twice before using it--there is no way short of restoring the latest backup to undo this command! If you delete different revisions than you planned, either due to carelessness or (heaven forbid) a CVS bug, there is no opportunity to correct the error before the revisions are deleted. It probably would be a good idea to experiment on a copy of the repository first. </code></pre> <p>It then gives a number of ways to specify a revision, or a range of revisions, to delete.</p> <p>As it says, this can be quite dangerous; it erases information from the repository, which is usually exactly what any revision control system tries to prevent.</p> <p>If you don't need to change history like this, just grab a copy of the older version and check it in on top of the bad revision, as Dave M's answer suggests.</p> <p>And you're right, CVS's emphasis is on individual files; more modern systems tend to emphasize the state of the entire repository.</p> <p>So far, all of this only lets you process one file at a time.</p> <p>But you could check out an entire module as of a specified date into a separate directory (<code>cvs checkout -D date</code>), then copy the files over your current copy of the module, and check everything in. If you do this, be sure to do a "cvs diff" so you know exactly what changes you're making.</p> <p>I don't know of a good way to get more concise log information. <code>cvs log</code> with no arguments gives you a log for each file, not in chronological order. <code>cvs log filename</code> gives you a log for a specified file, but doesn't relate it to other files that may have been modified at the same time. Personally, I might consider writing a Perl script that gathers the information printed by <code>cvs log</code> and rearranges it for display, but that's probably more work than you're interested in doing.</p> <p>There are tools to import CVS repositories into something more modern.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload