⭐Controle de Versão com Subversion
Download "Controle de Versão com Subversion"
Victorio Santiago da Conceição
1 Controle de Versão com Subversion Para Subversion 1.4 (Compilado da revisão 311) Ben Collins-Sussman Brian W. Fitzpatrick C. Michael Pilato2 Controle de Versão com Subversion: Para Subversion 1.4: (Compilado da revisão 311) por Ben Collins-Sussman, Brian W. Fitzpatrick, e C. Michael Pilato Publicado (TBA) Copyright 2002, 2003, 2004, 2005, 2006, 2007 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato Este trabalho está licenciado sob a licença Creative Commons Attribution License. Para obter uma cópia dessa licença, visite ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.3 Índice Apresentação... x Prefácio... xii Público-Alvo... xii Como Ler Este Livro... xiii Convenções Usadas Neste Livro... xiii Convenções tipográficas... xiv Ícones... xiv Organização Deste Livro... xiv Este Livro é Livre... xv Agradecimentos... xv Agradecimentos de Ben Collins-Sussman... xvi Agradecimentos de Brian W. Fitzpatrick... xvi Agradecimentos de C. Michael Pilato... xvi O Que é o Subversion?... xvii Histórico do Subversion... xvii Características do Subversion... xviii Arquitetura do Subversion... xix Componentes do Subversion... xxi 1. Conceitos Fundamentais... 1 O Repositório... 1 Modelos de Versionamento... 1 O Problema do Compartilhamento de Arquivos... 2 A Solução Lock-Modify-Unlock... 2 A Solução Copy-Modify-Merge... 4 Subversion em Ação... 6 URLs do Repositório Subversion... 6 Cópias de Trabalho, ou Cópias Locais... 7 Revisões Como as Cópias de Trabalho Acompanham o Repositório Revisões Locais Mistas Sumário Uso Básico Help! Colocando dados em seu Repositório svn import Layout de repositório recomendado Checkout Inicial Desabilitando o Cache de Senhas Autenticando como um Usuário Diferente Ciclo Básico de Trabalho Atualizando Sua Cópia de Trabalho Fazendo Alterações em Sua Cópia de Trabalho Verificando Suas Alterações Desfazendo Modificações de Trabalho Resolvendo Conflitos (Combinando Alterações de Outros) Registrando Suas Alterações Examinando o Histórico Gerando uma lista de alterações históricas Examinando os detalhes das alterações históricas Navegando pelo repositório Retornando o repositório a momentos antigos Às Vezes Você Só Precisa Limpar Sumário Tópicos Avançados Especificadores de Revisão iii4 Controle de Versão com Subversion Termos de Revisão Datas de Revisão Propriedades Por que Propriedades? Manipulando Propriedades Propriedades e o Fluxo de Trabalho no Subversion Definição Automática de Propriedades Portabilidade de Arquivo Tipo de Conteúdo do Arquivo Executabilidade de Arquivo Seqüência de Caracteres de Fim-de-Linha Ignorando Itens Não-Versionados Substituição de Palavra-Chave Travamento Criando travas Descobrindo as travas Quebrando e roubando travas Comunicação de Travas Definições Externas Revisões Marcadoras e Revisões Operativas Modelo de Rede Solicitações e Respostas Armazenando Credenciais no Cliente Fundir e Ramificar O que é um Ramo? Usando Ramos Criando um Ramo Trabalhando com o seu Ramo Os conceitos chave por trás de ramos Copiando Modificações Entre Ramos Copiando modificações específicas O conceito chave sobre fusão Melhores práticas sobre Fusão Casos Comuns de Utilização Mesclando um Ramo Inteiro para Outro Desfazendo Alterações Ressucitando Itens Excluídos Common Branching Patterns Atravessando Ramos Rótulos Criando um rótulo simples Criando um rótulo complexo Manutenção de Ramos Repository Layout Data Lifetimes Ramos de fornecedores Procedimento Geral para Manutenção de Ramos de Fornecedores svn_load_dirs.pl Sumário Administração do Repositório O Repositório Subversion, Definição Estratégias para Implementação de Repositórios Planejando a Organização do Repositório Decidindo Onde e Como Hospedar Seu Repositório Escolhendo uma Base de Dados Creating and Configuring Your Repository Creating the Repository Implementing Repository Hooks iv5 Controle de Versão com Subversion Berkeley DB Configuration Repository Maintenance An Administrator's Toolkit Commit Log Message Correction Managing Disk Space Berkeley DB Recovery Migrating Repository Data Elsewhere Filtering Repository History Repository Replication Repository Backup Sumário Configuração do Servidor Visão Geral Escolhendo uma Configuração de Servidor O Servidor svnserve svnserve sobre SSH O Servidor Apache HTTP Recomendações svnserve, um servidor especializado Invocando o Servidor Autenticação e autorização internos Tunelamento sobre SSH Dicas de configuração do SSH httpd, o servidor HTTP Apache Pré-requisitos Configuração Básica do Apache Opções de Autenticação Opções de Autorização Facilidades Extras Autorização Baseada em Caminhos Dando Suporte a Múltiplos Métodos de Acesso ao Repositório Customizando sua Experiência com Subversion Área de Configuração do Tempo de Execução Estrutura da Área de Configuração Configuração e o Registro do Windows Opções de Configuração Localização Compreendendo localidades Uso de localidades do Subversion Usando Ferramentas Externas de Diferenciação Ferramentas diff Externas Ferramentas diff3 Externas Incorporando o Subversion Projeto da Biblioteca em Camadas Camada de Repositório Camada de Acesso ao Repositório Camada Cliente Por dentro da Área de Administração da Cópia de Trabalho Os Arquivos de Entrada Cópias Inalteradas e Propriedade de Arquivos Usando as APIs A Biblioteca Apache Portable Runtime Requisitos de URL e Caminho Usando Outras Linguagens além de C e C Exemplos de Código Referência Completa do Subversion O Cliente de Linha de Comando do Subversion: svn Opções do svn v6 Controle de Versão com Subversion Subcomandos svn svnadmin Opções do svnadmin svnadmin Subcommands svnlook Opções do svnlook Sub-comandos do svnlook svnsync svnsync Options svnsync Subcommands svnserve svnserve Options svnversion mod_dav_svn Subversion properties Versioned Properties Unversioned Properties Repository Hooks A. Guia Rápido de Introdução ao Subversion Instalando o Subversion Tutorial "Alta Velocidade" B. Subversion para Usuários de CVS Os Números de Revisão Agora São Diferentes Versões de Diretório Mais Operações Desconectadas Distinção Entre Status e Update Status Update Ramos e Rótulos Propriedades de Metadados Resolução de Conflitos Arquivos Binários e Tradução Módulos sob Controle de Versão Autenticação Convertendo um Repositório de CVS para Subversion C. WebDAV e Autoversionamento O que é WebDAV? Autoversionamento Interoperabilidade com Softwares Clientes Aplicações WebDAV Independentes Extensões WebDAV para gerenciadores de arquivos Implementações de sistemas de arquivos WebDAV D. Ferramentas de Terceiros E. Copyright Índice Remissivo vi7 Lista de Figuras 1. Arquitetura do Subversion... xx 1.1. Um típico sistema cliente/servidor O problema para evitar A solução lock-modify-unlock A solução copy-modify-merge A solução copy-modify-merge (continuando) O Sistema de Arquivos do Repositório O Repositório Ramos de desenvolvimento Layout Inicial do Repositório Repositório com uma nova cópia Ramificação do histórico de um arquivo Arquivos e diretórios em duas dimensões Versionando o tempo a terceira dimensão! vii8 Lista de Tabelas 1.1. URLs de Acesso ao Repositório Comparativo dos Mecanismos de Armazenamento Comparação das Opções para o Servidor Subversion C.1. Clientes WebDAV Comuns viii9 Lista de Exemplos 5.1. txn-info.sh (Reporting Outstanding Transactions) Mirror repository's pre-revprop-change hook script Mirror repository's start-commit hook script Um exemplo de configuração para acesso anônimo Um exemplo de configuração para acesso autenticado Um exemplo de configuração para acesso misto autenticado/anônimo Desabilitando verificações de caminho como um todo Arquivo (.reg) com Entradas de Registro de Exemplo diffwrap.sh diffwrap.bat diff3wrap.sh diff3wrap.bat Usando a Camada do Repositório Using the Repository Layer with Python A Python Status Crawler ix10 Apresentação Karl Fogel Chicago, 14 de Março de 2004 Uma base ruim de Perguntas Freqüentes (FAQ), é aquela que é composta não de perguntas que as pessoas realmente fizeram, mas de perguntas que o autor da FAQ desejou que as pessoas tivessem feito. Talvez você já tenha visto isto antes: P: De que forma posso utilizar o Glorbosoft XYZ para maximizar a produtividade da equipe? R: Muitos dos nossos clientes desejam saber como podem maximizar a produtividade através de nossas inovações patenteadas de groupware para escritórios. A resposta é simples: primeiro, clique no menu Arquivo. Desça até a opção Aumentar Produtividade, então O problema com estas bases de FAQ é que eles não são, propriamente ditas, FAQ. Ninguém nunca liga para o suporte técnico e pergunta Como nós podemos maximizar a produtividade?. Em vez disso, as pessoas fazem perguntas muito mais específicas, como: Como podemos alterar o sistema de calendário para enviar lembretes dois dias antes ao invés de um?, etc. Mas é muito mais fácil forjar Perguntas Freqüentes imaginárias do que descobrir as verdadeiras. Compilar uma verdadeira base de FAQ exige um esforço contínuo e organizado: através do ciclo de vida do software, as questões que chegam devem ser rastreadas, respostas monitoradas, e tudo deve ser reunido em um todo coerente, pesquisável que reflete a experiência coletiva dos usuários em seu mundo. Isto requer a paciência e a atitude observadora de um cientista. Nenhuma grande teoria ou pronunciamentos visionários aqui olhos abertos e anotações precisas são o principal. O que eu amo neste livro é que ele surgiu deste processo, e isto é evidenciado em cada página. Ele é o resultado direto dos encontros entre os autores e usuários. Ele começou quando Ben Collins-Sussman observou que as pessoas estavam fazendo as mesmas perguntas básicas diversas vezes nas listas de discussão do Subversion, como por exemplo: Quais são os procedimentos-padrão para se utilizar o Subversion? Branches e tags funcionam do mesmo modo como em outros sistemas de controle de versão? Como eu posso saber quem realizou uma alteração em particular? Frustrado em ver as mesmas questões dia após dia, Ben trabalhou intensamente durante um mês no verão de 2002 para escrever The Subversion Handbook, um manual de sessenta páginas cobrindo todas as funcionalidades básicas do Subversion. O manual não tinha a pretensão de ser completo, mas ele foi distribuído com o Subversion e auxiliou os usuários a ultrapassarem as dificuldades iniciais na curva de aprendizado. Quando a O'Reilly and Associates decidiu publicar um livro completo sobre o Subversion, o caminho menos crítico estava óbvio: apenas estender o manual. Para os três co-autores do novo livro então lhes foi dada uma oportunidade ímpar. Oficialmente, sua tarefa era escrever um livro numa abordagem top-down, começando pelo sumário e seu esboço inicial. Mas eles também tinham acesso a um fluxo constante de fato, um gêiser incontrolável de conteúdo de origem bottom-up. O Subversion já esteve nas mãos de centenas de usuários anteriores, que geraram toneladas de feedback, não apenas sobre o Subversion, mas também sobre sua documentação existente. Durante todo o tempo em que eles escreveram o livro, Ben, Mike, e Brian habitaram as listas de discussão e salas de bate-papo do Subversion, registrando cuidadosamente os problemas que os usuário estavam tendo em situações na vida-real. Monitorar este feedback, fazia parte da descrição de sua função na CollabNet, e isto lhes deu uma enorme vantagem quando começaram a documentar o Subversion. O livro que eles produziram é solidamente fundamentado na rocha da experiência, não nas areias mutáveis da ilusão; ele combina os melhores aspectos de um manual de usuário e uma base de FAQ. Esta dualidade talvez não seja perceptível numa primeira leitura. Lido na ordem, de frente para trás, o livro é uma descrição bem direta de uma peça de software. Existe a visão geral, o obrigatório tour, o capítulo sobre configuração administrativa, alguns tópicos avançados, e é claro uma referência de comandos e um guia de resolução de problemas. Somente quando você o ler novamente x11 Apresentação mais tarde, procurando a solução para um problema específico, é que sua autenticidade reluzirá: os detalhes telling que só podem advir de um encontro com o inusitado, os exemplos surgidos de casos de utilização reais, e muito de toda a sensibilidade das necessidades e dos pontos de vista do usuário. É claro, que ninguém pode prometer que este livro responderá todas as dúvidas que você tem sobre o Subversion. Certas vezes, a precisão com que ele antecipa suas perguntas parecerá assustadoramente telepática; ainda sim, ocasionalmente, você vai tropeçar em alguma falha no conhecimento da comunidade, e sairá de mão vazias. Quando isto acontecer, a melhor coisa que você pode fazer é enviar um para e apresentar seu problema. Os autores ainda estão lá, continuam observando, e não somente os três listados na capa, mas muitos outros que contribuíram com correções e materiais originais. Do ponto de vista da comunidade, resolver o seu problema é meramente um agradável efeito de um projeto muito maior realmente, o ajuste paulatino deste livro, e em último caso, do próprio Subversion, para ver mais de perto como as pessoas o utilizam. Eles estão ansiosos para ouvir você não apenas porque eles querem ajudá-lo, mas porque você também os ajuda. Com o Subversion, assim como em todo projeto ativo de software livre, você não está sozinho. Que este livro seja seu primeiro companheiro. xi12 Prefácio É importante não deixar que o perfeito se torne inimigo do bom, mesmo quando você puder estar certo sobre o que o perfeito é. Duvide quando você não puder. Como é desagradável ser aprisionado pelos erros passados, você não pode fazer qualquer progresso tendo medo de sua própria sombra durante a ação. Greg Hudson No mundo dos softwares open-source, o Concurrent Versions System (CVS) foi a ferramenta escolhida para controle de versão por muitos anos. E com razão. O próprio CVS é um software open-source também, e seu modus operandi não-restritivo e o suporte a operações de rede permitiram que diversos programadores distribuídos geograficamente compartilhassem seus trabalhos. Ele atende à natureza colaborativa do mundo open-source como um todo. O CVS e seu modelo de desenvolvimento semicaótico se tornou um marco da cultura open-source. Mas o CVS também tinha seus defeitos, e simplesmente corrigir estes defeitos prometia ser um enorme esforço. Chega o Subversion. Desenvolvido para ser um sucessor do CVS, os criadores do Subversion pretendiam ganhar a simpatia dos usuários CVS de duas maneiras criando um sistema open-source com o projeto (e a aparência ) semelhante ao do CVS, e tentando evitar muitos de seus conhecidos defeitos. Por mais que o resultado não seja necessariamente a próxima grande evolução no projeto de controle de versão, o Subversion é muito poderoso, muito usável, e muito flexível. E agora muitos projetos open-source, quase todos recém-iniciados, preferem agora o Subversion ao CVS. Este livro foi escrito para documentar a série 1.4 do sistema de controle de versão Subversion. Nós tentamos ser bem profundos em nossa abordagem. Entretanto, o Subversion possui uma comunidade de desenvolvedores próspera e cheia de energia, então eles já têm um conjunto de recursos e melhorias planejadas para futuras versões do Subversion que podem mudar alguns dos comandos e notas específicas deste livro. Público-Alvo Este livro foi escrito para pessoas habituadas com computadores que desejam usar o Subversion para gerenciar seus dados. Ainda que o Subversion rode em vários sistemas operacionais diferentes, a sua interface de usuário primária é baseada em linha de comando. Essa ferramenta de linha de comando (svn), e alguns programas auxiliares, são o foco deste livro. Por motivo de consistência, os exemplos neste livro presumem que o leitor esteja usando um sistema operacional baseado em Unix e se sinta relativamente confortável com Unix e com interfaces de linha de comando. Dito isto, o programa svn também roda em plataformas não-unix, como o Microsoft Windows. Com poucas exceções, como o uso de barras invertidas (\) em lugar de barras regulares (/) para separadores de caminho, a entrada e a saída desta ferramenta, quando executada no Windows, são idênticas às do seu companheiro Unix. Muitos leitores são provavelmente programadores ou administradores de sistemas que necessitam rastrear alterações em código-fonte. Essa é a finalidade mais comum para o Subversion, e por isso é o cenário por trás de todos os exemplos deste livro. Entretanto, o Subversion pode ser usado para gerenciar qualquer tipo de informação imagens, músicas, bancos de dados, documentação, etc. Para o Subversion, dados são apenas dados. Enquanto que este livro presume que o leitor nunca usou um sistema de controle de versão, nós também tentamos facilitar para os usuários do CVS (e outros sistemas) a migração para o Subversion. Ocasionalmente, notas especiais poderão mencionar outros controles de versão. Há também um apêndice que resume muitas das diferenças entre CVS e Subversion. Note também que os exemplos de código-fonte usados ao longo do livro são apenas exemplos. Ainda que eles compilem com os truques apropriados do compilador, seu propósito é ilustrar um cenário em particular, não necessariamente servir como exemplos de boas práticas de programação. xii13 Prefácio Como Ler Este Livro Livros técnicos sempre enfrentam um certo dilema: se os leitores devem fazer uma leitura top-down (do início ao fim) ou bottom-up (do fim ao começo). Um leitor top-down prefere ler ou folhear toda a documentação antes, ter uma visão geral de como o sistema funciona e apenas, então, é que que ele inicia o uso do software. Já um leitor bottom-up aprende fazendo, ele é alguém que mergulha no software e o esmiuça, voltando às seções do livro quando necessário. Muitos livros são escritos para um ou outro tipo de pessoa, e esse livro é, sem dúvida, indicado para o leitor top-down. (Se você está lendo esta seção, provavelmente você já é um leitor top-down nato). No entanto, se você é um leitor bottom-up, não se desespere. Mesmo que este livro pode ser definido como um apanhado geral sobre o Subversion, o conteúdo de cada seção tende a aprofundar com exemplos específicos nos quais você pode aprender fazendo. As pessoas impacientes que já querem ir fazendo, podem pular direto para o Apêndice A, Guia Rápido de Introdução ao Subversion. Independente do seu estilo de aprendizado, este livro pretende ser útil para os mais diversos tipos de pessoas os que não possuem nenhuma experiência com controle de versão até os administradores de sistema mais experientes. Dependendo do seu conhecimento, certos capítulos podem ser mais ou menos importantes para você. A lista abaixo é uma recomendação de leitura para os diversos tipos de leitores: Administradores de Sistemas Experientes Supõe-se aqui que você, provavelmente, já tenha usado controle de versão anteriormente, e está morrendo de vontade de usar um servidor Subversion o quanto antes. O Capítulo 5, Administração do Repositório e o Capítulo 6, Configuração do Servidor irão mostrar como criar seu primeiro repositório e torná-lo disponível na rede. Depois disso, o Capítulo 2, Uso Básico e o Apêndice B, Subversion para Usuários de CVS vão mostrar o caminho mais rápido para se aprender a usar o cliente Subversion. Novos usuário Seu administrador provavelmente já disponibilizou um servidor Subversion, e você precisa aprender a usar o cliente. Se você nunca utilizou um sistema de controle de versão, então o Capítulo 1, Conceitos Fundamentais será vital para introduzir e mostrar as idéias por trás do controle de versão. O Capítulo 2, Uso Básico é um guia do cliente do Subversion. Usuários avançados Seja você um usuário ou um administrador, eventualmente seu projeto irá crescer muito. Você irá querer aprender a fazer coisas avançadas com o Subversion, como usar ramos e fazer fusões (Capítulo 4, Fundir e Ramificar), como usar as propriedades de suporte do Subversion (Capítulo 3, Tópicos Avançados), como configurar as opções de tempo de execu o (Capítulo 7, Customizando sua Experiência com Subversion), entre outras coisas. Estes capítulos não são críticos no início, porém não deixe de lê-los quando estiver familiarizado com o básico. Desenvolvedores Presumidamente, você já está familiarizado com o Subversion, e quer ou extendê-lo ou construir um novo software baseado nas suas diversas APIs. O Capítulo 8, Incorporando o Subversion foi feito justamente pra pra você. O livro termina com um material de referência o Capítulo 9, Referência Completa do Subversion é um guia de referência para todos os comandos do Subversion, e os apêndices cobrem um número considerável de tópicos úteis. Estes capítulos serão os que você irá voltar com mais freqüência depois que terminar de ler o livro. Convenções Usadas Neste Livro Esta seção cobre as várias convenções usadas neste livro. xiii14 Prefácio Convenções tipográficas Largura constante Comandos usados, comando de saída, e opções Largura constante em itálico Usado para substituir itens no código e texto Itálico Usado para nomes de arquivo e diretório Ícones Este ícone representa uma nota relacionada ao texto citado. Este ícone representa uma dica útil relacionada ao texto citado. Este ícone representa um aviso relacionado ao texto citado. Organização Deste Livro Abaixo estão listados os capítulos e seus conteúdos estão listados: Prefácio Cobre a história do Subversion bem como suas características, arquitetura e compomentes. Capítulo 1, Conceitos Fundamentais Explica o básico sobre controle de versão e os diferentes modelos de versionamento, o repositório do Subversion, cópias de trabalho e revisões. Capítulo 2, Uso Básico Faz um tour por um dia na vida de um usuário do Subversion. Demonstra como usar o cliente do Subversion para obter, modificar e submeter dados. Capítulo 3, Tópicos Avançados Cobre as características mais complexas que os usuários regulares irão encontrar eventualmente, como metadados, travamento de arquivo(locking) e rotulagem de revisões. Capítulo 4, Fundir e Ramificar Discute sobre ramos, fusões, e rotulagem, incluindo as melhores práticas para a criação de ramos e fusões, casos de uso comuns, como desfazer alterações, e como facilitar a troca de um ramo para o outro. Capítulo 5, Administração do Repositório Descreve o básico de um repositório Subversion, como criar, configurar, e manter um repositório, e as ferramentas que podem ser usadas para isso. Capítulo 6, Configuração do Servidor Explica como configurar um servidor Subversion e os diferentes caminhos para acessar seu repositório: HTTP, o protocolosvn e o acesso local pelo disco. Também cobre os detalhes de autenticação, autorização e acesso anônimo. xiv15 Prefácio Capítulo 7, Customizando sua Experiência com Subversion Explora os arquivos de configuração do cliente Subversion, a internacionalização de texto, e como fazer com que ferramentas externas trabalhem com o subversion. Capítulo 8, Incorporando o Subversion Descreve as partes internas do Subversion, o sistema de arquivos do Subversion, e a cópia de trabalho da área administrativa do ponto de vista de um programador. Demonstra como usar as APIs públicas para escrever um programa que usa o Subversion, e o mais importante, como contribuir para o desenvolvimento do Subversion. Capítulo 9, Referência Completa do Subversion Explica em detalhes todos os subcomandos do svn, svnadmin, e svnlook com abundância de exemplos para toda a família! Apêndice A, Guia Rápido de Introdução ao Subversion Para os impacientes, uma rápida explicação de como instalar o Subversion e iniciar seu uso imediatamente. Você foi avisado. Apêndice B, Subversion para Usuários de CVS Cobre as similaridades e diferenças entre o Subversion e o CVS, com numerosas sugestões de como fazer para quebrar todos os maus hábitos que você adquiriu ao longo dos anos com o uso do CVS. Inclui a descrição de número de revisão do Subversion, versionamento de diretórios, operações offline, update vs. status, ramos, rótulos, resolução de conflitos e autenticação. Apêndice C, WebDAV e Autoversionamento Descreve os detalhes do WebDAV e DeltaV, e como você pode configurar e montar seu repositório Subversion em modo de leitura/escrita em um compartilhamento DAV. Apêndice D, Ferramentas de Terceiros Discute as ferramentas que suportam ou usam o Subversion, incluindo programas clientes alternativos, ferramentas para navegação no repositório, e muito mais. Este Livro é Livre Este livro teve início com a documentação escrita pelos desenvolvedores do projeto Subversion, a qual foi reunida em um único trabalho e reescrito. Assim, ele sempre esteve sob uma licença livre. (Veja Apêndice E, Copyright.) De fato, o livro foi escrito sob uma visão pública, originalmente como parte do próprio projeto Subversion. Isto significa duas coisas: Você sempre irá encontrar a última versão deste livro no próprio repositório Subversion do livro. Você pode fazer alterações neste livro e redistribuí-lo, entretanto você deve fazê-lo sob uma licença livre. Sua única obrigação é manter o créditos originais dos autores. É claro que, ao invés de distribuir sua própria versão deste livro, gostaríamos muito mais que você enviasse seu feedback e correções para a comunidade de desenvolvimento do Subversion. O site deste livro está em desenvolvimento, e muitos dos tradutores voluntários estão se reunindo no site Lá você pode encontrar links para as últimas versões lançadas e versões compiladas deste livro em diversos formatos, bem como as instruções de acesso ao repositório Subversion do livro(onde está o código-fonte em formato DocBook XML) Um feedback é bem vindo e encorajado também. Por favor, envie todos os seus comentários, reclamações, e retificações dos fontes do livro para o Agradecimentos Este livro não existiria (nem seria útil) se o Subversion não existisse. Assim, os autores gostariam de agradecer ao Brian Behlendorf e à CollabNet, pela visão em acreditar em um arriscado e ambicioso xv16 Prefácio projeto de Código Aberto; Jim Blandy pelo nome e projeto original do Subversion nós amamos você, Jim; Karl Fogel, por ser um excelente amigo e grande líder na comunidade, nesta ordem. 1 Agradecimentos a O'Reilly e nossos editores, Linda Mui e Tatiana Diaz por sua paciente e apoio. Finalmente, agrademos às inúmeras pessoas que contribuíram para este livro com suas revisões informais, sugestões e retificações. Certamente, esta não é uma lista completa, mas este livro estaria incompleto e incorreto sem a ajuda de: David Anderson, Jani Averbach, Ryan Barrett, Francois Beausoleil, Jennifer Bevan, Matt Blais, Zack Brown, Martin Buchholz, Brane Cibej, John R. Daily, Peter Davis, Olivier Davy, Robert P. J. Day, Mo DeJong, Brian Denny, Joe Drew, Nick Duffek, Ben Elliston, Justin Erenkrantz, Shlomi Fish, Julian Foad, Chris Foote, Martin Furter, Dave Gilbert, Eric Gillespie, David Glasser, Matthew Gregan, Art Haas, Eric Hanchrow, Greg Hudson, Alexis Huxley, Jens B. Jorgensen, Tez Kamihira, David Kimdon, Mark Benedetto King, Andreas J. Koenig, Nuutti Kotivuori, Matt Kraai, Scott Lamb, Vincent Lefevre, Morten Ludvigsen, Paul Lussier, Bruce A. Mah, Philip Martin, Feliciano Matias, Patrick Mayweg, Gareth McCaughan, Jon Middleton, Tim Moloney, Christopher Ness, Mats Nilsson, Joe Orton, Amy Lyn Pilato, Kevin Pilch-Bisson, Dmitriy Popkov, Michael Price, Mark Proctor, Steffen Prohaska, Daniel Rall, Jack Repenning, Tobias Ringstrom, Garrett Rooney, Joel Rosdahl, Christian Sauer, Larry Shatzer, Russell Steicke, Sander Striker, Erik Sjoelund, Johan Sundstroem, John Szakmeister, Mason Thomas, Eric Wadsworth, Colin Watson, Alex Waugh, Chad Whitacre, Josef Wolf, Blair Zajac e a comunidade inteira do Subversion. Agradecimentos de Ben Collins-Sussman Agradeço a minha esposa Frances, quem, por vários meses, começou a ouvir, Mas docinho, eu estou trabalhando no livro, ao invés do habitual, Mas docinho, eu estou escrevendo um . Eu não sei onde ela arruma tanta paciência! Ela é meu equilíbrio perfeito. Agradeço à minha extensa família e amigos por seus sinceros votos de encorajamento, apesar de não terem qualquer interesse no assunto. (Você sabe, tem uns que dizem: Você escreveu um livro?, e então quando você diz que é um livro de computador, eles te olham torto.) Agradeço aos meus amigos mais próximos, que me fazem um rico, rico homem. Não me olhem assim vocês sabem quem são. Agradeço aos meus pais pela minha perfeita formação básica, e pelos inacreditáveis conselhos. Agradeço ao meu filho pela oportunidade de passar isto adiante. Agradecimentos de Brian W. Fitzpatrick Um grande obrigado à minha esposa Marie por sua inacreditável compreensão, apoio, e acima de tudo, paciência. Obrigado ao meu irmão Eric, quem primeiro me apresentou à programação voltada para UNIX. Agradeço à minha mãe e minha avó por seu apoio, sem falar nas longas férias de Natal, quando eu chegava em casa e mergulhava minha cabeça no laptop para trabalhar no livro. Mike e Ben, foi um prazer trabalhar com vocês neste livro. Heck, é um prazer trabalhar com você nesta obra! Para todos da comunidade Subversion e a Apache Software Foundation, agradeço por me receberem. Não há um dia onde eu não aprenda algo com pelo menos um de vocês. Finalmente, agradeço ao meu avô que sempre me disse Liberdade é igual responsabilidade. Eu não poderia estar mais de acordo. Agradecimentos de C. Michael Pilato Um obrigado especial a Amy, minha melhor amiga e esposa por inacreditáveis nove anos, por seu amor e apoio paciente, por me tolerar até tarde da noite, e por agüentar o duro processo de controle de versão que impus a ela. Não se preocupe, querida você será um assistente do TortoiseSVN logo! 1 Oh, e agradecemos ao Karl, por ter dedicado muito trabalho ao escrever este livro sozinho. xvi Exibir mais
Controle de Versão com Subversion Para Subversion 1.4 (Compilado da revisão 237) Ben Collins-Sussman Brian W. Fitzpatrick C. Michael Pilato Controle de Versão com Subversion: Para Subversion 1.4: (Compilado Leia mais FREE ONLINE EDITION (non-printable free online version)
FREE ONLINE EDITION (non-printable free online version) Trazido para você como Cortesia de Este livro é distribuído gratuitamente no portal InfoQ.com. Se você recebeu este livro de qualquer outra fonte, Leia mais Red Hat Enterprise Linux 4. Sistemas
Red Hat Enterprise Linux 4 Introdução à Administração de Sistemas Red Hat Enterprise Linux 4: Introdução à Administração de Sistemas Copyright 2005 por Red Hat, Inc. Red Hat, Inc. 1801Varsity Drive RaleighNC Leia mais Análise Comparativa entre Sistemas de Controle de Versões Daniel Tannure Menandro de Freitas
Análise Comparativa entre Sistemas de Controle de Versões Daniel Tannure Menandro de Freitas JUIZ DE FORA DEZEMBRO, 2010 i Análise Comparativa entre Sistemas de Controle de Versões Daniel Tannure Menandro Leia mais Guia Livre. Referência de Migração. para Software Livre. do Governo Federal. Versão Beta V0.5
011011010010111010101101110101101010101010100101101101011110011010100111011111110011110011011010010111010101101110101101010101010100101101101011110011010100111011111110011 110011011010010111010101101110101101010101010100101101101011110011010100111011111110011110011011010010111010101101110101101010101010100101101101011110011010100111011111110 Leia mais I Sobre essa Apostila 2. II Informações Básicas 4. III GNU Free Documentation License 9 IV FTP 18. 1 O que é o FTP 19
FTP Versão 1.0.0 Sumário I Sobre essa Apostila 2 II Informações Básicas 4 III GNU Free Documentation License 9 IV FTP 18 1 O que é o FTP 19 2 Plano de ensino 20 2.1 Objetivo........................................... Leia mais Um Estudo Sobre os Processos de Desenvolvimento de Jogos Eletrônicos (Games)
Um Estudo Sobre os Processos de Desenvolvimento de Jogos Eletrônicos (Games) ADEMAR DE SOUZA REIS JUNIOR 1 BOGDAN T. NASSU 2 MARCO ANTONIO JONACK 3 UFPR - Universidade Federal do Paraná DInf - Departamento Leia mais EDIÇÃO ONLINE GRATUITA
EDIÇÃO ONLINE GRATUITA Feito para você Cortesia da Este livro é distribuído gratuitamente no portal InfoQ.com. Se você recebeu este livro de qualquer outra fonte, por favor, suporte o autor e o editor Leia mais Rafael Trapp. Um Processo de Gerenciamento de Configuração para Desenvolvimento de Sistemas ERP Multi-Empresas
Rafael Trapp Um Processo de Gerenciamento de Configuração para Desenvolvimento de Sistemas ERP Multi-Empresas Joinville 2009 UNIVERSIDADE DO ESTADO DE SANTA CATARINA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Leia mais Webmaster. O novo papel do Webmaster. OK, já fiz tudo isso. Agora eu sou um Webmaster?
Webmaster Este curso tem como objetivo introduzir ao Webmaster conceitos técnicos para que ele possa, de uma maneira geral, aperfeiçoar seus conhecimentos no ambiente www. No curso teremos explicações Leia mais Manual do Tableau Drive Um guia prático para ampliar sua cultura de análise
Manual do Tableau Drive Um guia prático para ampliar sua cultura de análise 2 O Drive é uma metodologia de implantação de análises de autoatendimento para empresas. Este manual do Tableau Drive é um guia Leia mais GUIA BÁSICO DE DESIGN PARA MAGENTO. Baseado no Magento design Guide GUIA BÁSICO DE DESIGN PARA MAGENTO. Versão 1.0
GUIA BÁSICO DE DESIGN PARA MAGENTO Baseado no Magento design Guide Guia básico de design para Magento Baseado no Magento design Guide Índice 1 Visão geral............................................................................. Leia mais www.comotrabalharnainternet.com Distribuição autorizada, desde que mantida a formatação original.
1 2 SUMÁRIO 1 AVISO LEGAL... 3 2 INTRODUÇÃO... 4 3 EU COMPROVEI QUE É POSSÍVEL LUCRAR NA INTERNET... 7 4 Sete verdades sobre dinheiro na internet que você precisa conhecer antes de prosseguir adiante... Leia mais Você documenta suas Lições Aprendidas? Busca ler as publicadas por outros Gerentes de Projetos?
Você documenta suas Lições Aprendidas? Busca ler as publicadas por outros Gerentes de Projetos? A teoria diz que documentar lições aprendidas é uma atividade importantíssima durante qualquer projeto. Qualquer Leia mais Recursos Educacionais Abertos. Um caderno para professores
Recursos Educacionais Abertos Um caderno para professores Índice Sobre esse caderno 1 Parte I - Princípios básicos sobre Recursos Abertos 4 O que é REA 4 Porque REA 5 Como REA pode me ajudar 6 Parte 2 Leia mais Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman
Equipes de Software Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas Brian W. Fitzpatrick Ben Collins-Sussman Novatec Authorized Portuguese translation of the English edition Leia mais Gerenciadores de conteúdo
Edição especial de lançamento Exemplar de Assinante Venda proibida Gerenciadores de conteúdo Como as ferramentas de CMS podem se tornar parceiras do seu sucesso Sessões Descubra o que elas podem fazer Leia mais Tutorial do PostgreSQL 7.3.2. The PostgreSQL Global Development Group
Tutorial do PostgreSQL 7.3.2 The PostgreSQL Global Development Group Tutorial do PostgreSQL 7.3.2 por The PostgreSQL Global Development Group Copyright 1996-2002 The PostgreSQL Global Development Group Leia mais 003G. Informática Aplicada
Informática Aplicada 003G Informática Aplicada 7E Desenvolvimento de conteúdo, mediação pedagógica e design gráfico Equipe Técnico Pedagógica do Instituto Monitor Monitor Editorial Ltda. Rua dos Timbiras, Leia mais BLOGS CORPORATIVOS Como conseguir clientes pela internet e como fazê-los amar sua empresa!
BLOGS CORPORATIVOS Como conseguir clientes pela internet e como fazê-los amar sua empresa! Arlindo Armando 2 Sumário Introdução 5 Diário de um blog corporativo 8 O Mercado são conversas 12 O blog como Leia mais UNIVERSIDADE IBIRAPUERA CURSO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE IBIRAPUERA CURSO DE CIÊNCIA DA COMPUTAÇÃO PROJETO SQUID Trabalho apresentado à Universidade Ibirapuera para obtenção do título de Bacharel em Ciência da Computação Cristiano F. Reis 574132 Leia mais Manual do Portal Modelo 3 para Gestores de Conteúdo
Manual do Portal Modelo 3 para Gestores de Conteúdo Versão 1.1.2 outubro/2014 Sumário I. Introdução...5 O que é um CMS?...6 O Plone...7 Usabilidade...7 Acessibilidade...7 Padrões...7 Segurança...7 Open Leia mais SpamAssassin. Versão 1.0.0
SpamAssassin Versão 1.0.0 Sumário I Sobre essa Apostila 2 II Informações Básicas 4 III GNU Free Documentation License 9 IV SpamAssassin 18 1 O que é o SpamAssassin 19 2 Plano de ensino 20 2.1 Objetivo........................................... Leia mais Guia de Instalação do Debian GNU/Linux
Guia de Instalação do Debian GNU/Linux Guia de Instalação do Debian GNU/Linux Copyright 2004, 2005, 2006, 2007, 2008, 2009 o time do Instalador Debian (the Debian Installer team) Este documento contém Leia mais Larry Ullman. Novatec
Larry Ullman Novatec Authorized translation from the English language edition, entitled EFFORTLESS E-COMMERCE WITH PHP AND MYSQL, 2nd Edition, 0321949366 by ULLMAN, LARRY, published by Pearson Education, Leia mais CENTRO UNIVERSITÁRIO DO SUL DE MINAS UNIS/MG GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MARCO ANTÔNIO GONÇALVES PAULO CÉSAR STOLLE DESSIMONI
CENTRO UNIVERSITÁRIO DO SUL DE MINAS UNIS/MG GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MARCO ANTÔNIO GONÇALVES PAULO CÉSAR STOLLE DESSIMONI CONTROLADOR DE DOMÍNIO NO LINUX Professor Lázaro Eduardo da Silva VARGINHA Leia mais Looking for design, copywriting, or programming help with your project? Check the Gig Board.
Getting Real Overview Buy the book Buy Getting Real in PDF or paperback. Job Board Sling Media is looking for a Interactive Flash Designer. See more on the Job Board. Gig Board Looking for design, copywriting, Leia mais VINÍCIUS DUPAS BRAGAGNOLLO IMPLEMENTAÇÃO E REFINAMENTO DE UMA PROPOSTA DE UM SISTEMA DE RANQUEAMENTO DE CMS'S
VINÍCIUS DUPAS BRAGAGNOLLO IMPLEMENTAÇÃO E REFINAMENTO DE UMA PROPOSTA DE UM SISTEMA DE RANQUEAMENTO DE CMS'S Monografia de graduação apresentada ao Departamento de Ciência da Computação da Universidade Leia mais AULAS 02 e 03: Noções sobre processo de desenvolvimento de software e Papéis e Responsabilidades em Projetos de Software
AULAS 02 e 03: Noções sobre processo de desenvolvimento de software e Papéis e Responsabilidades em Projetos de Software SUMÁRIO PÁGINA Análise e Projeto de Software 1 Implementação, testes e implantação Leia mais Todos os Direitos Reservados - Lei 9.610 de 19/02/1998. Publisher Bruno de Souza. Capa Bruno de Souza. Editoração Bruno de Souza
Startup marketing Startup marketing 2 Copyright 2014 Bruno de Souza Todos os Direitos Reservados - Lei 9.610 de 19/02/1998. Publisher Bruno de Souza Capa Bruno de Souza Editoração Bruno de Souza Revisão Leia mais 2016 © DocPlayer.com.br Política de Privacidade | Termos de serviço | Feedback