SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Subvertendo o Código PHP com SVN
                       Ricardo Coelho
Quem sou eu?

●
    Ricardo Coelho é fundador e coordenador do
    PHP-Maranhão
●
    Representante do estado no
    PHP Brasil Comunidades
●
    Auditor NBR ISO 27001:2006
●
    Perito Forense Digital
●
    CTO da Nexy
Porque Subversion?
●
    E o CVS?
    ●
        Faltam: commit atômico, rename, move,
        copy, permissões de repositório
●
    E o VSS?
    ●
        Sem commit atômico, sem rename, sem
        move, sem copy, sem permissões de
        repositório, código proprietário, limitado a
        plataforma Windows, só
        funciona em repositórios
        pequenos, documentação
        escassa
Quem migrou do CVS?
●
    Apache Software Foundation
●
    Debian
●
    Zope
●
    KDE
●
    Mono
●
    (…) todo mundo está migrando!
Integração Contínua
●
    Testes unitários executados a cada commit
●
    É possível saber quem quebrou, onde, como e
    quando e isso tudo na hora em que acontece
●
    phpUnderControl
Componentes

●
    svn: Ferramenta cliente
    ●
        Update, Checkout, Commit, Import, Export
●
    svnadmin: Ferramenta do repositório
    ●
        Create
●
    svnserve: Servidor dedicado TCP/IP
●
    svnlook: Ferramenta para inspeção
●
    DAV: Módulo servidor TCP/IP do Apache
Arquitetura

        svn
                      Serviços para                  Biblioteca de
  (cliente texto)
                     Aplicações Cliente             Gerenciamento
                                                 de cópias de trabalho
Aplicativo Gráfico
                      Acesso ao Repositório

                      DAV      SVN        File



   Esquemas
                                     SSH
      file://
     http://                                             svnserve
                             HTTP
     https://
      svn://                 HTTPS                                        Repositório
   svn+ssh://                                                            BDB ou FSFS
Comandos básicos
●
    svnadmin create
●
    svn import
●
    svn checkout
●
    svn update
●
    svn commit
●
    svn revert
●
    svn export
    ●
        .svn?
●
    svn switch
Concorrência
●
    Acesso simultâneo
●
    Estratégia de locking
●
    Estratégia de merging
●
    Resolução de conflitos
●
    Quem commita primeiro
    vai para casa mais cedo!
●
    E se eu quiser incluir uma funcionalidade nova?
●
    E como ficam as manutenções enquanto isso?
Branches & Tags
●
    Diretórios recomendados
●
    Branching === Copying
●
    O histórico (Citarás o branching!)
●
    svn status
●
    svn diff
●
    svn merge sempre da versão comum
●
    Merging === Diff & Apply
●
    Tag == Branch? WTF?
       –   Mantenha o repositório compilável!
       –   E se eu quiser continuar o trabalho em casa?
Fontes

●
    http://svnbook.red-bean.com
●
    http://subversion.apache.org/
●
    http://www.pronus.eng.br/artigos_tutoriais/ger
    encia_configuracao/subversion.php
●
    http://subversion.apache.org/docs/community-
    guide/
Contatos

●
    Email: ricardo@nexy.com.br
●
    Twitter: @ramcoelho
●
    Skype: ram.coelho
●
    www.nexy.com.br
Obrigado!

Weitere ähnliche Inhalte

Was ist angesagt?

LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
Carlos Santos
 
RVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisRVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ Petropolis
Anna Cruz
 

Was ist angesagt? (20)

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
 
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Clojure
ClojureClojure
Clojure
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
 
RVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisRVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ Petropolis
 
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 

Andere mochten auch (6)

Melhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileMelhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobile
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQuery
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
 
pfa
pfapfa
pfa
 

Ähnlich wie Subvertendo o código PHP com SVN

Gerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNGerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVN
Ramiro Luz
 

Ähnlich wie Subvertendo o código PHP com SVN (20)

Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccode
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuário
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Apresentação controle de versão
Apresentação controle de versãoApresentação controle de versão
Apresentação controle de versão
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
oVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertooVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código aberto
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHPWeb Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
Web Storage: Software Web 2.0 controlador de versão utilizando ExtJS e PHP
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 
Gerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNGerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVN
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Subvertendo o código PHP com SVN

  • 1. Subvertendo o Código PHP com SVN Ricardo Coelho
  • 2. Quem sou eu? ● Ricardo Coelho é fundador e coordenador do PHP-Maranhão ● Representante do estado no PHP Brasil Comunidades ● Auditor NBR ISO 27001:2006 ● Perito Forense Digital ● CTO da Nexy
  • 3. Porque Subversion? ● E o CVS? ● Faltam: commit atômico, rename, move, copy, permissões de repositório ● E o VSS? ● Sem commit atômico, sem rename, sem move, sem copy, sem permissões de repositório, código proprietário, limitado a plataforma Windows, só funciona em repositórios pequenos, documentação escassa
  • 4. Quem migrou do CVS? ● Apache Software Foundation ● Debian ● Zope ● KDE ● Mono ● (…) todo mundo está migrando!
  • 5. Integração Contínua ● Testes unitários executados a cada commit ● É possível saber quem quebrou, onde, como e quando e isso tudo na hora em que acontece ● phpUnderControl
  • 6. Componentes ● svn: Ferramenta cliente ● Update, Checkout, Commit, Import, Export ● svnadmin: Ferramenta do repositório ● Create ● svnserve: Servidor dedicado TCP/IP ● svnlook: Ferramenta para inspeção ● DAV: Módulo servidor TCP/IP do Apache
  • 7. Arquitetura svn Serviços para Biblioteca de (cliente texto) Aplicações Cliente Gerenciamento de cópias de trabalho Aplicativo Gráfico Acesso ao Repositório DAV SVN File Esquemas SSH file:// http:// svnserve HTTP https:// svn:// HTTPS Repositório svn+ssh:// BDB ou FSFS
  • 8. Comandos básicos ● svnadmin create ● svn import ● svn checkout ● svn update ● svn commit ● svn revert ● svn export ● .svn? ● svn switch
  • 9. Concorrência ● Acesso simultâneo ● Estratégia de locking ● Estratégia de merging ● Resolução de conflitos ● Quem commita primeiro vai para casa mais cedo! ● E se eu quiser incluir uma funcionalidade nova? ● E como ficam as manutenções enquanto isso?
  • 10. Branches & Tags ● Diretórios recomendados ● Branching === Copying ● O histórico (Citarás o branching!) ● svn status ● svn diff ● svn merge sempre da versão comum ● Merging === Diff & Apply ● Tag == Branch? WTF? – Mantenha o repositório compilável! – E se eu quiser continuar o trabalho em casa?
  • 11. Fontes ● http://svnbook.red-bean.com ● http://subversion.apache.org/ ● http://www.pronus.eng.br/artigos_tutoriais/ger encia_configuracao/subversion.php ● http://subversion.apache.org/docs/community- guide/
  • 12. Contatos ● Email: ricardo@nexy.com.br ● Twitter: @ramcoelho ● Skype: ram.coelho ● www.nexy.com.br