Pergunta

Atualmente, estou trabalhando com o parceiro em um projeto PHP.

Nós dois editamos diretamente em um servidor local (todos os arquivos são armazenados no servidor, que também está executando uma pilha WAMP). Estou procurando um cliente SVN que monitore e salve todas as alterações na pasta HTDOCS e atualize um repositório SVN remoto, através da Web.

Seria um ótimo bônus se eu pudesse manipular o cliente SVN através de uma interface da Web.

Por exemplo, digamos que eu salvo file1.php para o servidor. Atualizaria file1.php no site da SVN. Se eu descobrir de repente que minhas mais recentes revisões do arquivo são ruins, eu poderia ir para o servidor (ou usar alguma interface da web do meu computador) e substituir file1.php com uma revisão mais antiga.

Não quero apenas instalar um servidor SVN em nossa máquina local, porque sempre gostaria de economizar uma cópia remotamente com as últimas alterações.

Alguma recomendação?

Foi útil?

Solução

Não conheço nenhum software para fazer isso. Provavelmente não seria difícil script isso usando o cliente SVN STN STEN STREN. Ou seja, tenha um script em lote/shell que roda regularmente e verifique tudo o que mudou.

Dito isto, eu faria muito fortemente Aconselhar contra fazer isso!

O modelo de trabalho normal de controle de origem é que todos têm uma cópia local para trabalhar e verifica suas alterações em um repositório central.

O check -in manual explícito garante que você verifique apenas coisas que funcionam (geralmente) e permite que você faça comentários valiosos de check -in.

Em seguida, o servidor pode ser atualizado com uma versão boa conhecida do repositório de controle de origem.

Parece que você está trabalhando em um sistema de produção. Eu recomendo fortemente considerar o uso de um (s) ambiente (s) de desenvolvimento e a abordagem acima.

Outras dicas

Se estou acertando, sua intenção é usar o SVN como um sistema de backup automático e versão automática. Se for esse o caso, a coisa mais direta seria usar uma ferramenta de monitoramento de arquivos e ligue para o cliente da linha de comando SVN para alterar arquivos para comprometê-los com o SVN.

Eu não tentei ainda, mas SVN-Monitor pode ser útil. Você precisará para o cliente devn mencionado acima para trabalhar com ele.

Não encontrei nenhum (também tive o mesmo problema).

Fazemos isso em 2 etapas.

Quando tenho que desenvolver uma parte do software - ramo o tronco e o modifico quando os outros fazem o mesmo para concluir suas tarefas. Em seguida, mesclamos os galhos e os testamos. Depois de testar o tronco, está sendo atualizado por esse patch mesclado.

E, finalmente, o Cronjob (ou manualmente) executa o script, que define o Modo de Recurso, exclui Htdocs e exporta para lá um novo tronco e depois chown/chmod tudo conforme necessário.

Neste script, podemos executar a qualquer momento a partir do painel do administrador, definindo revisão necessária se precisarmos reverter as mudanças de buggy rapidamente ...

Você pode considerar uma solução de controle de código -fonte de distribuição (bazar, git, mercurial) para o cenário que você propõe, onde você tem dois compromissos trabalhando contra duas bases de código. Você poderia então ter compromissos locais e empurrar e puxar as alterações nos dois destinos, conforme apropriado.

Mas, indo para o seu problema imediato, você pode precisar de algum tipo de utilidade que monitora as alterações nas duas extremidades e, em seguida, invoca o comando do cliente SVN conforme apropriado assim que detectar mudanças

Não acredito que seja possível ou tão fácil.

Quando você coloca uma pasta em SVN no cliente, uma estrutura de pasta específica é criada para acompanhar quais arquivos estão bloqueados, alterados e assim por diante. Tentar atualizar uma pasta SVN do servidor sem verificar os arquivos ou editar arquivos sem verificar -os (como você deseja fazer) é uma má idéia.

Um trabalho programado que colete sua pasta htdocs em um arquivo zip, a versão via arquivo de arquivo e o envie para algum armazenamento remoto pode ser uma maneira mais fácil e rápida de gerenciar isso.

Eu não sei se talvez o svn gancho pós-comprometimento Pode ser de alguma utilidade, dado o script certo? Você pode implantar automaticamente as alterações da revisão atual (ou seja, a revisão acabou de ser criada antes de chamar o gancho) para o sistema de produção. Eu acho que esse é o tipo de coisa que você está pedindo?

Devo dizer que concordo com alguns dos outros comentários aqui sobre a inadvisibilidade do que você está propondo. Eu recomendaria uma solução na qual você inicie manualmente o processo de implantação e a fonte é retirada do repositório.

Desculpas se eu compreendi mal.

Editar: Depois de reler a pergunta, acho que você está procurando por confirmações automatizadas no repositório, não implantações automatizadas. Como é esse o caso, a solução de script programada proposta por outros é a melhor abordagem em que posso pensar também. +1 para aqueles que sugeriram isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top