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?

Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
#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) amarelosEvandro Silvestre
 
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 2014Giovanni Bassi
 
[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 ElixirAmadeu Cavalcante
 
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...Renato Groff
 
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 2018Fernando Luiz Cola
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
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...Renato Groff
 
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-2019Renato Groff
 
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 Pimentamichel adriano medeiros
 
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.Filipe Morelli
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
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/2018Renato Groff
 
RVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisRVM - RubyOnRio @ Petropolis
RVM - RubyOnRio @ PetropolisAnna Cruz
 
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-2019Renato Groff
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
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 terEmerson Macedo
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 

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

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

Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversionlekitamura
 
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 synccodes4nx
 
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árioFabrício Campos
 
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 AWSAmazon Web Services LATAM
 
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 2016Felipe Klerk Signorini
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
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 abertoehabkost
 
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 DevOpsJosé Alexandre Macedo
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
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 PHPFernando de Assis Rodrigues
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareManoel Afonso
 
Gerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNGerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNRamiro 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
 

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