Remover recursivamente diretórios .svn do Subversion

Para quem programa, é comum utilizar Subversion, uma aplicação que controla revisões nos códigos.

Você cria um repositório em um servidor remoto e mais de um programador pode baixar o mesmo projeto e fazer suas modificações.

Quando o programador envia o projeto para o repositório o Subversion mescla todas as alterações impedindo que haja perda e sobrescrição.

Um problema é que toda cópia enviada para o repositório tem pastas .svn que contém metadata. Essas pastas ficam na máquina local e, eventualmente, ao atualizar, há conflito de versões impossibilitando que o programador atualize seu projeto e/ou o repositório.

Para resolver isso, basta remover as pastas .svn.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

1) Abra um terminal;

2) find . -type d -name .svn; rm -rf -v `find /diretorio/ -name *.svn`

3) rm -rf em todas as pastas encontradas;

4) Opção 1: rm -rf `find . -type d -name .svn` 

5) Opção 2: rm -rf  -v `find . -type d -name .svn` 

A opção do ítem 4 procura e apaga tudo o que existir mas não mostra a lista das pastas e a do ítem 5 é no modo verbose, ou seja, procura e apaga tudo o que existir informando o que o comando fizer.

Também fiz um script para facilitar essa remoção bastando criá-lo em qualquer lugar do diretório do usuário com permissão de execução (+x).

#!/bin/bash
echo “Script para remover pastas .svn de projetos Subversion”
echo “Lista das pastas encontradas: ”
find . -type d -name .svn find /diretorio/ -name *.svn
echo -n “Confirma remoção completa (S/N)?”
read opcao
if [ opcao == “S” ]
then
rm -rf `find . -type d -name .svn` rm -rf -v `find /diretorio/ -name *.svn`
echo “Verificando se as pastas foram removidas…”
find . -type d -name .svn find /diretorio/ -name *.svn
echo “Concluído”
else
echo “Finalizando programa…”
fi

É isso aí, abraço.

ATUALIZAÇÃO – 05/03/2013: os comandos antigos, que estão riscados, funcionam mas os que adicionei são mais eficazes.

Anúncios

PySVN Workbench – Alternativa para conexão com servidores SVN

Dica rápida.

PySVN Workbench é um programa para acessar servidores remotos. É uma alternativa ao NetBeans, por exemplo, já que se pode usar o PySVN para baixar e enviar o projeto e usar um gedit ou outro editor qualquer para manipular os arquivos.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

Intalação (no terminal):

1) sudo apt-get install python-svn
2) sudo apt-get install svn-workbench

Testei somente no Ubuntu 10.04, ok?

É isso aí, abraço.

Habilitar o PHP mbstring para PHP MyAdmin

Ao tentar usar o PHP MyAdmin no Fedora 16, tive um erro dizendo que faltava mbstring.

Conforme o PHP.Net, mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstringhandles character encoding conversion between the possible encoding pairs. mbstring is designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below).

Segue o procedimento para instalar e habilitar.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

  1. no terminal
  2. sudo yum install php-mbstring
  3. sudo vim /etc/php.ini
  4. descomentar a linha mbstring.http_input = auto
  5. sudo service httpd restart

É isso ai, abraço.

Remover ítens de menu no Gnome Shell

Dica rápida!

Não notei isso no Gnome 2 mas no Shell (ou 3), muitas vezes, quando removemos programas, o atalho não é removido do menu (Applications / Programming, por exemplo).

Para remover, siga a dica abaixo.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

Em /usr/share/applications e/ou em /home/user/.local/share/applications, apague nomedoprograma.desktop.

Lembrando que user deve ser trocado pelo seu nome de usuário e nomedoprograma pelo nome do programa cujo ícone quer remover (exemplo: MySQLWorkbench.desktop). Testei no Fedora 16, somente.

É isso aí, abraço.

Configurar URLs amigáveis no Apache

As aplicações web dos dias de hoje utilizam muito o que se convencionou chamar URLs amigáveis que nada mais são que URLs sem os caracteres especiais como &, /, etc.

Para que seu Apache consiga interpretar isso, é necessário alterar uma linha do arquivo /etc/apache2/mods-enabled.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

Para Ubuntu:

1) sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

2) sudo vim /etc/apache2/sites-available/default

3) Procure o bloco abaixo e altere AllowOverride None para AllowOverride All

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

4) sudo /etc/init.d/apache2 restart

Para Fedora:

1) sudo vim /etc/httpd/conf/httpd.conf e altere AllowOverride None para AllowOverride All

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

2) sudo vim /etc/php.ini e altere ou preencha o date.timezone como abaixo:

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = America/Sao_Paulo

3) sudo service httpd restart

Perceba que no Ubuntu não há necessidade de configurar o php.ini, basta alterar o mod rewrite. Não sei porque para o Fedora já não fica configurado, só dá mais trabalho, como tudo no Fedora.

Lembrando que vim é um editor de texto, ou seja, você pode usar o que preferir.

É isso aí, abraço.