Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Subversion Functions : svn_log

svn_log

Returns the commit log messages of a repository URL (PECL svn:0.1-0.2)
array svn_log ( string repos_url [, int revision_no] )

Example 2498. svn_log() example

<?php
print_r
( svn_log('http://www.example.com/', 23) );
?>

The above example will output something similar to:

Array
(
   [0] => Array
   (
       [rev] => 23
       [author] => 'joe'
       [msg] => 'Add cheese and salami to our sandwich.'
       [date] => '2007-04-06T16:00:27-04:00'
       [paths] => Array
           (
               [0] => Array
                   (
                       [action] => 'M'
                       [path] =>  '/sandwich.txt'
                   )
           )
   )
)

Example 2499. Simulating --limit with svn and svn_log()

This sample function simulates the --limit switch by using the SVN executable to return a list of revisions, which are then losslessly accessed using svn_log().

Note:

This function will perform a total of limit + 1 requests: the first request to pull the required revisions, and each one after to retrieve the log item for that request.

<?php
/**
* Retrieves the last $limit log entries.
* @param $repos_url Repository URL of item to get logs for
* @param $limit Integer limit of items
*/
function svn_log_limit($repos_url, $limit) {
   
$limit = (int) $limit;
   if (
$limit <= 0) return array();
   
// -q flag used to prevent server from sending log messages
   
$output = shell_exec("svn log -q --limit $limit $repos_url");
   
preg_match_all('/^r(\d+) /m', $output, $matches);
   
$ret = array();
   foreach (
$matches[1] as $rev) {
       
$log = svn_log($repos_url, (int) $rev);
       
$ret[] = $log[0]; // log is only one item long
   
}
   return
$ret;
}
?>

Change Language


Follow Navioo On Twitter
svn_add
svn_auth_get_parameter
svn_auth_set_parameter
svn_cat
svn_checkout
svn_cleanup
svn_client_version
svn_commit
svn_diff
svn_fs_abort_txn
svn_fs_apply_text
svn_fs_begin_txn2
svn_fs_change_node_prop
svn_fs_check_path
svn_fs_contents_changed
svn_fs_copy
svn_fs_delete
svn_fs_dir_entries
svn_fs_file_contents
svn_fs_file_length
svn_fs_is_dir
svn_fs_is_file
svn_fs_make_dir
svn_fs_make_file
svn_fs_node_created_rev
svn_fs_node_prop
svn_fs_props_changed
svn_fs_revision_prop
svn_fs_revision_root
svn_fs_txn_root
svn_fs_youngest_rev
svn_import
svn_log
svn_ls
svn_repos_create
svn_repos_fs_begin_txn_for_commit
svn_repos_fs_commit_txn
svn_repos_fs
svn_repos_hotcopy
svn_repos_open
svn_repos_recover
svn_status
svn_update
eXTReMe Tracker