<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Returns the status of working copy files and directories</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.svn-revert.html">svn_revert</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.svn-update.html">svn_update</a></div> <div class="up"><a href="ref.svn.html">SVN Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.svn-status" class="refentry"> <div class="refnamediv"> <h1 class="refname">svn_status</h1> <p class="verinfo">(PECL svn >= 0.1.0)</p><p class="refpurpose"><span class="refname">svn_status</span> — <span class="dc-title">Returns the status of working copy files and directories</span></p> </div> <div class="refsect1 description" id="refsect1-function.svn-status-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">array</span> <span class="methodname"><strong>svn_status</strong></span> ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$path</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$flags</code><span class="initializer"> = 0</span></span> ] )</div> <p class="para rdfs-comment"> Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy. </p> </div> <div class="refsect1 parameters" id="refsect1-function.svn-status-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter">path</code></em></span> <dd> <p class="para"> Local path to file or directory to retrieve status of. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use <span class="function"><a href="function.realpath.html" class="function">realpath()</a></span> or dirname(__FILE__).</span></p></blockquote> </dd> </dt> <dt> <span class="term"><em><code class="parameter">flags</code></em></span> <dd> <p class="para"> Any combination of <strong><code>SVN_NON_RECURSIVE</code></strong>, <strong><code>SVN_ALL</code></strong> (regardless of modification status), <strong><code>SVN_SHOW_UPDATES</code></strong> (entries will be added for items that are out-of-date), <strong><code>SVN_NO_IGNORE</code></strong> (disregard <em>svn:ignore</em> properties when scanning for new files) and <strong><code>SVN_IGNORE_EXTERNALS</code></strong>. </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.svn-status-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns a numerically indexed array of associative arrays detailing the status of items in the repository: </p> <div class="example-contents screen"> <div class="returnvaluescode"><pre class="returnvaluescode">Array ( [0] => Array ( // information on item ) [1] => ... )</pre> </div> </div> <p class="para"> The information on the item is an associative array that can contain the following keys: </p> <dl> <dt> <span class="term"><var class="varname"><var class="varname">path</var></var></span> <dd> <span class="simpara"> String path to file/directory of this entry on local filesystem. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">text_status</var></var></span> <dd> <span class="simpara"> Status of item's text. Refer to <a href="svn.constants.html#svn.constants.status" class="link">status constants</a> for possible values. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">repos_text_status</var></var></span> <dd> <span class="simpara"> Status of item's text in repository. Only accurate if <em><code class="parameter">update</code></em> was set to <strong><code>TRUE</code></strong>. Refer to <a href="svn.constants.html#svn.constants.status" class="link">status constants</a> for possible values. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">prop_status</var></var></span> <dd> <span class="simpara"> Status of item's properties. Refer to <a href="svn.constants.html#svn.constants.status" class="link">status constants</a> for possible values. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">repos_prop_status</var></var></span> <dd> <span class="simpara"> Status of item's property in repository. Only accurate if <em><code class="parameter">update</code></em> was set to <strong><code>TRUE</code></strong>. Refer to <a href="svn.constants.html#svn.constants.status" class="link">status constants</a> for possible values. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">locked</var></var></span> <dd> <span class="simpara"> Whether or not the item is locked. (Only set if <strong><code>TRUE</code></strong>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">copied</var></var></span> <dd> <span class="simpara"> Whether or not the item was copied (scheduled for addition with history). (Only set if <strong><code>TRUE</code></strong>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">switched</var></var></span> <dd> <span class="simpara"> Whether or not the item was switched using the switch command. (Only set if <strong><code>TRUE</code></strong>) </span> </dd> </dt> </dl> <p class="para"> These keys are only set if the item is versioned: </p> <dl> <dt> <span class="term"><var class="varname"><var class="varname">name</var></var></span> <dd> <span class="simpara"> Base name of item in repository. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">url</var></var></span> <dd> <span class="simpara"> URL of item in repository. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">repos</var></var></span> <dd> <span class="simpara"> Base URL of repository. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">revision</var></var></span> <dd> <span class="simpara"> Integer revision of item in working copy. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">kind</var></var></span> <dd> <span class="simpara"> Type of item, i.e. file or directory. Refer to <a href="svn.constants.html#svn.constants.type" class="link">type constants</a> for possible values. </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">schedule</var></var></span> <dd> <span class="simpara"> Scheduled action for item, i.e. addition or deletion. Constants for these magic numbers are not available, they can be emulated by using: </span> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">if (!</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #DD0000">'svn_wc_schedule_normal'</span><span style="color: #007700">)) {<br /> </span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'svn_wc_schedule_normal'</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">); </span><span style="color: #FF8000">// nothing special<br /> </span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'svn_wc_schedule_add'</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">); </span><span style="color: #FF8000">// item will be added<br /> </span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'svn_wc_schedule_delete'</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">); </span><span style="color: #FF8000">// item will be deleted<br /> </span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'svn_wc_schedule_replace'</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">); </span><span style="color: #FF8000">// item will be added and deleted<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">deleted</var></var></span> <dd> <span class="simpara"> Whether or not the item was deleted, but parent revision lags behind. (Only set if <strong><code>TRUE</code></strong>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">absent</var></var></span> <dd> <span class="simpara"> Whether or not the item is absent, that is, Subversion knows that there should be something there but there isn't. (Only set if <strong><code>TRUE</code></strong>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">incomplete</var></var></span> <dd> <span class="simpara"> Whether or not the entries file for a directory is incomplete. (Only set if <strong><code>TRUE</code></strong>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">cmt_date</var></var></span> <dd> <span class="simpara"> Integer Unix timestamp of last commit date. (Unaffected by <em><code class="parameter">update</code></em>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">cmt_rev</var></var></span> <dd> <span class="simpara"> Integer revision of last commit. (Unaffected by <em><code class="parameter">update</code></em>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">cmt_author</var></var></span> <dd> <span class="simpara"> String author of last commit. (Unaffected by <em><code class="parameter">update</code></em>.) </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">prop_time</var></var></span> <dd> <span class="simpara"> Integer Unix timestamp of last up-to-date time for properties </span> </dd> </dt> <dt> <span class="term"><var class="varname"><var class="varname">text_time</var></var></span> <dd> <span class="simpara"> Integer Unix timestamp of last up-to-date time for text </span> </dd> </dt> </dl> </div> <div class="refsect1 notes" id="refsect1-function.svn-status-notes"> <h3 class="title">Notes</h3> <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function is <em class="emphasis">EXPERIMENTAL</em>. The behaviour of this function, its name, and surrounding documentation may change without notice in a future release of PHP. This function should be used at your own risk. </p></div> </div> <div class="refsect1 examples" id="refsect1-function.svn-status-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-4671"> <p><strong>Example #1 Basic example</strong></p> <div class="example-contents"><p> This example demonstrates a basic, theoretical usage of this function. </p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">svn_status</span><span style="color: #007700">(</span><span style="color: #0000BB">realpath</span><span style="color: #007700">(</span><span style="color: #DD0000">'wc'</span><span style="color: #007700">)));<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output something similar to:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> Array ( [0] => Array ( [path] => /home/bob/wc/sandwich.txt [text_status] => 8 // item was modified [repos_text_status] => 1 // no information available, use update [prop_status] => 3 // no changes [repos_prop_status] => 1 // no information available, use update [name] => sandwich.txt [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt [repos] => http://www.example.com/svnroot/ [revision] => 123 [kind] => 1 // file [schedule] => 0 // no special actions scheduled [cmt_date] => 1165543135 [cmt_rev] => 120 [cmt_author] => Alice [prop_time] => 1180201728 [text_time] => 1180201729 ) ) </pre></div> </div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-function.svn-status-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.svn-update.html" class="function" rel="rdfs-seeAlso">svn_update()</a> - Update working copy</span></li> <li class="member"> <span class="function"><a href="function.svn-log.html" class="function" rel="rdfs-seeAlso">svn_log()</a> - Returns the commit log messages of a repository URL</span></li> <li class="member"><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.status.html" class="link external">» SVN documentation for svn status</a></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.svn-revert.html">svn_revert</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.svn-update.html">svn_update</a></div> <div class="up"><a href="ref.svn.html">SVN Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>