{"id":303,"date":"2026-10-13T11:31:05","date_gmt":"2026-10-13T11:31:05","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2011\/12\/19\/stable-cvs-version-11123-released\/"},"modified":"2026-10-13T11:31:05","modified_gmt":"2026-10-13T11:31:05","slug":"stable-cvs-version-11123-released","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/stable-cvs-version-11123-released\/","title":{"rendered":"CVS 1.11.23 Stable Release: What Changed and How to Upgrade Safely"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">CVS 1.11.23 was announced as a <strong>stable<\/strong> release focused on bug fixes and efficiency improvements. This guide helps teams that still maintain legacy CVS environments understand what changed, where the release was distributed, and how to execute a low-risk upgrade workflow for clients and servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2011-12-19; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3877 aligncenter\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2011\/12\/stable-cvs-version.png\" alt=\"stable-cvs-version-1.11.23\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2011\/12\/stable-cvs-version.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2011\/12\/stable-cvs-version-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What the CVS 1.11.23 announcement says<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original release note describes CVS 1.11.23 as a stable maintenance release. In that context, stable means bug-fix oriented rather than feature-heavy.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Stable releases contain bug fixes from previous CVS versions.<\/li><li>An efficiency fix reduces checkout of very old revisions from O(n^2) to O(n).<\/li><li>A Windows file timestamp handling fix is included (bug #22781).<\/li><li>Additional minor fixes and efficiency improvements are included.<\/li><li>The announcement recommends upgrading both CVS clients and CVS servers.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The post also points readers to the NEWS file in the CVS source distribution and the CVS 1.11.23 manual for detailed change documentation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Distribution paths referenced in the release note<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The announcement listed multiple download paths and expected propagation delays across official and mirrored sources.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Source<\/th><th>Availability note in announcement<\/th><th>Operational guidance<\/th><\/tr><\/thead><tbody><tr><td>GNU download server<\/td><td>Expected within about four hours of announcement<\/td><td>Primary source once published there<\/td><\/tr><tr><td>GNU mirrors<\/td><td>Expected after about 24 hours<\/td><td>Check the non-gnu directory on mirrors<\/td><\/tr><tr><td>Savannah download server<\/td><td>May appear earlier than GNU server<\/td><td>Use only if necessary because of expected heavy load<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Project URL from the original post: <a href=\"http:\/\/savannah.nongnu.org\/projects\/cvs\" target=\"_blank\" rel=\"noopener\">http:\/\/savannah.nongnu.org\/projects\/cvs<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Recommended upgrade workflow for legacy CVS environments<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For production systems, treat even a bug-fix release as a controlled change. The flow below is a practical sequence for evaluation and rollout.<\/p>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Inventory client and server versions] --> B[Review NEWS and 1.11.23 manual]\n    B --> C{Low operational risk?}\n    C -- no --> D[Schedule deeper validation]\n    C -- yes --> E[Plan maintenance window]\n    E --> F[Back up CVS repository]\n    F --> G[Upgrade CVS server]\n    G --> H[Upgrade CVS clients]\n    H --> I[Run checkout and update smoke tests]\n    I --> J{Any regressions}\n    J -- yes --> K[Rollback or troubleshoot]\n    J -- no --> L[Complete rollout and monitor]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Example commands for validation and smoke testing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use these as starting points and adapt paths, auth methods, and module names to your environment.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\"># Confirm installed CVS version<\/span>\ncvs --version | head -n <span class=\"hljs-number\">1<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\"># Example repository backup before server upgrade<\/span>\n<span class=\"hljs-comment\"># Adjust the repository path to match your deployment<\/span>\ntar -czf \/tmp\/cvsroot-backup-$(date +%F).tar.gz \/<span class=\"hljs-keyword\">var<\/span>\/lib\/cvs<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\"># Basic client smoke test against a CVS server<\/span>\nCVSROOT=:pserver:user@cvs.example.com:\/cvsroot\ncvs -d <span class=\"hljs-string\">\"$CVSROOT\"<\/span> checkout mymodule\ncd mymodule\n\n<span class=\"hljs-comment\"># Test access to an older revision, then return to head<\/span>\ncvs update -r <span class=\"hljs-number\">1.1<\/span> README\ncvs update -A README<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Upgrade now or defer: quick decision comparison<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Benefits<\/th><th>Trade-offs<\/th><\/tr><\/thead><tbody><tr><td>Upgrade to CVS 1.11.23 now<\/td><td>Applies documented bug fixes and efficiency improvements sooner<\/td><td>Requires change window, validation, and rollback readiness<\/td><\/tr><tr><td>Defer upgrade temporarily<\/td><td>More time for staging and internal compatibility testing<\/td><td>Delays fixes the announcement recommends for all clients and servers<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Best practices for maintaining legacy CVS safely<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Always back up CVS repositories before server-side upgrades.<\/li><li>Validate both normal checkouts and access to older revisions in smoke tests.<\/li><li>Upgrade server and client versions in a planned sequence, not ad hoc.<\/li><li>Track release-note references internally so teams can audit why and when changes were made.<\/li><li>Use staged rollouts for multi-team environments to reduce blast radius.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>CVS 1.11.23 was announced as a stable bug-fix release with performance and Windows timestamp improvements. Here is a practical, operations-focused guide to evaluate and roll it out safely.<\/p>\n","protected":false},"author":1,"featured_media":3877,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[370],"tags":[369,2676,2675,2673,2671,2672,2670,2677,2643,2667,2365,2660,338,2668,2678,2669,719,346,226,381,2674],"class_list":["post-303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-perforce","tag-cvs","tag-cvs-1-11-23-introduction","tag-cvs-2011-1-overview","tag-cvs-latest-version","tag-cvs-new-version","tag-cvs-updated-version","tag-cvs-version-1-11-23","tag-introduction-stable-cvs-1-11-23","tag-latest","tag-launch","tag-new","tag-new-version","tag-released","tag-stable","tag-stable-cvs-1-11-23-updates","tag-stable-cvs-version-1-11-23","tag-start","tag-updates","tag-upgrade","tag-version","tag-whats-new-in-perforce-cvs-2011-1"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":79154,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/303\/revisions\/79154"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3877"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}