svn_status

(PECL svn >= 0.1.0)

svn_statusRetorna o status dos arquivos e diretórios da cópia de trabalho

Descrição

svn_status(string $path, int $flags = 0): array

Retorna o status dos arquivos e diretórios da cópia de trabalho, fornecendo modificações, adições, exclusões e outras alterações nos itens da cópia de trabalho.

Parâmetros

path

Caminho local para o arquivo ou diretório para recuperar o status.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

flags

Qualquer combinação de Svn::NON_RECURSIVE, Svn::ALL (independentemente do status da modificação), Svn::SHOW_UPDATES (entradas serão adicionadas para itens desatualizados), Svn::NO_IGNORE (desconsidera as propriedades svn:ignore ao procurar por novos arquivos) e Svn::IGNORE_EXTERNALS.

Valor Retornado

Retorna um array indexado numericamente de arrays associativos detalhando o status dos itens no repositório:

Array (
    [0] => Array (
        // informação sobre o item
    )
    [1] => ...
)

As informações sobre o item são um array associativo que pode conter as seguintes chaves:

path
String com o caminho para o arquivo/diretório desta entrada no sistema de arquivos local.
text_status
Status do texto do item. Consulte as constantes de status para obter os valores possíveis.
repos_text_status
Status do texto do item no repositório. Tem precisão somente se update estiver definido como true. Consulte as constantes de status para obter os valores possíveis.
prop_status
Status das propriedades do item. Consulte as constantes de status para obter os valores possíveis.
repos_prop_status
Status da propriedade do item no repositório. Tem precisão somente se update estiver definido como true. Consulte as constantes de status para obter os valores possíveis.
locked
Se o item está bloqueado ou não. (Definido somente se true.)
copied
Se o item foi copiado ou não (agendado para adição com histórico). (Definido somente se true.)
switched
Se o item foi alternado ou não usando o comando switch. (Definido somente se true)

Essas chaves só serão definidas se o item for versionado:

name
Nome base do item no repositório.
url
URL do item no repositório.
repos
URL base do repositório.
revision
Número inteiro com revisão do item na cópia de trabalho.
kind
Tipo de item, ou seja, arquivo ou diretório. Consulte as constantes de tipo para obter os valores possíveis.
schedule
Ação agendada para o item, ou seja, adição ou exclusão. Constantes para esses números mágicos não estão disponíveis, elas podem ser emuladas usando:
<?php
if (!defined('svn_wc_schedule_normal')) {
define('svn_wc_schedule_normal', 0); // nada de especial
define('svn_wc_schedule_add', 1); // item será adicionado
define('svn_wc_schedule_delete', 2); // item será excluído
define('svn_wc_schedule_replace', 3); // item será adicionado e excluído
}
?>
deleted
Se o item foi excluído ou não, mas a revisão dos pais está atrasada. (Definido somente se true.)
absent
Se o item está ausente ou não, ou seja, o Subversion sabe que deveria haver algo lá, mas não há. (Definido somente se true.)
incomplete
Se o arquivo de entradas de um diretório está incompleto ou não. (Definido somente se true.)
cmt_date
Inteiro com o timestamp Unix da data/horário do último envio. (Não afetado por update.)
cmt_rev
Inteiro com a revisão do último envio. (Não afetado por update.)
cmt_author
String com o nome do autor do último envio. (Não afetado por update.)
prop_time
Inteiro com o timestamp Unix do último horário atualizado para as propriedades.
text_time
Inteiro com o timestamp Unix do último horário atualizado para o texto.

Exemplos

Exemplo #1 Exemplo básico

Este exemplo demonstra um uso teórico básico desta função.

<?php
print_r
(svn_status(realpath('wc')));
?>

O exemplo acima produzirá algo semelhante a:

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // item foi modificado
        [repos_text_status] => 1 // nenhuma informação disponível, use 'update'
        [prop_status] => 3 // sem alterações
        [repos_prop_status] => 1 // nenhuma informação disponível, 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 // arquivo
        [schedule] => 0 // nenhuma ação especial programada
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
-2
matthijs at fragfrog dot nl
13 years ago
There seems to be an undocumented function svn_info (arguably the proper name for this functionality) that does almost the same as svn_status, but ignores the second parameter.

Unfortunately, neither can directly be used to just retrieve the current revision of a working copy, but a combination of svn_status and SVN_NON_RECURSIVE|SVN_ALL will work; simply perform the following command:

<?php
svn_status
(ROOT, SVN_NON_RECURSIVE|SVN_ALL);
?>

Where ROOT is of course the root of the working directory you wish to examine. One of the entries will be that working directory, including its current status.
To Top