Configurando o SVN em um servidor hospedado

2

Eu estava apenas imaginando se alguém poderia me ajudar com minha instalação do subversion em um servidor web dedicado (dedicado) com o qual estou lutando.

Eu tenho um servidor Linux dedicado que alugo e a equipe instalou o subversion para mim (/ usr / bin) e isso é tudo. Foi-me dito que eu posso usar o PuTTY para se conectar ao servidor que eu pude fazer.

Agora tenho mais 15 sites hospedados no servidor e o WHM está instalado para gerenciá-los; portanto, gostaria de criar um repositório para cada um e colocar o código-fonte em cada um deles. Então eu usaria o TortoiseSVN para criar repositórios na minha máquina local e então seria bom aplicar aqueles commits ao servidor live.

Li os elementos do livro do SVN; no entanto, estou realmente lutando e gostaria de receber alguma ajuda em a) configurar um repositório corretamente e criar todas as permissões e segurança necessárias e, em seguida, b) como faço para obter as alterações da minha máquina local para o servidor ao vivo? ser muito apreciado no que eu suponho que está criando um script de gancho para transferir arquivos para o servidor ao vivo?

Obrigado

P.S. Realmente me ajudaria se alguém pudesse fornecer passos simples para o que precede e o código requerido, já que estou nisso há algumas semanas e não consigo fazer isso acontecer.

    
por Bill Johnson 10.07.2010 / 21:43

3 respostas

4

No seu servidor:

1) Assegure-se de que o subversion esteja instalado - yum / apt-get / etc deve facilitar bastante.

2) Crie um diretório para guardar um repositório: mkdir /some/repository/path

3) Use svnadmin para criar o layout do repositório: svnadmin create /some/repository/path

4) Importe suas fontes:

$ cd /path/to/your/code
$ svn import -m "initial import" . file:///some/repository/path/trunk

NOTA: isso importa o código para o repositório, mas NÃO cria uma cópia de trabalho! Então, a seguir:

5) Mova seus arquivos originais para fora do caminho e confira uma cópia de trabalho:

$ cd ..
$ mv /path/to/your/code /path/to/your/code-presvn
$ svn co file:///some/repository/path/trunk code

5.5) Você provavelmente quer garantir que as pessoas não possam navegar pelos seus diretórios .svn através do servidor web. Para o apache, algo como o seguinte no httpd.conf deve fazê-lo:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

6) Teste seu site, verifique se as permissões estão corretas, etc. Verificar uma nova cópia pode ter criado problemas. É provavelmente uma boa ideia documentar (ou melhor, o script) quaisquer alterações que precisem ser feitas para configurar adequadamente uma cópia com check-out recente.

7) Para obter uma cópia local para desenvolvimento, use uma URL do repositório como svn+ssh://[email protected]/some/repository/path/trunk Não estou familiarizado com o tortoisesvn, mas se você estivesse usando as ferramentas de linha de comando padrão, você verificaria seu projeto como:

$ svn co svn+ssh://[email protected]/some/repository/path/trunk

Você pode então fazer alterações em sua cópia de trabalho local e confirmar a coisa ( svn commit -m "description of changes" ). Quando você quiser mover essas alterações para o sistema de produção, ssh na caixa cd /path/to/your/site , svn -u status (para visualizar as alterações), svn update para atualizar tudo.

Espero que isso seja útil.

Eu também não posso sugerir o suficiente para que o seu leia mais da documentação do subversion para entender o que está acontecendo sob o capô. Além disso, verifique se você sabe o que está fazendo antes de tentar essas coisas em algo importante. Você pode criar repositórios de teste com dados falsos e fazer alguns experimentos até ter certeza de que sabe o que está fazendo.

    
por 10.07.2010 / 20:46
2

é um servidor dedicado ou hospedagem compartilhada? se é hospedagem compartilhada, então eu acho que você está sem sorte, mas se for um servidor dedicado, basta fazer login e instalar o aplicativo

Eu usaria algo como a porta 8080 para o serviço para ouvir, e eu definitivamente usaria o VisualSvnServer Standard como ele é super fácil de instalar e configurar.

Além disso, se você estiver disposto a comprar o VisualSVNServer, você terá acesso total para configurá-lo remotamente.

link

Eu pessoalmente uso a versão padrão e o RDP no meu servidor quando preciso criar um novo Repo ... dessa forma eu posso usar a GUI do VisualSVN e saber que ela funcionará sem problemas.

    
por 10.07.2010 / 20:28
1

Alguns termos de arte aqui esclarecem os problemas que você enfrenta. O importante para entender sobre o SVN é que ele é um sistema cliente-servidor . Uma cópia do repositório posix FS é chamada de checkout ; o servidor centralizado não terá tal coisa. Mover as alterações para um check-out para o repositório central é chamado de commit ; checkouts que outros sistemas fizeram não são afetados; eles devem atualizar para ver seu novo commit. Todas as alterações devem passar pelo servidor SVN central, você não pode se comunicar de um checkout para outro. Scripts que são executados no servidor após eventos SVN específicos são chamados de ganchos . Por exemplo, um script que envia um email após cada confirmação é chamado de "gancho postcommit".

Então, o que você precisa fazer é:

  1. Configure um servidor para hospedar um repositório SVN por site e torná-lo acessível via SVN + SSH . Isso usará o SSH para autenticação (ou seja, "este é o Bill"), mas deixe a autorização ("Bill pode escrever para este repositório") até você. Normalmente, os repositórios são armazenados em /var/lib/svn/ , portanto, faça seus repositórios lá, como svnadmin create pwnguin.net . Um novo repositório vazio é criado. Use tartaruga para finalizar o repo em sua área de trabalho e adicionar arquivos. O URL será algo como svn+ssh://example.com/var/lib/svn/pwnguin.net .

  2. Uma vez que você tenha feito o checkout e se comprometendo a trabalhar na sua caixa local, configure cada site para usar o checkout do DocRoot. Certifique-se de bloquear o acesso a qualquer arquivo .svn na configuração do seu servidor, pois pode ser meio perigoso sair por aí. Faça uma alteração em sua estação de trabalho e confirme-a. Em seguida, tente atualizar a verificação manualmente e verifique se as informações estão fluindo como você deseja.

  3. Depois que você tiver a implantação do SVN em funcionamento, poderá usá-la para automatizá-la com ganchos de pós-aprovação. Se todos os sites estiverem no mesmo servidor Linux que o servidor SVN, é muito fácil criar scripts, se eles estiverem em caixas diferentes, ainda é muito fácil, mas você precisa saber como configurar o SSH sem as senhas com segurança.

por 10.07.2010 / 22:41

Tags