Recentemente adotamos o Phabricator na empresa, com isso a medida que estamos portando os projetos da ferramenta anterior para ele vamos descobrindo ajustes necessários para uma melhor utilização.
Basicamente para que o Diffusion do Phabricator possa realizar as comparações de mudanças realizadas entre uma versão e outra é necessário que os arquivos dos códigos fontes estejam em UTF8 e alguns projetos antigos que temos, ainda estava sendo utilizado o formato ANSI o que acabava fazendo com que o Phabricator identifica-se estes arquivos como binário e não permiti-se que o diff fosse realizado.
Para resolver isso utilizamos o Notepad++ instalando um plugin chamado Python Script que permite executarmos scripts escritos em Python manipulando o Notepad++. Para instalar o plugin é super simples basta acessar o menu Plugins -> Plugin Manager, encontrar o plugin Python Script, seleciona-lo e clicar em Install. Reinicie o Notepad++ após a instalação.
Com o plugin instalado vá no menu Plugins -> Python Script -> New Script em seguida digite o código abaixo:
import os;
import sys;
srcFilePath="C:\\Files\\Projects\\XProject\\src"
for root, dirs, files in os.walk(srcFilePath):
for fn in files:
console.write("Processando: " + root + "\\" + fn + " ext -> " + fn[-4:] + "\r\n")
if fn[-4:] == '.pas':
notepad.open(root + "\\" + fn)
console.write(root + "\\" + fn + "\r\n")
notepad.runMenuCommand("Formatar","Converter para UTF-8 (sem BOM)")
notepad.save()
notepad.close()
Salve no diretório padrão aberto automaticamente ao salvar para que o plugin possa carregar seu script.
Feito isso vá no menu do plugin novamente e abra o console clicando na opção Show Console, para que seja possível acompanhar o log de execução. Em seguida vá no menu do plugin -> Scripts -> Selecione a opção com o nome do arquivo do script que você salvou.
* Nota: Não esquece de alterar o caminho da variável srcFilePath para o de seu projeto e o tipo de arquivo filtrado pela comparação.
Se você digitou digitou certinho o log será preenchido e seus arquivos serão convertidos automaticamente.
Abraço a todos,
Diego Garcia
Boa tarde Diego,
ResponderExcluirCarinha estou utilizando seu script para realizar uma conversao em arquivos xml s fiz as alteracoes na linha 4 colocando meu projeto e alterei a linha 9 colocando a extensao xml. so que retorna erro na linha 10 .
notepad.open(root + "\\" + fn)
^
IndentationError: expected an indented block
Saberia me dizer o que esta de errado?
segue o script completo e alterado
import os;
import sys;
srcFilePath="C:\\Empresa_01"
for root, dirs, files in os.walk(srcFilePath):
for fn in files:
console.write("Processando: " + root + "\\" + fn + " ext -> " + fn[-4:] + "\r\n")
if fn[-4:] == '.xml':
notepad.open(root + "\\" + fn)
console.write(root + "\\" + fn + "\r\n")
notepad.runMenuCommand("Formatar","Converter para UTF-8 (sem BOM)")
notepad.save()
notepad.close()