Blog: jario

Favicon

Favicon. Ícones podem ter diversos propósitos como representar uma determinada ação, superar barreiras de linguagem, sinalização e transmitir uma mensagem. O primeiro browser a utilizar favicon foi o Internet Explorer 5, hoje é largamente usado em praticamente todos o navegadores.

O que é Favicon

A palavra favicon origina de duas palavras em inglês: favorite e icon. Os favicons são pequenas imagens (normalmente 16 por 16 pixels) que ficam guardados no site para visualização pelo navegador.

Favicons são pequenos logotipos ou ícones associados a um site, que se mostram junto aos marcadores na barra de endereços da maioria dos navegadores.

A função de um favicon não é apenas ser, como o nome nos leva a deduzir, um símbolo relacionado aos favoritos. Favicons são parte integrante do branding.

Favicons Geradores online

https://www.favicon-generator.org/

http://www.favicon.cc/

metaTag completa para favicon

`Favicon. Ícones podem ter diversos propósitos como representar uma determinada ação, superar barreiras de linguagem, sinalização e transmitir uma mensagem. O primeiro browser a utilizar favicon foi o Internet Explorer 5, hoje é largamente usado em praticamente todos o navegadores.

O que é Favicon

A palavra favicon origina de duas palavras em inglês: favorite e icon. Os favicons são pequenas imagens (normalmente 16 por 16 pixels) que ficam guardados no site para visualização pelo navegador.

Favicons são pequenos logotipos ou ícones associados a um site, que se mostram junto aos marcadores na barra de endereços da maioria dos navegadores.

A função de um favicon não é apenas ser, como o nome nos leva a deduzir, um símbolo relacionado aos favoritos. Favicons são parte integrante do branding.

Favicons Geradores online

https://www.favicon-generator.org/

http://www.favicon.cc/

metaTag completa para favicon

`


Plugins

Plugins escritos para WordPress. Visite o site http://wordpress.org/plugins para saber mais.


WP Yandex Metrika

WP Yandex Metrika. Very simple plugin for reliably inserting your Yandex Metrica tracking code on every page.

This is a bare bones option for people who are looking to simply insert the basic Yandex Metrika tracking code into the head section of every page without any fuss.

I’ve only included the essential options; it’s not very exciting, but works *reliably*.

  1. Download the latest zip file and extract the `super-simple-google-analytics` directory.

  2. Upload the this directory inside your `/wp-content/plugins/` directory.

  3. Activate ‘Super Simple Yandex Metrika’ on the ‘Plugins’ menu in WordPress.

  4. Click ‘Settings’ underneath the plugin or navigate to Settings > Yandex Metrica and insert your GA tracking code and click the checkbox to turn it on.

  5. That’s it.

https://wordpress.org/plugins/wp-yandex-metrika/


Wordpress

Esta seção é dedicada ao uso do CMS WordPress, aqui dicas e tutoriais para usar este excelente gerenciador de blogs.

Tudo sobre Themes, Plugins, Hacks, SEO, Scripts, dicas e notícias sobre WordPress.


Home

Este blog aborda assuntos de internet no intuito de melhorar a qualidade da internet. Dicas sobre facebook, msns, gmail, twitter, wordpress, drupal, joomla, wiki e outras mais.


4 aplicativos de Controle de Versão Git SVN CVS HG

Controle de Versão. Os aplicativos a segui são usado largamente no Unix e Linux, contudo aqui terá um enfoque para o sistema Microsoft Windows. O Tortoise é uma GUI para os comandos SVN, CVS e GIT. Todos os progrmas são de código aberto (open source), e estão licenciado sob GNU General Public License

TortoiseGit

TortoiseGit Windows Shell Interface para Git. O sistema Git é o mais famoso e mais moderno sistema de controle de versão. Tem um serviço online GitHub e um sistema self hosted GitLab. É um cvs distribuído e também sistema de gerenciamento de código fonte, com ênfase em velocidade.

TortoiseSVN

TortoiseSVN é um cliente do Subversion (SVN) muito usado e seguro. Ele ajuda a gerenciar diferentes versões de código-fonte de projetos. Excelente para controlar versões de trabalhos de mestrados e doutorado. Eu uso nos meus trabalhos. https://svn.jar.io

TortoiseCVS

TortoiseCVS. O cvs é o mais antigo controle de versão usado por acadêmicos nas universidades. Tortoise é um cliente CVS livre para gerenciar arquivos do CVS diretamente no Windows. Com TortoiseCVS, você pode pedir (checkout), update (atualização), validar (concussão) e ver as diferenças, basta clicar no botão direito do mouse nos arquivos e pastas no Explorer. O status de sincronização de um arquivo exibido diretamente através de uma imagem exibida pelos ícones acima do normal.

TortoiseHg

TortoiseHg. Desconhecido e menos popular o TortoiseHg é um cliente de controle de revisão Mercurial, implementado como uma extensão do Windows Explorer e do shell do Nautilus. O cliente subjacente pode ser usado na linha de comando.


8 programas científicos para instalar no computador

Selecionei 8 programas científicos para instalar no computador acadêmico. Os estudantes universitários, professores e pesquisadores não podem deixar de ter em seus computadores. Eles são free e open source, disponíveis para Windows, Mac e Linux.

Gnuplot

Gerador de Gráficos mais antigo e mais usado nas universidades por estudantes de pós-graduação e pesquisadores. Gnuplot é um utilitário de linha de comando para a criação de gráficos 2D e 3D.

http://www.gnuplot.info/

R Projeto para Estatística Computacional

R é um ambiente programável de aplicações para computação estatística. Dispensa apresentações. O blog [http://r.jar.io] possui uma documentação completa sobre o assunto. Uma opção além do mundialmente usado rStudio(https://www.rstudio.com/products/rstudio/download/) é o rkward (https://rkward.kde.org/Download_RKWard) para Windows, Linux e Mac.

https://www.r-project.org/

Scilab

O Scilab, Software de código aberto para computação numérica, é um software científico para computação numérica semelhante ao Matlab que fornece um poderoso ambiente computacional aberto para aplicações científicas. Desenvolvido desde 1990 pelos pesquisadores do INRIA (Institut National de Recherche en Informatique et en Automatique) e do ENPC (École Nationale des Ponts et Chaussées), distribuído gratuitamente via Internet desde 1994, o Scilab é atualmente usado em diversos ambientes industriais e educacionais pelo mundo.

http://www.scilab.org/download/latest

Maxima álgebra computacional

Maxima é um sistema de álgebra computacional que foi desenvolvida no MIT com fundos do United States Department of Energy e outras agências governamentais dos Estados Unidos. O Maxima é um sistema de computação algébrica baseado em uma versão de 1982 do Macsyma. Hoje chamada de Maxima, é mantida por um grupo independente de usuários e desenvolvedores. O Maxima é semelhante ao Matlab e ao Mathematica, possuindo um sistema de álgebra computacional completo especializado em operações simbólicas e oferecendo também recursos numéricos tais como integral, diferencial, sistemas de equações lineares, vetores, matrizes e aritmética de precisão arbitrária.

http://maxima.sourceforge.net/

GNU Scientific Library

O GNU Scientific Library é uma biblioteca de programas que fornece uma extensa coleção de rotinas matemáticas. Se precisa de uma solução de cálculos em qualquer área dos saberes, encontrará um programa no GSL. Existem mais de 1000 rotinas prontas na biblioteca de programas.

http://www.gnu.org/software/gsl/

GNU Octave

GNU Octave é uma linguagem de programação de alto nível e ambiente de computação numérica, principalmente compatível com MATLAB.

https://www.gnu.org/software/octave/

FREEMAT

Programa interativo similar ao Matlab voltado para o cálculo numérico, engenharia e aplicações científicas.

http://freemat.sourceforge.net/

LaTeX

LaTeX é um conjunto de macros para o programa de diagramação de textos TeX, utilizado amplamente na produção de textos matemáticos e científicos, devido a sua alta qualidade tipográfica.

https://www.latex-project.org/


15 programas essenciais para instalar no Windows

Selecionei 15 programas que não podem faltar no seu computador. A maioria deles tem versão para Gnu/Linux. Após instalar o Windows no pc, baixe e instale estes programas para uso eficiente do computador.

  1. Apache OpenOffice – Official Download

Projeto de Código aberto do Apache OpenOffice, a casa do OpenOffice Writer, Calc, Impress, Draw and Base.

Se preferir use o libreOffice

LibreOffice – A melhor suite office livre

LibreOffice Homepage, office suite, download, open standards, open source, free software, LibreOffice.

https://pt-br.libreoffice.org/

  1. SSH Secure Shell Client

https://sils.unc.edu/it-services/servers/using-ssh

http://ssh.com

  1. Filezilla

  2. 7-zip Download

www.7-zip.org/download.html

  1. eMule extreme

http://www.xtreme-mod.net/

http://www.emule-mods.de/

eMule eMule-Project.net

Official eMule Homepage. Downloads

  1. qBittorrent Official Website

https://www.qbittorrent.org/

  1. Youtube Download vídeo or lista youtube-dl

  2. VLC media player

Official download of VLC media player, the best Open Source player …

  1. Xampp

O XAMPP é uma distribuição do Apache fácil de instalar contendo PHP, MySQL e Perl.

  1. Free Download Manager – baixe tudo sem preocupação

Free Download Manager é um programa que realiza o gerenciamento de downloads e otimiza o uso de banda para cada item baixado

http://www.freedownloadmanager.org/pt/

  1. Calibre – E-book management

Leitor de ebooks nos formatos epub mobi lev etc.

https://calibre-ebook.com/

  1. Sigil-Ebook/Sigil: Sigil is a multi-platform EPUB ebook editor

  2. Notepad++ Current Version

14 gedit

O editor padrão do GNOME na versão para o Windows

https://wiki.gnome.org/Apps/Gedit#Download

  1. Thunderbird

Software feito para facilitar o e-mail. O Thunderbird é um aplicativo gratuito, fácil de configurar e personalizar – e está cheio de recursos!


Textile Comandos Guia Rápido

Textile Comandos Guia Rápido. O principais comandos para editar um arquivo textile. Use estes comandos para criar um arquivo textile.

  Escrevendo em Textile





  A single paragraph.

Followed by another.

  formata em:



  A single paragraph. 


    Followed by another.  



        I am <b>very</b> serious.

<pre> I am <b>very</b> serious. </pre>

        formata em:



        I am very serious. 

          I am &lt;b&gt;very&lt;/b&gt; serious.






        I spoke.

And none replied.

        formata em:



        I spoke. And none replied.





        "Observe!"



        formata em:



        “Observe!”





        Observe -- very nice!



        formata em:



        Observe—very nice!





        Observe - tiny and brief.



        formata em:



        Observe – tiny and brief.





        Observe...



        formata em:



        Observe…





        Observe: 2 x 2.



        formata em:



        Observe: 2×2.





        one(TM), two(R), three(C).



        formata em:



        one™, two®, three©.





        Quick Block Modifiers





        h1. Header 1



        formata em:




          Header 1






        h2. Header 2



        formata em:




          Header 2






        h3. Header 3



        formata em:




          Header 3






        An old text

bq. A block quotation.

Any old text

        formata em:



        An old text 



            A block quotation.




          Any old text  



              This is covered elsewhere[1].



              formata em:



              This is covered elsewhere1.





              fn1. Down here, in fact.



              formata em:




                1 Down here, in fact.






              Quick Phrase Modifiers





              I _believe_ every word.



              formata em:



              I believe every word.





              And then? She *fell*!



              formata em:



              And then? She fell!





              I __know__.

I really know.

              formata em:



              I know. I really know.





              ??Cat's Cradle?? by Vonnegut



              formata em:



              Cat’s Cradle by Vonnegut





              Convert with @r.to_html@



              formata em:



              Convert with r.to_html





              I'm -sure- not sure.



              formata em:



              I’m sure not sure.





              You are a +pleasant+ child.



              formata em:



              You are a pleasant child.





              a ^2^ + b ^2^ = c ^2^



              formata em:



              a 2 + b 2 = c 2





              log ~2~ x



              formata em:



              log 2 x





              I'm %unaware% of most soft drinks.



              formata em:



              I’m unaware of most soft drinks.





              I'm %{color:red}unaware%

of most soft drinks.

              formata em:



              I’m unaware of most soft drinks.





              Attributes





              p(example1). An example



              formata em:




                An example






              p(#big-red). Red here



              formata em:




                Red here






              p(example1#big-red2). Red here



              formata em:




                Red here






              p{color:blue;margin:30px}. Spacey blue



              formata em:



              Spacey blue





              p[fr]. rouge



              formata em:




                rouge






              I seriously *{color:red}blushed*

when I (big)sprouted that corn stalk from my %[es]cabeza%.

              formata em:



              I seriously blushed when I sprouted that corn stalk from my cabeza.





              p&lt;. align left



              formata em:



              align left





              p&gt;. align right



              formata em:



              align right





              p=. centered



              formata em:



              centered





              p&lt;&gt;. justified



              formata em:



              justified





              p(. left ident 1em



              formata em:



              left ident 1em





              p((. left ident 2em



              formata em:



              left ident 2em





              p))). right ident 3em



              formata em:



              right ident 3em





              h2()&gt;. Bingo.



              formata em:




                Bingo.






              h3()&gt;[no]{color:red}. Bingo



              formata em:




                Bingo






              &lt;pre&gt;

<code> a.gsub!( /</, '' ) </code> </pre>

              formata em:

a.gsub!( /</, '' )

              &ltpre> 


                h3. Sidebar



                &#8220;Hobix&#8221;:http://hobix.com/ &#8220;Ruby&#8221;:http://ruby-lang.org/







                The main text of the page goes here and will stay to the left of the sidebar.  


                  formata em:





                      Sidebar



                      Hobix Ruby




                    The main text of the page goes here and will stay to the left of the sidebar.  



                        Lists





                        # A first item

A second item

A third

                        formata em:





                            A first item


                            A second item


                            A third







                        # Fuel could be:

Coal

Gasoline

Electricity

Humans need only:

Water

Protein

                        formata em:





                            Fuel could be: 

                                Coal


                                Gasoline


                                Electricity





                            Humans need only: 

                                Water


                                Protein









                        * A first item

* A second item * A third

                        formata em:





                            A first item


                            A second item


                            A third







                        * Fuel could be:

** Coal ** Gasoline ** Electricity * Humans need only: ** Water ** Protein

                        formata em:





                            Fuel could be: 

                                Coal


                                Gasoline


                                Electricity





                            Humans need only: 

                                Water


                                Protein









                        External References





                        I searched "Google":http://google.com.



                        formata em:



                        I searched Google.





                        I am crazy about "Hobix":hobix

and "it's":hobix "all":hobix I ever "link to":hobix!

[hobix]http://hobix.com

                        formata em:



                        I am crazy about Hobix and it’s all I ever link to!





                        !http://redcloth.org/hobix.com/textile/sample.jpg!



                        formata em:









                        !openwindow1.gif(Bunny.)!



                        formata em:









                        !openwindow1.gif!:http://hobix.com/



                        formata em:









                        !&gt;obake.gif!

And others sat all round the small machine and paid it to sing to them.

                        formata em:






                          And others sat all round the small machine and paid it to sing to them.  



                              We use CSS(Cascading Style Sheets).



                              formata em:



                              We use CSS.





                              Tables





                              | name | age | sex |

| joan | 24 | f | | archie | 29 | m | | bella | 45 | f |

                              formata em:






                                    name



                                    age



                                    sex





                                    joan



                                    24



                                    f





                                    archie



                                    29



                                    m





                                    bella



                                    45



                                    f








                              |_. name |_. age |_. sex |

| joan | 24 | f | | archie | 29 | m | | bella | 45 | f |

                              formata em:






                                    name



                                    age



                                    sex





                                    joan



                                    24



                                    f





                                    archie



                                    29



                                    m





                                    bella



                                    45



                                    f








                              |_. attribute list |

|<. align left | |>. align right| |=. center | |<>. justify | |^. valign top | |~. bottom |

                              formata em:






                                    attribute list





                                    align left





                                    align right





                                    center





                                    justify





                                    valign top





                                    bottom








                              |\2. spans two cols |

| col 1 | col 2 |

                              formata em:






                                    spans two cols





                                    col 1



                                    col 2








                              |/3. spans 3 rows | a |

| b | | c |

                              formata em:






                                    spans 3 rows



                                    a





                                    b





                                    c








                              |{background:#ddd}. Grey cell|



                              formata em:






                                    Grey cell








                              table{border:1px solid black}.

|This|is|a|row| |This|is|a|row|

                              formata em:






                                    This



                                    is



                                    a



                                    row





                                    This



                                    is



                                    a



                                    row








                              |This|is|a|row|

{background:#ddd}. |This|is|grey|row|

                              formata em:






                                    This



                                    is



                                    a



                                    row





                                    This



                                    is



                                    grey



                                    row







                            Leia também um guia de referência completa do textile http://redcloth.org/hobix.com/textile/

Formatação de texto em Textile

Formatação de texto em Textile. Para elementos como cabeçalhos, negrito, tabelas, listas e vários comandos HTML pode ser usado a sintaxe Textile escrita mais rápida e eficiente. Consulte outras publicações no blog para informações de uso de mais funcionalidades. Alguns exemplos são apresentados a seguir por serem mais recorrentes na escrita.

Formatação de texto em Textile

 

Acrônimo

JPL(Jean-Philippe Lang)

Exibe:

JPL

Estilo de fonte

* *negrito*
* _itálico_
* *_negrito itálico_*
* +sublinhado+
* -riscado-
* Texto ^sobrescrito^
* Texto ~subscrito~
* @Monoespaçado em linha@
* normal *negrito* _itálico_ normal;E=mc ^2^
* normal*negrito*_itálico_normal;E=mc^2^
* Escapando: *negrito* _itálico_ @monoespaçado@ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alternativa usando códigos HTML: &#42;negrito&#42; &#95;itálico&#95; &#64;monoespaçado&#64;
* *algumas linhas*      algum "link":http://www.redmine.org
* *algumas linhas*      algum "link":http://www.redmine.org

Exibição:

  • negrito
  • itálico
  • negrito itálico
  • sublinhado
  • riscado
  • Texto sobrescrito
  • Texto subscrito
  • Monoespaçado
  • normal negrito itálico normal;E=mc 2
  • normalnegrito_itálico_normal;E=mc2
  • Escaping: *negrito* _itálico_ @monoespaçado@       Alternativa usando códigos HTML: *negrito* _itálico_ @monoespaçado@
  • algumas linhas algum "link":http://www.redmine.org

  • algumas linhas algum link

Cores

* %{color:red}vermelho% %{color:green}verde% %{color:yellow}amarelo% %{color:#82B6E1}azul%
* %{color:red}vermelho%%{color:green}verde%%{color:yellow}amarelo%%{color:#82B6E1}azul%
* %{background:lightgreen}Fundo verde-claro% %{background:yellow}Fundo amarelo%
* %{background:lightgreen}Fundo verde-claro%%{background:yellow}Fundo amarelo%

Exibição:

  • vermelho verde amarelo azul
  • vermelhoverdeamareloazul
  • Fundo verde-claro Fundo amarelo
  • Fundo verde-claroFundo amarelo

Imagens

  • !image_url! exibe imagem localizada em image_url (textile syntax)
  • !>image_url! imagem alinhada à direita
  • !image_url(Image title)! exibe imagem com atributo alt/title
  • !image_url!:URL exibe imagem localiza em image_url com link embutido

Se você tiver uma imagem anexada na página wiki, pode ser inserida informando o nome do arquivo: !attached_image.png!

Você também pode aplicar estilo CSS na image da mesma forma ao estilizar SPANs. O código !{width: 100%}attached_image.png! irá ajustar a imagem conforme largura do elemento pai.

Cabeçalhos

h1. Título

h2. Subtítulo

h3. Subtítulo

Redmine atribui uma âncora para cada um desses títulos, assim você pode linká-los com “#Heading”, “#Subheading” e assim por diante.

Parágrafos

p. alinhado à esquerda

  p(. identado à equerda em 1em

    p((. identado à equerda em  2em
    bem como as seguintes linhas

                                                                                   p>. alinhado à direita

                                                                        p)))>. identado à direita em 3em

                           p=. Parágrafo centralizado.

Linha horizontal

----

Exibição:


Pré-definido

Para escapar sintaxe wiki

<pre> Seu texto não será negrito </pre>

Exibição:

Seu texto não será negrito

Citações

Inicie o parágrafo com bq.:

bq. Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.
To go live, all you need to add is a database and a web server.

Exibição:

Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.

To go live, all you need to add is a database and a web server.

Você também pode usar > no inicio de cada linha e empilhá-los para citações aninhadas:

>> Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern. >> To go live, all you need to add is a database and a web server. > Great!

Exibição:

Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern.

To go live, all you need to add is a database and a web server.

Great!

Listas não-ordenadas

  • Item 1
  • Item 2 ** Item 21 ** Item 22
  • Item 3

exibição:

  • Item 1
  • Item 2
    • Item 21
    • Item 22
  • Item 3

Listas ordenadas

Item 1

Item 2

Item 3

Item 3.1

Item 3.2

exibição:

  1. Item 1
  2. Item 2
  3. Item 3
    1. Item 3.1
    2. Item 3.2

Tabelas

|.UserID |.Nome |.Grupo |. lista atributos | |Iniciando com | uma | simples |linha | |\3=.TI |<. alinha esquerda | |1 |Artur Pirozhkov |/2.Users |>. alinha direita | |2 |Vasya Rogov |=. centraliza | |3 |John Smith |Admin (root) |^. alinha topo | |4 |- |Ninguém (anônimo) |~. alinha base |

displays (all multiple spaces are replaced by 1 space):

  UserID



  Nome



  Grupo



  lista atributos





  Iniciando com



  uma



  simples



  linha





  TI



  alinha esquerda





  1



  Artur Pirozhkov



  Users



  alinha direita





  2



  Vasya Rogov



  centraliza





  3



  John Smith



  Admin (root)



  alinha topo





  4



  &#8211;



  Ninguém (anônimo)



  alinha base

Se você quiser inserir o caracter | (pipe) dentro da tabela (ex.: links Wiki), deve-se prevenir que o textile os interprete:

  Entrada



  Saída





  |



  |

Tabela de conteúdo (TOC)

{{toc}} => toc alinhado à esquerda
{{>toc}} => toc alinhado à direita

Observe que a tag do TOC precisa de uma linha vazia antes e depois da mesma.

Exemplo:

h1. TítuloUm

h2. subtítulo

{{toc}}

h2. outro subtítulo

Textile

O Textile é uma linguagem de marcação própria para hypertexto do tipo Markup. É simples e fácil de usar, sendo muito mais prática do que o HTML. Assim como no Markdown (uma outra linguagem de marcação – veja um post sobre o Markdown aqui), o Textile permite que você se concentre no conteúdo que está escrevendo, e não na linguagem em si. Linguagens como o HTML, requerem que você saiba exatamente quais são as tags que devem ser utilizadas, obrigando o programador a se concentrar muito mais nas estruturas da linguagem do que no conteúdo em sí. É claro que ninguém escreve textos utilizando as tags do HTML, e é por isso que as linguagem de marcação, como o Textile, existem.

O CMS Textpattern usa esta linguagem na publicação. Também que está acostumado a usar a IDE Eclipse usa esta linguagem.

Textile Principais Comandos

Quick block modifiers:

Header: hn.

Blockquote: bq.

Footnote: fnn.

Numeric list: #

Bulleted list: *

Quick phrase modifiers:

_emphasis_

*strong*

??citation??

-deleted text-

+inserted text+

^superscript^

%span%

To apply attributes:

(class)

(#id)

{style}

[language]

To align blocks:

< right > left

= center

justify

To insert a table:

|a|table|row|

|a|table|row|

To insert a link:

“linktext”:url

To insert an image:

!imageurl!

To define an acronym:

ABC(Always Be Closing)

Notepad++ Textile

Baixe o arquivo da linguagem em https://github.com/yangqiang/textile_npp e adicione ao Notepad++. Facilitará bastante a escrita.

Acesse http://redcloth.org/hobix.com/textile/


Como mover blog Tumblr para Wordpress

Como mover blog Tumblr para WordPress. Mudar o blog inteiro para WordPress em um único click use o app web. Todos os artigos de post e pages serão convertido em .xml WordPress.

Acesse http://tumblr2wordpress.jar.io

basta colocar o nome do blog Tumblr para ter o arquivo WordPress XML (WXR)completo. A boa vantagem deste método é que você pode guardar o arquivo como backup.

Como mover blog Tumblr para WordPress

Migrar do Tumblr para o WordPress é um processo simples, já que a ferramenta possui recurso nativo para importação. Não é preciso copiar manualmente o conteúdo e nem mesmo qualquer conhecimento técnico.

Acesse o seu blog WordPress em FERRAMENTAS, click em importar XML e pronto.

Se preferir o contrário migrar do WORDPRESS para o TUMBLR acesse: http://wordpress2tumblr.jar.io


Converter arquivos Blogger para Wordpress

Converter arquivos Blogger para WordPress. Às vezes para transferir arquivos xml do WordPress para Blogger, ou vice-versa, o indicado é usar os apps web conversores:

Baixe seu arquivo .xml e converta para uma ou outra plataforma conforme seu interesse.

Converter Blogger para WordPress

http://blogger2wordpress.appspot.com/

Converter WordPress para Blogger

http://wordpress2blogger.appspot.com/

Converter WordPress para Blogger

Já se você quer fazer backup do tumblr para wordpress use o app web


SVN Subversion Principais Comandos

SVN Subversion Principais Comandos. Principais Comandos svn, aqui alguns comandos do Subversion. Para utilizado em ambiente Windows, é necessário que seja instalado o cliente Subversion em linha de comando. Na Bireme, é utilizado comumente o TortoiseSVN ao invés da linha de comando, quando se trabalha com Windows, o cliente por linha de comando precisa ser instalado separadamente.

SVN checkout

É utilizado para descarregar o código do projeto, mantendo o versionamento. Dessa forma, é possível manter o código atualizado, enviar novas atualizações, ver diferenças entre versões de arquivos, entre outras funcionalidades que podem ser encontradas no manual do Subversion.

No exemplo a seguir, é feito o checkout da versão do BVS-Site que está em desenvolvimento para uma pasta chamada bvs-trunk:

$ svn co svn://svn.reddes.bvsalud.org/bvs-site/bvs-site/trunk/ bvs-trunk

Revision keywords

HEAD A última (ou “mais recente”) revisão no repositório. (svn co svn://path -r HEAD)

BASE O número de revisão de um item em uma cópia de trabalho. Se o item tiver sido modificado localmente, a “versão BASE” refere-se à forma como o item estaria sem estas modificações locais. (svn log –revision BASE:HEAD)

COMMITED A revisão mais recente anterior, ou igual a, BASE, na qual o item foi modificado. (svn log –revision COMMITTED path)

PREV A revisão imediatamente anterior à última revisão na qual o item foi modificado. Tecnicamente, isto se resume a COMMITTED-1. (svn log –revision PREV path)

SVN update

É utilizado para atualizar o código fonte local com o código fonte existente no repositório do Subversion. O update pode ser realizado sobre arquivo ou diretórios. Caso feito sobre um diretório, serão atualizados também todos arquivos deste diretório e subdiretórios.

O seguinte comando atualiza o arquivo index.php em bvs-trunk/htdocs:

$ svn update bvs-trunk/htdocs/index.php

O seguinte comando atualiza toda a pasta do projeto:

$ svn update bvs-trunk

SVN add & del

São os comando usados para adicionar e excluir arquivos (respectivamente) no subversion.

$ svn add bvs-trunk/htdocs/info.php

ou

$ svn del bvs-trunk/htdocs/info.php

SVN commit

Quando se modifica arquivo e deseja-se que a moficação seja aplicada também no repositório, é utiliza o comando commit, que envia ao servidor todas as alterações ocorridas no código local. Caso feito sobre um diretório, serão enviados também todos arquivos deste diretório e subdiretórios que tenham alguma modificação, ou que tenha sido adicionado.

O seguinte comando envia o arquivo index.php em bvs-trunk/htdocs:

$ svn ci bvs-trunk/htdocs/index.php

O seguinte comando envia ao servidor todos os arquivos da pasta do projeto:

$ svn ci bvs-trunk -m “Uma mensagem para descrever este commit”

Pode ser preciso autenticação para para se enviar um arquivo para o repositório. Quando este for o caso, pode-se utilizar os parâmetros –username e –password. Assim, o comando acima ficaria da seguinte forma:

$ svn ci bvs-trunk --username=fabio --password=f4b1O -m "Descrição para do commit"

Para os que trabalham com o Trac, é possível ter a interação entre os tickets abertos e as mensagens escritas para o commit. Pode-se, por exemplo, fechar um ticket através de um commit. O exemplo a seguir fecha o ticket de número 3.

$ svn ci bvs-trunk -m "resolve *3"

SVN log

Para viasualizar o log de dos commits realizados asta usar os comandos:

$ svn log bvs-trunk/htdocs/index.php

SVN revert

Nem sempre se quer que as alterções feitas seja enviadas para o repositório. Existem casos que é desejado desfazer as alterações feitas localmente. Para isso se utiliza o comando revert, que como os anteriores, pode ser aplicado sobre arquivos ou pastas.

O seguinte comando reverte as alteraç?s do arquivo index.php em bvs-trunk/htdocs:

$ svn revert bvs-trunk/htdocs/index.php

O seguinte comando reverte as alterações de todos os arquivos da pasta do projeto:

$ svn revert --recursive bvs-trunk

Importante: Não é possível desfazer o revert. Depois de feito, todas as alterações são perdidas!

status

Lista todas as diferenças existentes entre o código fonte local e o existente no repositório. Maiores informações sobre o significado das abreviações presentes no resultado podem ser encontradas digitando o seguinte:

SVN help status

Mostra o estado do arquivo index.php em bvs-trunk/htdocs local, em relação ao servidor:

$ svn status bvs-trunk/htdocs/index.php

Lista o estado de todos arquivos e pastas locais em relação ao servidor:

$ svn status bvs-trunk

SVN diff

Exibe as diferenças dos arquivos modificados com os arquivos presente no repositório. Esta ferramenta pode ser usada para criar patches. Isto pode ser feito criando um arquivo contendo diferença de todos arquivos modificados no projeto, da seguinte forma:

$ svn diff htdocs/admin/editor.php > editor.patch

Após esse comando, vai ser gerado um arquivo com as diferenças entre o arquivo editor.php local e o editor.php do repositório. Para este caso, o conteúdo do arquivo gerado é o seguinte:

Index: htdocs/admin/editor/editor.php

--- htdocs/admin/editor/editor.php (revisão 3110) +++ htdocs/admin/editor/editor.php (cópia de trabalho) @@ -57,7 +57,7 @@

Este patch pode ser aplicado em outro local que também tenha o código fonte, de preferência versionado e sob mesma revisão, do BVS-Site. A aplicação pode ser feita da seguinte forma:

$ patch -p0 < editor.patch

Visualizar diferenças da copia local com uma revisão especifica:

$ svn diff htdocs/admin/editor.php --revision 10 > editor.patch

SVN propset

Este comando adiciona propriedades a arquivos e pastas versionados, para ajudar a gerenciar melhor os arquivos dentro da cópia local do código fonte.

svn:ignore

Diz ao Subversion não versionar arquivos com esta propriedade.

Faz com que nenhum arquivo adicionado em bases/site/rss seja versionado:

$ svn propset svn:ignore * $ svn commit .

Retira arquivo bvs-site-conf.php do versionamento:

$ svn del bvs-trunk/htdocs/bvs-site-conf.php $ svn propset svn:ignore bvs-trunk/htdocs/bvs-site-conf.php $ svn commit bvs-trunk/htdocs

A propriedade é criada no escopo da pasta. Por isso faz-se commit da pasta e não do arquivo.

svn:mime-type

Esta propriedade é muito útil quando se usa o Trac. A maioria dos projetos da Bireme contém código e documentos escrito com o conjunto de caracteres ISO-8859-1. Quando estes documentos são vizualizados no Trac, acontecem alguns problema com acentos e caracteres especiais, pois o Trac assume que todo documento seja UTF-8 quando algo diferente não for especificado na propriedade svn:mime-type.

Diz ao SVN que o CHANGES.txt é um arquivo texto e com caracteres mapeados no ISO-8859-1.

$ svn propset svn:mime-type "text/plain;charset=iso-8859-1" bvs-trunk/CHANGES.txt

SVN info

Imprime informações dos arquivos locais.

$ svn info path

SVN import

Importa arquivos de um path local para o repositório.

$ svn import –m “message” local_path svn_path

SVN export

Exporta a arvore de diretórios.

$ svn export svn_path

Recupera a última versão do repositório sem os arquivos de controle de versão (.svn).

SVN list

Lista diretórios no repositório

$ svn list svn_path

Lista diretórios no repositorio (ls unix)

$ svn list --versobe svn_path

SVN blame

Mostra autor e revisão (annotate, praise e ann).

``SVN Subversion Principais Comandos. Principais Comandos svn, aqui alguns comandos do Subversion. Para utilizado em ambiente Windows, é necessário que seja instalado o cliente Subversion em linha de comando. Na Bireme, é utilizado comumente o TortoiseSVN ao invés da linha de comando, quando se trabalha com Windows, o cliente por linha de comando precisa ser instalado separadamente.

SVN checkout

É utilizado para descarregar o código do projeto, mantendo o versionamento. Dessa forma, é possível manter o código atualizado, enviar novas atualizações, ver diferenças entre versões de arquivos, entre outras funcionalidades que podem ser encontradas no manual do Subversion.

No exemplo a seguir, é feito o checkout da versão do BVS-Site que está em desenvolvimento para uma pasta chamada bvs-trunk:

$ svn co svn://svn.reddes.bvsalud.org/bvs-site/bvs-site/trunk/ bvs-trunk

Revision keywords

HEAD A última (ou “mais recente”) revisão no repositório. (svn co svn://path -r HEAD)

BASE O número de revisão de um item em uma cópia de trabalho. Se o item tiver sido modificado localmente, a “versão BASE” refere-se à forma como o item estaria sem estas modificações locais. (svn log –revision BASE:HEAD)

COMMITED A revisão mais recente anterior, ou igual a, BASE, na qual o item foi modificado. (svn log –revision COMMITTED path)

PREV A revisão imediatamente anterior à última revisão na qual o item foi modificado. Tecnicamente, isto se resume a COMMITTED-1. (svn log –revision PREV path)

SVN update

É utilizado para atualizar o código fonte local com o código fonte existente no repositório do Subversion. O update pode ser realizado sobre arquivo ou diretórios. Caso feito sobre um diretório, serão atualizados também todos arquivos deste diretório e subdiretórios.

O seguinte comando atualiza o arquivo index.php em bvs-trunk/htdocs:

$ svn update bvs-trunk/htdocs/index.php

O seguinte comando atualiza toda a pasta do projeto:

$ svn update bvs-trunk

SVN add & del

São os comando usados para adicionar e excluir arquivos (respectivamente) no subversion.

$ svn add bvs-trunk/htdocs/info.php

ou

$ svn del bvs-trunk/htdocs/info.php

SVN commit

Quando se modifica arquivo e deseja-se que a moficação seja aplicada também no repositório, é utiliza o comando commit, que envia ao servidor todas as alterações ocorridas no código local. Caso feito sobre um diretório, serão enviados também todos arquivos deste diretório e subdiretórios que tenham alguma modificação, ou que tenha sido adicionado.

O seguinte comando envia o arquivo index.php em bvs-trunk/htdocs:

$ svn ci bvs-trunk/htdocs/index.php

O seguinte comando envia ao servidor todos os arquivos da pasta do projeto:

$ svn ci bvs-trunk -m “Uma mensagem para descrever este commit”

Pode ser preciso autenticação para para se enviar um arquivo para o repositório. Quando este for o caso, pode-se utilizar os parâmetros –username e –password. Assim, o comando acima ficaria da seguinte forma:

$ svn ci bvs-trunk --username=fabio --password=f4b1O -m "Descrição para do commit"

Para os que trabalham com o Trac, é possível ter a interação entre os tickets abertos e as mensagens escritas para o commit. Pode-se, por exemplo, fechar um ticket através de um commit. O exemplo a seguir fecha o ticket de número 3.

$ svn ci bvs-trunk -m "resolve *3"

SVN log

Para viasualizar o log de dos commits realizados asta usar os comandos:

$ svn log bvs-trunk/htdocs/index.php

SVN revert

Nem sempre se quer que as alterções feitas seja enviadas para o repositório. Existem casos que é desejado desfazer as alterações feitas localmente. Para isso se utiliza o comando revert, que como os anteriores, pode ser aplicado sobre arquivos ou pastas.

O seguinte comando reverte as alteraç?s do arquivo index.php em bvs-trunk/htdocs:

$ svn revert bvs-trunk/htdocs/index.php

O seguinte comando reverte as alterações de todos os arquivos da pasta do projeto:

$ svn revert --recursive bvs-trunk

Importante: Não é possível desfazer o revert. Depois de feito, todas as alterações são perdidas!

status

Lista todas as diferenças existentes entre o código fonte local e o existente no repositório. Maiores informações sobre o significado das abreviações presentes no resultado podem ser encontradas digitando o seguinte:

SVN help status

Mostra o estado do arquivo index.php em bvs-trunk/htdocs local, em relação ao servidor:

$ svn status bvs-trunk/htdocs/index.php

Lista o estado de todos arquivos e pastas locais em relação ao servidor:

$ svn status bvs-trunk

SVN diff

Exibe as diferenças dos arquivos modificados com os arquivos presente no repositório. Esta ferramenta pode ser usada para criar patches. Isto pode ser feito criando um arquivo contendo diferença de todos arquivos modificados no projeto, da seguinte forma:

$ svn diff htdocs/admin/editor.php > editor.patch

Após esse comando, vai ser gerado um arquivo com as diferenças entre o arquivo editor.php local e o editor.php do repositório. Para este caso, o conteúdo do arquivo gerado é o seguinte:

Index: htdocs/admin/editor/editor.php

--- htdocs/admin/editor/editor.php (revisão 3110) +++ htdocs/admin/editor/editor.php (cópia de trabalho) @@ -57,7 +57,7 @@

Este patch pode ser aplicado em outro local que também tenha o código fonte, de preferência versionado e sob mesma revisão, do BVS-Site. A aplicação pode ser feita da seguinte forma:

$ patch -p0 < editor.patch

Visualizar diferenças da copia local com uma revisão especifica:

$ svn diff htdocs/admin/editor.php --revision 10 > editor.patch

SVN propset

Este comando adiciona propriedades a arquivos e pastas versionados, para ajudar a gerenciar melhor os arquivos dentro da cópia local do código fonte.

svn:ignore

Diz ao Subversion não versionar arquivos com esta propriedade.

Faz com que nenhum arquivo adicionado em bases/site/rss seja versionado:

$ svn propset svn:ignore * $ svn commit .

Retira arquivo bvs-site-conf.php do versionamento:

$ svn del bvs-trunk/htdocs/bvs-site-conf.php $ svn propset svn:ignore bvs-trunk/htdocs/bvs-site-conf.php $ svn commit bvs-trunk/htdocs

A propriedade é criada no escopo da pasta. Por isso faz-se commit da pasta e não do arquivo.

svn:mime-type

Esta propriedade é muito útil quando se usa o Trac. A maioria dos projetos da Bireme contém código e documentos escrito com o conjunto de caracteres ISO-8859-1. Quando estes documentos são vizualizados no Trac, acontecem alguns problema com acentos e caracteres especiais, pois o Trac assume que todo documento seja UTF-8 quando algo diferente não for especificado na propriedade svn:mime-type.

Diz ao SVN que o CHANGES.txt é um arquivo texto e com caracteres mapeados no ISO-8859-1.

$ svn propset svn:mime-type "text/plain;charset=iso-8859-1" bvs-trunk/CHANGES.txt

SVN info

Imprime informações dos arquivos locais.

$ svn info path

SVN import

Importa arquivos de um path local para o repositório.

$ svn import –m “message” local_path svn_path

SVN export

Exporta a arvore de diretórios.

$ svn export svn_path

Recupera a última versão do repositório sem os arquivos de controle de versão (.svn).

SVN list

Lista diretórios no repositório

$ svn list svn_path

Lista diretórios no repositorio (ls unix)

$ svn list --versobe svn_path

SVN blame

Mostra autor e revisão (annotate, praise e ann).

``

Mostra autor e revisão especificando a revisão.

```SVN Subversion Principais Comandos. Principais Comandos svn, aqui alguns comandos do Subversion. Para utilizado em ambiente Windows, é necessário que seja instalado o cliente Subversion em linha de comando. Na Bireme, é utilizado comumente o TortoiseSVN ao invés da linha de comando, quando se trabalha com Windows, o cliente por linha de comando precisa ser instalado separadamente.

SVN checkout

É utilizado para descarregar o código do projeto, mantendo o versionamento. Dessa forma, é possível manter o código atualizado, enviar novas atualizações, ver diferenças entre versões de arquivos, entre outras funcionalidades que podem ser encontradas no manual do Subversion.

No exemplo a seguir, é feito o checkout da versão do BVS-Site que está em desenvolvimento para uma pasta chamada bvs-trunk:

$ svn co svn://svn.reddes.bvsalud.org/bvs-site/bvs-site/trunk/ bvs-trunk

Revision keywords

HEAD A última (ou “mais recente”) revisão no repositório. (svn co svn://path -r HEAD)

BASE O número de revisão de um item em uma cópia de trabalho. Se o item tiver sido modificado localmente, a “versão BASE” refere-se à forma como o item estaria sem estas modificações locais. (svn log –revision BASE:HEAD)

COMMITED A revisão mais recente anterior, ou igual a, BASE, na qual o item foi modificado. (svn log –revision COMMITTED path)

PREV A revisão imediatamente anterior à última revisão na qual o item foi modificado. Tecnicamente, isto se resume a COMMITTED-1. (svn log –revision PREV path)

SVN update

É utilizado para atualizar o código fonte local com o código fonte existente no repositório do Subversion. O update pode ser realizado sobre arquivo ou diretórios. Caso feito sobre um diretório, serão atualizados também todos arquivos deste diretório e subdiretórios.

O seguinte comando atualiza o arquivo index.php em bvs-trunk/htdocs:

$ svn update bvs-trunk/htdocs/index.php

O seguinte comando atualiza toda a pasta do projeto:

$ svn update bvs-trunk

SVN add & del

São os comando usados para adicionar e excluir arquivos (respectivamente) no subversion.

$ svn add bvs-trunk/htdocs/info.php

ou

$ svn del bvs-trunk/htdocs/info.php

SVN commit

Quando se modifica arquivo e deseja-se que a moficação seja aplicada também no repositório, é utiliza o comando commit, que envia ao servidor todas as alterações ocorridas no código local. Caso feito sobre um diretório, serão enviados também todos arquivos deste diretório e subdiretórios que tenham alguma modificação, ou que tenha sido adicionado.

O seguinte comando envia o arquivo index.php em bvs-trunk/htdocs:

$ svn ci bvs-trunk/htdocs/index.php

O seguinte comando envia ao servidor todos os arquivos da pasta do projeto:

$ svn ci bvs-trunk -m “Uma mensagem para descrever este commit”

Pode ser preciso autenticação para para se enviar um arquivo para o repositório. Quando este for o caso, pode-se utilizar os parâmetros –username e –password. Assim, o comando acima ficaria da seguinte forma:

$ svn ci bvs-trunk --username=fabio --password=f4b1O -m "Descrição para do commit"

Para os que trabalham com o Trac, é possível ter a interação entre os tickets abertos e as mensagens escritas para o commit. Pode-se, por exemplo, fechar um ticket através de um commit. O exemplo a seguir fecha o ticket de número 3.

$ svn ci bvs-trunk -m "resolve *3"

SVN log

Para viasualizar o log de dos commits realizados asta usar os comandos:

$ svn log bvs-trunk/htdocs/index.php

SVN revert

Nem sempre se quer que as alterções feitas seja enviadas para o repositório. Existem casos que é desejado desfazer as alterações feitas localmente. Para isso se utiliza o comando revert, que como os anteriores, pode ser aplicado sobre arquivos ou pastas.

O seguinte comando reverte as alteraç?s do arquivo index.php em bvs-trunk/htdocs:

$ svn revert bvs-trunk/htdocs/index.php

O seguinte comando reverte as alterações de todos os arquivos da pasta do projeto:

$ svn revert --recursive bvs-trunk

Importante: Não é possível desfazer o revert. Depois de feito, todas as alterações são perdidas!

status

Lista todas as diferenças existentes entre o código fonte local e o existente no repositório. Maiores informações sobre o significado das abreviações presentes no resultado podem ser encontradas digitando o seguinte:

SVN help status

Mostra o estado do arquivo index.php em bvs-trunk/htdocs local, em relação ao servidor:

$ svn status bvs-trunk/htdocs/index.php

Lista o estado de todos arquivos e pastas locais em relação ao servidor:

$ svn status bvs-trunk

SVN diff

Exibe as diferenças dos arquivos modificados com os arquivos presente no repositório. Esta ferramenta pode ser usada para criar patches. Isto pode ser feito criando um arquivo contendo diferença de todos arquivos modificados no projeto, da seguinte forma:

$ svn diff htdocs/admin/editor.php > editor.patch

Após esse comando, vai ser gerado um arquivo com as diferenças entre o arquivo editor.php local e o editor.php do repositório. Para este caso, o conteúdo do arquivo gerado é o seguinte:

Index: htdocs/admin/editor/editor.php

--- htdocs/admin/editor/editor.php (revisão 3110) +++ htdocs/admin/editor/editor.php (cópia de trabalho) @@ -57,7 +57,7 @@

Este patch pode ser aplicado em outro local que também tenha o código fonte, de preferência versionado e sob mesma revisão, do BVS-Site. A aplicação pode ser feita da seguinte forma:

$ patch -p0 < editor.patch

Visualizar diferenças da copia local com uma revisão especifica:

$ svn diff htdocs/admin/editor.php --revision 10 > editor.patch

SVN propset

Este comando adiciona propriedades a arquivos e pastas versionados, para ajudar a gerenciar melhor os arquivos dentro da cópia local do código fonte.

svn:ignore

Diz ao Subversion não versionar arquivos com esta propriedade.

Faz com que nenhum arquivo adicionado em bases/site/rss seja versionado:

$ svn propset svn:ignore * $ svn commit .

Retira arquivo bvs-site-conf.php do versionamento:

$ svn del bvs-trunk/htdocs/bvs-site-conf.php $ svn propset svn:ignore bvs-trunk/htdocs/bvs-site-conf.php $ svn commit bvs-trunk/htdocs

A propriedade é criada no escopo da pasta. Por isso faz-se commit da pasta e não do arquivo.

svn:mime-type

Esta propriedade é muito útil quando se usa o Trac. A maioria dos projetos da Bireme contém código e documentos escrito com o conjunto de caracteres ISO-8859-1. Quando estes documentos são vizualizados no Trac, acontecem alguns problema com acentos e caracteres especiais, pois o Trac assume que todo documento seja UTF-8 quando algo diferente não for especificado na propriedade svn:mime-type.

Diz ao SVN que o CHANGES.txt é um arquivo texto e com caracteres mapeados no ISO-8859-1.

$ svn propset svn:mime-type "text/plain;charset=iso-8859-1" bvs-trunk/CHANGES.txt

SVN info

Imprime informações dos arquivos locais.

$ svn info path

SVN import

Importa arquivos de um path local para o repositório.

$ svn import –m “message” local_path svn_path

SVN export

Exporta a arvore de diretórios.

$ svn export svn_path

Recupera a última versão do repositório sem os arquivos de controle de versão (.svn).

SVN list

Lista diretórios no repositório

$ svn list svn_path

Lista diretórios no repositorio (ls unix)

$ svn list --versobe svn_path

SVN blame

Mostra autor e revisão (annotate, praise e ann).

``SVN Subversion Principais Comandos. Principais Comandos svn, aqui alguns comandos do Subversion. Para utilizado em ambiente Windows, é necessário que seja instalado o cliente Subversion em linha de comando. Na Bireme, é utilizado comumente o TortoiseSVN ao invés da linha de comando, quando se trabalha com Windows, o cliente por linha de comando precisa ser instalado separadamente.

SVN checkout

É utilizado para descarregar o código do projeto, mantendo o versionamento. Dessa forma, é possível manter o código atualizado, enviar novas atualizações, ver diferenças entre versões de arquivos, entre outras funcionalidades que podem ser encontradas no manual do Subversion.

No exemplo a seguir, é feito o checkout da versão do BVS-Site que está em desenvolvimento para uma pasta chamada bvs-trunk:

$ svn co svn://svn.reddes.bvsalud.org/bvs-site/bvs-site/trunk/ bvs-trunk

Revision keywords

HEAD A última (ou “mais recente”) revisão no repositório. (svn co svn://path -r HEAD)

BASE O número de revisão de um item em uma cópia de trabalho. Se o item tiver sido modificado localmente, a “versão BASE” refere-se à forma como o item estaria sem estas modificações locais. (svn log –revision BASE:HEAD)

COMMITED A revisão mais recente anterior, ou igual a, BASE, na qual o item foi modificado. (svn log –revision COMMITTED path)

PREV A revisão imediatamente anterior à última revisão na qual o item foi modificado. Tecnicamente, isto se resume a COMMITTED-1. (svn log –revision PREV path)

SVN update

É utilizado para atualizar o código fonte local com o código fonte existente no repositório do Subversion. O update pode ser realizado sobre arquivo ou diretórios. Caso feito sobre um diretório, serão atualizados também todos arquivos deste diretório e subdiretórios.

O seguinte comando atualiza o arquivo index.php em bvs-trunk/htdocs:

$ svn update bvs-trunk/htdocs/index.php

O seguinte comando atualiza toda a pasta do projeto:

$ svn update bvs-trunk

SVN add & del

São os comando usados para adicionar e excluir arquivos (respectivamente) no subversion.

$ svn add bvs-trunk/htdocs/info.php

ou

$ svn del bvs-trunk/htdocs/info.php

SVN commit

Quando se modifica arquivo e deseja-se que a moficação seja aplicada também no repositório, é utiliza o comando commit, que envia ao servidor todas as alterações ocorridas no código local. Caso feito sobre um diretório, serão enviados também todos arquivos deste diretório e subdiretórios que tenham alguma modificação, ou que tenha sido adicionado.

O seguinte comando envia o arquivo index.php em bvs-trunk/htdocs:

$ svn ci bvs-trunk/htdocs/index.php

O seguinte comando envia ao servidor todos os arquivos da pasta do projeto:

$ svn ci bvs-trunk -m “Uma mensagem para descrever este commit”

Pode ser preciso autenticação para para se enviar um arquivo para o repositório. Quando este for o caso, pode-se utilizar os parâmetros –username e –password. Assim, o comando acima ficaria da seguinte forma:

$ svn ci bvs-trunk --username=fabio --password=f4b1O -m "Descrição para do commit"

Para os que trabalham com o Trac, é possível ter a interação entre os tickets abertos e as mensagens escritas para o commit. Pode-se, por exemplo, fechar um ticket através de um commit. O exemplo a seguir fecha o ticket de número 3.

$ svn ci bvs-trunk -m "resolve *3"

SVN log

Para viasualizar o log de dos commits realizados asta usar os comandos:

$ svn log bvs-trunk/htdocs/index.php

SVN revert

Nem sempre se quer que as alterções feitas seja enviadas para o repositório. Existem casos que é desejado desfazer as alterações feitas localmente. Para isso se utiliza o comando revert, que como os anteriores, pode ser aplicado sobre arquivos ou pastas.

O seguinte comando reverte as alteraç?s do arquivo index.php em bvs-trunk/htdocs:

$ svn revert bvs-trunk/htdocs/index.php

O seguinte comando reverte as alterações de todos os arquivos da pasta do projeto:

$ svn revert --recursive bvs-trunk

Importante: Não é possível desfazer o revert. Depois de feito, todas as alterações são perdidas!

status

Lista todas as diferenças existentes entre o código fonte local e o existente no repositório. Maiores informações sobre o significado das abreviações presentes no resultado podem ser encontradas digitando o seguinte:

SVN help status

Mostra o estado do arquivo index.php em bvs-trunk/htdocs local, em relação ao servidor:

$ svn status bvs-trunk/htdocs/index.php

Lista o estado de todos arquivos e pastas locais em relação ao servidor:

$ svn status bvs-trunk

SVN diff

Exibe as diferenças dos arquivos modificados com os arquivos presente no repositório. Esta ferramenta pode ser usada para criar patches. Isto pode ser feito criando um arquivo contendo diferença de todos arquivos modificados no projeto, da seguinte forma:

$ svn diff htdocs/admin/editor.php > editor.patch

Após esse comando, vai ser gerado um arquivo com as diferenças entre o arquivo editor.php local e o editor.php do repositório. Para este caso, o conteúdo do arquivo gerado é o seguinte:

Index: htdocs/admin/editor/editor.php

--- htdocs/admin/editor/editor.php (revisão 3110) +++ htdocs/admin/editor/editor.php (cópia de trabalho) @@ -57,7 +57,7 @@

Este patch pode ser aplicado em outro local que também tenha o código fonte, de preferência versionado e sob mesma revisão, do BVS-Site. A aplicação pode ser feita da seguinte forma:

$ patch -p0 < editor.patch

Visualizar diferenças da copia local com uma revisão especifica:

$ svn diff htdocs/admin/editor.php --revision 10 > editor.patch

SVN propset

Este comando adiciona propriedades a arquivos e pastas versionados, para ajudar a gerenciar melhor os arquivos dentro da cópia local do código fonte.

svn:ignore

Diz ao Subversion não versionar arquivos com esta propriedade.

Faz com que nenhum arquivo adicionado em bases/site/rss seja versionado:

$ svn propset svn:ignore * $ svn commit .

Retira arquivo bvs-site-conf.php do versionamento:

$ svn del bvs-trunk/htdocs/bvs-site-conf.php $ svn propset svn:ignore bvs-trunk/htdocs/bvs-site-conf.php $ svn commit bvs-trunk/htdocs

A propriedade é criada no escopo da pasta. Por isso faz-se commit da pasta e não do arquivo.

svn:mime-type

Esta propriedade é muito útil quando se usa o Trac. A maioria dos projetos da Bireme contém código e documentos escrito com o conjunto de caracteres ISO-8859-1. Quando estes documentos são vizualizados no Trac, acontecem alguns problema com acentos e caracteres especiais, pois o Trac assume que todo documento seja UTF-8 quando algo diferente não for especificado na propriedade svn:mime-type.

Diz ao SVN que o CHANGES.txt é um arquivo texto e com caracteres mapeados no ISO-8859-1.

$ svn propset svn:mime-type "text/plain;charset=iso-8859-1" bvs-trunk/CHANGES.txt

SVN info

Imprime informações dos arquivos locais.

$ svn info path

SVN import

Importa arquivos de um path local para o repositório.

$ svn import –m “message” local_path svn_path

SVN export

Exporta a arvore de diretórios.

$ svn export svn_path

Recupera a última versão do repositório sem os arquivos de controle de versão (.svn).

SVN list

Lista diretórios no repositório

$ svn list svn_path

Lista diretórios no repositorio (ls unix)

$ svn list --versobe svn_path

SVN blame

Mostra autor e revisão (annotate, praise e ann).

``

Mostra autor e revisão especificando a revisão.

```

SVN resolved

Remove os arquivos criados pelo repositório na existência de conflito.

svn resolved local_path

Outros sistemas de controle de versão:

Git (http://git-scm.com/) Linus Torvalds

Mercurial (http://www.selenic.com/mercurial/wiki/) Sun using for JDK

Bazaar (http://bazaar-vcs.org/)

Perforce (http://www.perforce.com/)

Monotone (http://www.venge.net/monotone/)

Visual SourceSafe (http://msdn.microsoft.com/en-us/vstudio/aa718670.aspx) Microsoft


SVN Guia rápido

Como grande apreciador e usuário há anos do SVN, não poderia deixar de dedicar um pequeno artigo sobre esta fantástica ferramenta de controle de versão, principalmente pela escassez de materais na Internet discutindo seus conceitos de forma pragmática.

Assim, resolvi aproveitar alguns materiais que eu havia escrito para utilização pelos times de desenvolvimento nos quais atuo, incrementei alguma coisinha aqui e acolá e preparei este estrambolicamente dupper master quase infinito artigo.

Para facilitar a leitura, o artigo está dividido em 7 partes:

Público alvo: comentários sobre a quem se destina a leitura deste artigo;

Controle de versão e SVN: o que é controle de versão e como o SVN se encaixa nesse paradigma;

Termos e conceitos básicos: conceitos básicos para entendimento do funcionamento e organização do SVN;

Boas práticas: breve manual de boas práticas na utilização do SVN;

Dicas de utilização: dicas diversas de utilização do SVN;

Ferramentas de apoio: algumas ferramentas interessantes para tornar o uso do SVN mais prático.

Ao infinito e além: costumeira lista de links interessantes.

Público alvo

O cerne deste artigo não é a discussão da utilização do SVN a partir de comandos ou questões técnicas da ferramenta. Para tal, há documentações, livros e artigos na rede muito completos sobre o tema. O público alvo deste artigo são utilizadores do SVN que já tenham familiaridade com suas idiossincrasias e que desejam um melhor entendimento do modelo organizacional da ferramenta e de como estruturar um processo em torno do SVN para tornar mais eficaz o gerenciamento do código-fonte de suas aplicações.

Controle de versão e SVN

Controle de versão é a arte de gerenciar mudanças em informações. Para programadores, é um paradigma obrigatório a ser seguido para assegurar a saúde do código-fonte, ainda mais em grandes equipes atuando cada qual em partes distintas de um projeto.

Back to the FutureVocê, desenvolvedor, também precisa de uma

máquina do tempo para seu código.

O Subversion, ou simplesmente SVN, é uma ferramenta de controle de versão muito poderosa que permite, além do desenvolvimento colaborativo a partir de um repositório único, merge de conteúdo, armazenamento de logs e geração de estatísticas diversas.

Atuando como a máquina do tempo do desenvolvedor, ferramentas com o SVN permitem retornar o código a um estado anterior, facilitando a análise implementações realizadas e a mesclagem de implementações distintas de períodos diferentes para a criação de uma única versão.

(Embora eu seja fãzaço e ávido partidário do SVN, tenho flertado nos últimos tempos com os ótimos Mercurial e GIT, os quais têm realmente me surpreendido e me feito repensar o uso do meu amado idolatrado salve salve SVN. Todavia, isso fica para outro artigo…)

Termos e conceitos básicos

TortoiseSVN Menu

Repositório

É o local aonde estão contidos todos os arquivos do projeto. É armazenado no banco de dados do SVN.

Working Copy

Literalmente, uma cópia de trabalho local na qual o desenvolvedor atua. É criada sempre que é feito checkout de algum projeto.

Checkout

Ato de fazer download de um projeto para a máquina local, de modo que seus arquivos estejam vinculados ao SVN e passíveis de manipulação. O projeto para o qual será feito o checkout deve existir no repositório.

Import

Ato de envio dos arquivos de um novo projeto para o repositório. Após o import, obrigatoriamente um checkout deve ser realizado para que a working copy seja vinculada ao SVN.

Export

Ato de obtenção de um projeto do repositório sem vinculação ao SVN.

Commit

Ato de envio das modificações realizadas localmente para o servidor SVN.

Update

Ato de obtenção das atualizações presentes do servidor SVN, atualizando a cópia local

Revision

Número que identifica cada uma das alterações ou conjunto de alterações realizadas em um repositório. Tal número é obtido a partir de uma sequência a qual é compartilhada por todos os diretórios do repositório.

HEAD

É a revisão mais recente do repositório

Diretórios especiais

Existem no SVN três diretórios especiais com funções bem definidas:

trunk: armazena a versão funcional mais recente de desenvolvimento.

branches: armazena versões de desenvolvimento paralelo oriundas do trunk, porém isoladas deste. Deve ser utilizado quando uma implementação trazer o risco de afetar a integridade do trunk.

Tag: armazena etiquetas para facilitar a localização de revisões. Cada etiqueta possui um nome único que a identifica, sendo criada como um diretório, sempre através do trunk.

Branch/Tag

Refere-se à geração de branches ou tags a partir de um trunk ou geração de um branch a partir de uma tag ou outro branch.

Merge

Refere-se à mesclagem de revisões entre os diretórios especiais. Sempre deve ser realizada com a working copy apontando para o destino do merge.

Switch

Alteração do repositório utilizado por uma working copy. É realizada uma atualização ou mesclagem dos arquivos para assegurar que a working copy contenha exatamente o conteúdo do novo repositório mais quaisquer alterações locais.

Relocate

Realocação do endereço de um repositório. Apenas atualiza o endereço, sem realizar nenhum tipo de atualização nos arquivos.

Boas práticas

Toda revisão deve ser comentada para facilitar o entendimento das alterações realizadas.

O código no trunk deve sempre estar pronto para ser compilado e colocado em produção se necessário. Nesse sentido, uma ferramenta de Integração Contínua, como o CruiseControl, deve ser utilizada para a geração de builds de teste a cada commit e todas as noites ao longo da semana.

É dever de cada programador assegurar que seus commits não causem a quebra do build. Novamente uma ferramenta de Integração Contínua pode auxiliar nesta tarefa.

As alterações em um código-fonte devem ser submetidas ao repositório o mais rápido possível. Para tal, é recomendável a divisão das implementações em pequenos pacotes compiláveis e funcionais ou, ao menos, que não causem a quebra do build. Quanto mais tempo um arquivo mantém-se na máquina de um desenvolvedor em edição, mais difícil será sua mesclagem e maior será o risco de quebra de build.

Toda a quebra de build deve ser tratada com máxima prioridade no sentido de sua correção. Mais uma vez uma ferramenta de Integração Contínua pode auxiliar nesta tarefa.

Caso um build esteja quebrado, não se deve submeter alterações ao repositório até que o build seja novamente compilável. Isso assegura que todos os que realizarem updates terão sempre uma versão compilável e funcional oriunda do repositório.

O projeto no repositório deve conter quaisquer componentes e ferramentas necessárias para o funcionamento da aplicação na máquina do desenvolvedor.

Evitar o envio de alterações próximo do fim do expediente. Caso haja algum problema com o commit realizado, poderá não haver tempo para corrigi-lo naquele dia e o build poderá ficar quebrado por um longo período.

Todo e qualquer backup de versões deve ser mantido no repositório, preferencialmente como uma tag.

Dicas de utilização

Uso do trunk

O trunk sempre representa a última versão de desenvolvimento disponível. Nesse sentido, é aqui que ocorre a integração do projeto a partir de builds automatizados e é aqui que a versão funcional mais recente deve estar presente.

É do trunk também que os branches e tags devem ser gerados (embora branches possam ser gerados de tags e outros branches sem restrições técnicas). A ferramenta de revisão gráfica do TortoiseSVN (Revision Graph) permite visualizar os relacionamentos entre as pastas especiais a partir de diagramas.

Fluxo básico de atividades

O fluxo básico de atividades no repositório consiste na utilização do trunk como ponto principal de checkout para o desenvolvimento. Entretanto, quaisquer tarefas que possam causar grande impacto no trunk devem ser realizadas em um branch separado, o qual receberá as alterações do trunk ao longo do dia ou ao fim do dia para que este seja mantido atualizado.

Tags são utilizadas como backups e marcação de releases diversos do projeto.

Segue abaixo explanação da utilização do fluxo:

Diagrama do fluxo

Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag (opcional);

Criação de branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;

Integração de alterações realizadas no trunk ao branch a partir da ferramenta de mesclagem Merge a Range of Revisions;

Criação de nova branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;

Conclusão do primeiro branch criado, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;

Atualização da segunda branch criada com as atualizações recém realizadas no trunk a partir da ferramenta de mesclagem Merge a Range of Revisions;

Conclusão da segunda branch criada, ocorrendo a reintegração desta no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;

Geração de etiqueta de release da versão do trunk a partir da opção Branch/Tag.

Fluxo básico de atuação em projeto fechado

Quando em atuação em projetos fechados de customização a um cliente, tem-se comumente uma única versão da aplicação em produção, além de outras em ambientes diversos, como por exemplo homologação e testes.

Neste caso, o fluxo básico de atividades também é utilizado. Entretanto, a cada release gerado, além da tag é criado um branch que representa a versão criada. Assim, tem-se no trunk a última versão de desenvolvimento e, em branches separados, cada uma das versões implantadas em ambientes diversos.

Dessa forma, pode-se prestar manutenção às versões presentes em cada um dos ambientes da aplicação de forma simples. Toda vez que uma nova versão de um determinado ambiente é gerado, o branch anterior para tal ambiente é excluído.

Neste fluxo, sempre se espera que todas as revisões do trunk anteriores ao release façam parte deste, não havendo seleção de revisões na concepção de releases.

Segue abaixo explanação da utilização do fluxo:

Diagrama do fluxo

Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag/ (opcional);

Criação de branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;

Integração de alterações realizadas no trunk ao branch a partir da ferramenta de mesclagem Merge a Range of Revisions;

Conclusão do primeiro branch criada, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;

Geração de etiqueta de release da versão do trunk a partir da opção Branch/Tag;

Criação de branch para o release recém gerado a partir da opção Branch/Tag;

Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch se manterá ativo enquanto a versão que o representa estiver em utilização.

Fluxo de atuação em projeto fechado com mesclagem de revisões

A exemplo do Fluxo básico de atuação em projeto fechado, neste fluxo também se considera que há apenas uma única versão da aplicação em produção, além de outras em ambientes diversos, como por exemplo homologação e testes.

Nesta técnica, o fluxo básico de atividades também é utilizado. Entretanto, a cada release gerado, é criado primeiramente um branch baseado em uma tag anterior de ambiente, no qual ocorre mesclagem de revisões do trunk, para que somente após o commit de tal branch seja criada uma nova tag de release que aponte para tal branch (o qual, por sua vez, aponta para o trunk).

Assim, tem-se no trunk a última versão de desenvolvimento e, em branches separados, cada uma das versões implantadas em ambientes diversos, sendo que tais versões, embora venham do trunk, são geradas sempre a partir de tags de versões ante

rios, mantendo dessa forma a seleção de revisões realizada.

Dessa forma, pode-se prestar manutenção às versões presentes em cada um dos ambientes da aplicação de forma simples, além da geração de releases baseados em determinadas revisões do trunk.

Toda vez que uma nova versão de um determinado ambiente é gerado, o branch anterior para tal ambiente é excluído.

Segue abaixo explanação da utilização do fluxo:

Diagrama do fluxo

Considerando-se importação inicial do repositório, deve-se inicialmente criar-se uma tag de release para algum dos ambientes, a qual servirá de base para geração do branch do ambiente com o qual a tag se relaciona a partir da opção Branch/Tag;

Criação de branch para a tag do release recém criado a partir da opção Branch/Tag. Tal branch se mantém ativo enquanto a versão que o representa estiver em utilização.

Criação de feature branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag. O uso desse tipo de branch deve ser avaliado com cautela. O trunk deve sempre ser a versão mais recente de desenvolvimento;

Integração de alterações realizadas no trunk ao feature branch a partir da ferramenta de mesclagem Merge a Range of Revisions;

Conclusão do feature branch criado, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;

Reintegração de correções de bugs realizadas no branch do release atual de algum dos ambientes ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch;

Exclusão do branch de algum dos ambientes por conta de nova versão a ser criada para tal ambiente;

Criação de nova branch para o ambiente a ter a nova versão disponibilizada a partir da tag do último release do ambiente desejado utilizando-se da opção Branch/Tag;

Mesclagem de revisões do trunk na nova branch de release a partir da ferramenta de mesclagem Merge a Range of Revisions e posterior commit destas alterações na própria branch;

Geração de etiqueta de release da versão criada a partir do novo branch utilizando-se da opção Branch/Tag;

Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch se manterá ativo enquanto a versão que o representa estiver em utilização.

Fluxo de atuação em projeto fechado com múltiplos branches

Tal fluxo é uma derivação do Fluxo básico de atuação em projeto fechado. Diferente daquele, neste todas as alterações sempre são realizadas em branches que posteriormente são reintegrados ao trunk. Quaisquer versões a serem geradas (produção, homologação, teste, etc.) são criadas a partir de merge de revisões a partir do trunk sobre o próprio trunk ou de branches sobre o trunk, com posterior geração de novas branches e tag para tal versão.

Neste fluxo, o trunk é utilizado como a versão mais completa da aplicação, contendo todas as implementações já realizadas em branches separados.

O uso dos branches se dá para facilitar a divisão de tarefas e organização das alterações, de modo que solicitações descartadas sejam facilmente ignoradas e não reintegradas ao trunk.

Segue abaixo explanação da utilização do fluxo:

Diagrama do fluxo

Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag (opcional);

Criação de branches para realização de novas implementaões a partir da opção Branch/Tag. Como o trunk possui todas as implementações já realizadas, tais branches devem ser criados com base em revisões específicas do trunk que contenham apenas as implementações desejadas;

Integração de alterações realizadas no trunk aos branches a partir da ferramenta de mesclagem Merge a Range of Revisions (opcional – diferente dos fluxos anteriores, a obtenção das últimas alterações pode não ser necessária, uma vez que um branch pode referir-se a uma revisão específica e não necessariamente à última versão presente no trunk);

Conclusão dos branches criados, ocorrendo a reintegração destes no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e posterior deleção;

Geração de release a partir do trunk. Neste fluxo, a geração de release ocorre mesclando-se revisões do trunk em uma working copy de uma revisão específica (não necessariamente a mais recente) do próprio trunk ou dos branches. Assim, pode-se escolher exatamente quais revisões entrarão em uma release, assegurando pleno gerenciamento da montagem de uma versão. A criação do branch é feita a partir da opção Branch/Tag;

Geração de etiqueta de release a partir do branch recém gerado através da opção Branch/Tag;

Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch sempre estará disponível, não sendo excluído do repositório.