{"id":370,"date":"2013-01-21T21:00:00","date_gmt":"2013-01-21T21:00:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-en\/2013\/01\/21\/cvs-tools-sourceforge\/"},"modified":"2013-01-21T21:00:00","modified_gmt":"2013-01-21T21:00:00","slug":"cvs-tools-sourceforge","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-en\/2013\/01\/21\/cvs-tools-sourceforge\/","title":{"rendered":"CVS Tools (sourceforge)"},"content":{"rendered":"<p>\t\t\t\t<a href=\"http:\/\/cvs-tools.sourceforge.net\/\">CVS Tools &#8211; Utilities for adminitrators and end users<\/a><\/p>\n<ul>\n<li>cvsstat.pl \u2013 format the output of <i>cvs stat -v<\/i> to a more informative tree-like listing from where you can see development lines and branches.<\/li>\n<li>cvsup.sh \u2013 format the output of <i>cvs update<\/i> to see only relevant messages. Modifications, errors and conflicts etc. are reported, otherwise the output is quiet. Helps updating large trees and seing only what&#8217;s important.<\/li>\n<li>cvsed.pl \u2013 a general tool to change (&#8220;edit&#8221;) CVS repository file contents CVS\/Root and CVS\/Repository easily. In fact this program can change any file recursively, so it&#8217;s not just for CVS.<\/li>\n<\/ul>\n<p>\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVS Tools &#8211; Utilities for adminitrators and end users cvsstat.pl \u2013 format the output of cvs stat -v to a more informative tree-like listing from where you can see development lines and branches. cvsup.sh \u2013 format the output of cvs update to see only relevant messages. Modifications, errors and conflicts etc. are reported, otherwise the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[666],"tags":[],"class_list":["post-370","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0kP-5Y","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}