SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Subvertendo o Código PHP com SVN
http://www.slideshare.net/ram.coelho/svnensol   Ricardo Coelho
Quem é esse gordinho?

●
    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
Quem é esse gordinho?

●
    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
●
    Cliente Bob's Van Gogh
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!

Contenu connexe

Tendances

Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com dockerGiovanni Bassi
 
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
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...Renato Groff
 
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
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaRafael Gomes
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMPThiago Paes
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
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
 
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
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureGiovanni Bassi
 
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
 

Tendances (20)

Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
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
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
Docker para Ambientes de Desenvolvimento e Testes - Open Source Roadshow 2019...
 
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
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestrutura
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMP
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
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
 
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.
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
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
 

Similaire à Subvertendo SVN PHP

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
 
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
 
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
 
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
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreGivanaldo Rocha
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...tdc-globalcode
 
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
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Gerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNGerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNRamiro Luz
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 

Similaire à Subvertendo SVN PHP (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
 
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
 
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
 
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
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software Livre
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
 
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
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Gerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVNGerenciando projetos com Trac e SVN
Gerenciando projetos com Trac e SVN
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 

Plus de Ricardo Coelho

Plus de Ricardo Coelho (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
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQuery
 
pfa
pfapfa
pfa
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 

Subvertendo SVN PHP

  • 1. Subvertendo o Código PHP com SVN http://www.slideshare.net/ram.coelho/svnensol Ricardo Coelho
  • 2. Quem é esse gordinho? ● 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. Quem é esse gordinho? ● 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 ● Cliente Bob's Van Gogh
  • 4. 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
  • 5. Quem migrou do CVS? ● Apache Software Foundation ● Debian ● Zope ● KDE ● Mono ● (…) todo mundo está migrando!
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Comandos básicos ● svnadmin create ● svn import ● svn checkout ● svn update ● svn commit ● svn revert ● svn export ● .svn? ● svn switch
  • 10. 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?
  • 11. 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?
  • 12. 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/
  • 13. Contatos ● Email: ricardo@nexy.com.br ● Twitter: @ramcoelho ● Skype: ram.coelho ● www.nexy.com.br