{"id":1575,"date":"2011-01-28T12:27:00","date_gmt":"2011-01-28T05:27:00","guid":{"rendered":"http:\/\/www.jfdesignnet.com\/?p=1575"},"modified":"2011-01-28T12:27:00","modified_gmt":"2011-01-28T05:27:00","slug":"viewvc-svn-browser","status":"publish","type":"post","link":"https:\/\/www.jfdesignnet.com\/?p=1575","title":{"rendered":"viewvc svn browser"},"content":{"rendered":"<p style=\"text-align: justify;\">Just recently I need some software to browse one of our svn repository as an interface so the manager could monitoring the progress from their dev team. I usualy not need this independently since I always maintain the development using trac that has a built in module for svn repository. This time the dev team not using trac and I have to find a way so the svn can be browse easily and must be a web based. I&#8217;m stuck on a small program named viewvc, <a href=\"http:\/\/viewvc.tigris.org\/\">ViewVC<\/a> is a Subversion       repository browser software having many useful features. Based on       python and cgi to run it. If you are maintaining a Subversion server, you should install it to view repositories, files, branches, directories, versions or comparison between versions.<\/p>\n<p style=\"text-align: justify;\">Here is the simple steps and config I use :<\/p>\n<ul>\n<li style=\"text-align: justify;\">Get the latest version of viewvc from <a href=\"http:\/\/viewvc.tigris.org\/\">here<\/a>, when writing of this article the latest version was 1.2-dev. I\u2019m using the development branch, you can use more stable. Untar it and start the installation:<\/li>\n<\/ul>\n<pre class=\"brush:plain\"># tar xzf viewvc-1.2-dev.tar.gz\n# cd viewvc-1.2-dev\n# .\/viewvc-install<\/pre>\n<p>Here is the complete log :<\/p>\n<pre class=\"brush:plain\">[root@krsprogdomain viewvc-1.2-dev-20101229]# .\/viewvc-install\nThis is the ViewVC 1.2-dev installer.\n\nIt will allow you to choose the install path for ViewVC.\u00a0 You will now\nbe asked some installation questions.\u00a0 Defaults are given in square brackets.\nJust hit [Enter] if a default is okay.\n\nInstallation path [\/usr\/local\/viewvc-1.2-dev]:\n\nDESTDIR path (generally only used by package maintainers) []:\n\nInstalling ViewVC to \/usr\/local\/viewvc-1.2-dev:\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/viewvc.cgi\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/query.cgi\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/bin\/wsgi\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/wsgi\/viewvc.wsgi\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/wsgi\/viewvc.fcgi\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/wsgi\/query.wsgi\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/wsgi\/query.fcgi\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/bin\/mod_python\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/mod_python\/viewvc.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/mod_python\/query.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/mod_python\/handler.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/mod_python\/.htaccess\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/standalone.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/loginfo-handler\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/cvsdbadmin\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/svndbadmin\ninstalled \/usr\/local\/viewvc-1.2-dev\/bin\/make-database\ninstalled \/usr\/local\/viewvc-1.2-dev\/viewvc.conf.dist\ninstalled \/usr\/local\/viewvc-1.2-dev\/viewvc.conf\ninstalled \/usr\/local\/viewvc-1.2-dev\/cvsgraph.conf.dist\ninstalled \/usr\/local\/viewvc-1.2-dev\/cvsgraph.conf\ninstalled \/usr\/local\/viewvc-1.2-dev\/mimetypes.conf.dist\ninstalled \/usr\/local\/viewvc-1.2-dev\/mimetypes.conf\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/accept.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/blame.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/compat_difflib.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/compat_ndiff.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/config.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/cvsdb.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/dbi.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/debug.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/ezt.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/idiff.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/popen.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/query.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/sapi.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/__init__.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/forbidden\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/forbidden\/__init__.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/forbiddenre\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/forbiddenre\/__init__.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/svnauthz\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vcauth\/svnauthz\/__init__.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/__init__.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/__init__.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/bincvs.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/blame.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/ccvs.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/__init__.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/common.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/debug.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/default.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/parse_rcs_file.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/run-tests.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/test-data\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/test-data\/default,v\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/test-data\/default.out\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/test-data\/empty-file,v\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/test-data\/empty-file.out\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/ccvs\/rcsparse\/texttools.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/svn\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/svn\/__init__.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/svn\/svn_ra.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/vclib\/svn\/svn_repos.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/viewvc.py\ninstalled \/usr\/local\/viewvc-1.2-dev\/lib\/win32popen.py\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/templates\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/diff.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/dir_new.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/directory.ezt\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/help.css\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/help_dirview.html\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/help_log.html\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/help_query.html\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/help_rootview.html\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/annotate.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/back.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/back_small.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/broken.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/chalk.jpg\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/cvsgraph_16x16.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/cvsgraph_32x32.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/diff.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/dir.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/down.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/download.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/favicon.ico\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/feed-icon-16x16.jpg\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/forward.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/list.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/lock.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/log.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/text.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/up.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/view.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/images\/viewvc-logo.png\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/docroot\/styles.css\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/error.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/file.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/graph.ezt\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/templates\/include\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/diff_form.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/dir_footer.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/dir_header.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/file_header.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/footer.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/header.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/log_footer.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/log_header.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/paging.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/pathrev_form.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/props.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/include\/sort.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/log.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/log_table.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/query.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/query_form.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/query_results.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/revision.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/roots.ezt\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates\/rss.ezt\ncreated\u00a0\u00a0 \/usr\/local\/viewvc-1.2-dev\/templates-contrib\/\ninstalled \/usr\/local\/viewvc-1.2-dev\/templates-contrib\/README\n\nViewVC file installation complete.\n\nConsult the INSTALL document for detailed information on completing the\ninstallation and configuration of ViewVC on your system.\u00a0 Here's a brief\noverview of the remaining steps:\n\n1) Edit the \/usr\/local\/viewvc-1.2-dev\/viewvc.conf file.\n\n2) Either configure an existing web server to run\n\/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/viewvc.cgi.\n\nOr, copy \/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/viewvc.cgi to an\nalready-configured cgi-bin directory.\n\nOr, use the standalone server provided by this distribution at\n\/usr\/local\/viewvc-1.2-dev\/bin\/standalone.py.\n\n[root@krsprogdomain viewvc-1.2-dev-20101229]#<\/pre>\n<p style=\"padding-left: 30px;\">Done installing.<\/p>\n<ul>\n<li>Now it;s time to adjust the config to satisfy our needs, edit the \/usr\/local\/viewvc-1.2-dev\/viewvc.conf :<\/li>\n<\/ul>\n<pre class=\"brush:plain\">svn_roots = webaxiooworld: \/var\/lib\/svn\/webaxiooworld,\n            communication: \/var\/lib\/svn\/communication\nroot_parents = \/var\/lib\/svn : svn\ndefault_root = cgi\nroot_as_url_component = 1<\/pre>\n<p>There are more some few steps to complete :<\/p>\n<ul>\n<li style=\"text-align: justify;\">Somehow I can&#8217;t find the viewvc.cgi within httpd klixs cgi folder, so copy \/usr\/local\/viewvc-1.2-dev\/bin\/cgi\/viewvc.cgi and queryvc.cgi to \/var\/www\/cgi<\/li>\n<li>Restart httpd server.<\/li>\n<li>Open http:\/\/\/cgi\/viewvc.cgi within webbrowser<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.jfdesignnet.com\/wp-content\/uploads\/2011\/02\/viewvc.jpg\" rel=\"lightbox[1575]\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-1582\" title=\"viewvc\" src=\"http:\/\/www.jfdesignnet.com\/wp-content\/uploads\/2011\/02\/viewvc-300x213.jpg\" alt=\"\" width=\"300\" height=\"213\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just recently I need some software to browse one of our svn repository as an interface so the manager could monitoring the progress from their dev team. I usualy not need this independently since I always maintain the development using trac that has a built in module for svn repository. This time the dev team [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1582,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,9],"tags":[232,242,250],"_links":{"self":[{"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/posts\/1575"}],"collection":[{"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1575"}],"version-history":[{"count":0,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/posts\/1575\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=\/wp\/v2\/media\/1582"}],"wp:attachment":[{"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jfdesignnet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}