July 2009

Removendo recursivamente diretórios .svn

Comecei a migrar essa semana todos meus projetos para o SVN. Acontece que, se quisermos baixar o arquivo de um SVN e migrar para outro, temos problemas porque é criado um diretório .svn/ dentro de todos subdiretórios. Para resolver este problema, criei um alias que remove recursivamente os diretórios .svn/ da pasta corrente.

Com o comando find conseguimos achar os diretórios .svn:

$ find . -type d -name .svn

./.svn
./sourceA/.svn
./sourceB/.svn
./sourceB/module/.svn
./sourceC/.svn

Podemos, junto ao find, passar o comando rm -rf:

$ rm -rf `find . -type d -name .svn`

Podemos agora criar um alias e adicionar ao profile do usuário:

$ echo “alias csvn=‘echo ‘removendo pastas .svn/’; rm -rf `find . -type d -name .svn`’” >> ~/.bash_profile
$ . ~/.bash_profile
$ svn checkout svn://server.com/svn/project
A project/index.php
A project/sourceA/a.php
A project/sourceA/a1.php
A project/sourceA/a2.php
A project/sourceB/b.php
A project/sourceB/module/lib.php
A project/sourceC/c.php
Checked out revision 15.
$ cd project
$ csvn
removendo pastas .svn/

Agora podemos fazer checkout de um SVN, jogar para outro e versionar normalmente.

Observações:

-> Tomar muito cuidado para não utilizar este comando na raiz ou em algum diretório perigoso.
-> Não é recomendável utilizar este alias como root.

É isso! Valeu!

php
symfony
unix

Comments (2)

Permalink

Manipulando campos BLOB com symfony 1.2 e Propel 1.3

Estou começando a dar meus primeiros passos com o symfony 1.2. Acabei de perder 1 hora pesquisando sobre como manipular campos BLOB no MySQL.

Tenho uma tabela que possui uma coluna imagem do tipo BLOB. Quando tento obter o valor desta coluna com o $objeto->getImagem(), o retorno é um resource (vardump: Resource id #403). Antigamente, no symfony 1.0, o próprio método era responsável por ‘converter’ o resource para string.

Agora, pesquisando na internet, descobri um modo de fazer esta ‘conversão’. Podemos fazer override da função getImagem() ou criar uma nova. No meu caso, resolvi criar uma função nova. Considerando minha tabela noticia:

lib/model/Noticia.class.php


class Noticia extends BaseNoticia
{
    public function getPathImg() {
        $content="";
        if (is_resource($this->getImagem())) {
          while(!feof($this->getImagem())){
                    $content.= fread($this->getImagem(), 1024);
                  }
                  rewind($this->getImagem());
                  return ‘/uploads/banners/’.$content;
                } else return ‘/uploads/banners/’.$this->getImagem();   
    }
}
 

Achei esta dica no site do propel, em: http://propel.phpdb.org/trac/ticket/672

Pelo status do ticket, este retorno passou a ser um resource por questão de flexibilidade e performance.

Gostaria de obter comentários sobre performance e/ou sugestão sobre esta solução que achei.

Valeu!

php
symfony

Comments (0)

Permalink