Статьи

Возиться с PECL :: cvsclient

Просто ради интереса, взломал расширение cvsclient Сары Големон . Возможность доступа к CVS через HTTP (возможно, для интерфейса HTML-форм для обновлений или демонстрации с помощью XML-RPC / SOAP) является очень важной целью IMO.

Обратите внимание, что cvsclient является бета-версией (0.2) с только ограниченными функциональными возможностями для чтения репозитория и изучения журналов для данного файла. Там также рядом с нулевым документации, кроме источника.

Если вы работаете в Linux и у вас настроен менеджер пакетов PEAR, для установки cvsclient в качестве общей библиотеки требуется только набрать «pear install cvsclient-beta», а затем добавить .so файл в ваш php.ini в качестве расширения. Если вы работаете в Windows … вам, вероятно, нужно попросить владельца этого сайта .

Был в состоянии подключиться к хранилищу WACT CVS в Sourceforge, как;

$cvs_server = 'cvs.sf.net'; $cvs_root = '/cvsroot/wact'; if ( !$cvs = cvsclient_connect($cvs_server,$cvs_root) ) { die('Could not connect'); } echo "Connected to servern"; $cvs_user = 'anonymous'; $cvs_pass = ''; if ( !cvsclient_login($cvs,$cvs_user,$cvs_pass) ) { die ('Could not login'); } echo "Logged inn";

$cvs_server = 'cvs.sf.net'; $cvs_root = '/cvsroot/wact'; if ( !$cvs = cvsclient_connect($cvs_server,$cvs_root) ) { die('Could not connect'); } echo "Connected to servern"; $cvs_user = 'anonymous'; $cvs_pass = ''; if ( !cvsclient_login($cvs,$cvs_user,$cvs_pass) ) { die ('Could not login'); } echo "Logged inn";

PHP предоставляет две дополнительные функции: cvsclient_retrieve () и cvsclient_log (), первая из которых, по-видимому, выполняет итерацию содержимого каталога в CVS, а вторая может использоваться для извлечения журнала для одного файла, например;

$module = 'wact'; $path = '.'; while ($file = cvsclient_retrieve($cvs,$module,$path) ) { echo $file; }

и

$file = 'README'; print_r (cvsclient_log($cvs,$module,$file));

Не удалось получить доступ к каталогам ниже корня модуля WACT — я не уверен, является ли это моей ошибкой или ограничением в текущей версии. Также, похоже, нет способа получить имя файла из cvsclient_retrieve (), но. опять же, возможно, я упустил суть.

В любом случае — хотя сейчас это не то, что нужно запускать в производство, определенно стоит следить. Пожелайте автору удачи в этом.