Web frontend simples para administração remota de svn? [fechadas]

8

Nós executamos um repositório SVN. Alguns de nossos usuários mais avançados precisam ser capazes de executar alguma administração SVN sem depender do administrador do sistema.

Eles precisam ser capazes de fazer coisas como criar repositórios SVN, excluir repositórios SVN ,, e executar comandos como 'svnadmin dump' e 'svnadmin load'.

Gostaríamos de evitar o acesso SSH nessas máquinas FreeBSD e preferimos fornecer uma interface de serviço através de uma interface da Web.

Estou procurando um script simples (ou um pequeno número de scripts) que use Perl ou PHP. Encontrei svnadmin (de Jochen Hoenicke) ou svnadmin.pl (de doug munsinger), mas esperava encontrar algo com uma comunidade de usuários maior ou recomendada por outras pessoas.

Parece que o Trac permite a administração de SVN, mas vem com mais recursos do que precisamos.

Stefan Lasiewski
fonte
Pelo seu texto, parece que você rejeitou o svnadmin simplesmente porque não acha que ele tenha uma base de usuários grande o suficiente. Estou lendo isso corretamente? Mais importante, ele atende às suas necessidades ou não? Quantas outras pessoas usam nem deve ser um fator.
John Gardeniers
@ John Gardeniers: Não rejeitamos svnadmin ou svnadmin.pl. No entanto, se eu tivesse escolha entre um projeto com um autor e um projeto com uma comunidade, geralmente escolherei o último, desde que ambos os projetos atendam às minhas necessidades. Costumo confiar mais em um script suportado pela comunidade, porque a comunidade geralmente pode oferecer otimizações aprimoradas, correções de segurança, responder a perguntas etc. Isso dito, provavelmente usaremos o svnadmin, devido à sua natureza simples e é um código legível. Não que haja algo errado com o svnadmin.pl.
Stefan Lasiewski
Eu também encontrei uma lista (de 2008) de outros projetos possíveis na Collabnet: "Melhor interface administrativa baseada na Web para o Subversion?"
Stefan Lasiewski

Respostas:

1

Resposta tardia, porque eu sou novo no serverfault: nós (departamento de universidade de compsci) desenvolvemos nossa própria interface web de svn de autoatendimento e a disponibilizamos como código aberto. Nomeado repocafe, disponível em http://repocafe.cs.uu.nl/ . Modelado de acordo com nossas próprias necessidades, ele pode lidar com um ou vários servidores LDAP e usuários convidados. Talvez um pouco exagerado por 'simples'.

Koos van den Hout
fonte
Obrigado por isso. Somos uma instituição de pesquisa do governo e trabalhamos com funcionários de muitas universidades. Nós, por vezes, trabalhar com vários servidores LDAP, etc.
Stefan Lasiewski
5

No final, optamos por seguir com svnadmin (de Jochen Hoenicke).

Isso ganhou porque era um arquivo único e simples, com 400 linhas de código, e é algo que poderíamos consertar se necessário. Infelizmente, ele não possui uma comunidade de usuários ou muitas recomendações. Mas a simplicidade vence. Pergunte-me em 6 meses se recomendamos;)

Stefan Lasiewski
fonte
1

Trac e Redmine são os dois únicos que conheço que fazem isso bem; mas ambos visam mais o gerenciamento de projetos e a administração simples do repositório.

Chris S
fonte
Obrigado Chris. Existem alguns outros projetos que estão na escala de Trac e Redmine, mas seria difícil extrair apenas a funcionalidade limitada que queremos.
Stefan Lasiewski,
1

Há um módulo Usermin para o Subversion, mas não tenho certeza se ele permitiria que você fizesse o que precisa.

alex
fonte
Nós não usamos Webmin ou Usermin, mas obrigado. Para o registro, parece que o seguinte módulo pode fazer o seguinte: Módulo 'Virtualmin SubVersion Repositories 4.0' em webmin.com/cgi-bin/search_third.cgi?cat=Virtualmin
Stefan Lasiewski
1

Existe a "User friendly svn" USVN . Acho que você descobrirá que a maior parte do esforço da comunidade para algo assim é pequeno - o SVN é realmente mantido, mas as ferramentas administrativas são uma parte que não o é. Eles tendem a ser escritos uma vez e funcionam para sempre, portanto, essas ferramentas da GUI também não precisam ser alteradas. Portanto - não se preocupe muito com o tamanho da comunidade neste caso.

gbjbaanb
fonte
1

Vou responder minha própria pergunta, para posteridade.

Eu também encontrei o USVN , que é uma ferramenta de administração de SVN baseada em PHP. Ele passou por várias iterações, possui uma comunidade de usuários e um site completo com recursos brilhantes,

No entanto, o projeto USVN parece um pouco obsoleto. A USVN foi um projeto realizado por estudantes de uma universidade, e agora os administradores se formaram e passaram a procurar empregos, e talvez não tenham tempo para contribuir com o projeto. Não há uma atualização há 9 meses, o rastreador de bugs não parece ativo e os fóruns estão cheios de spam e parecem um pouco mantidos , então talvez a comunidade esteja menos ativa do que aparece pela primeira vez. Isso não é tão ruim e espero que essas pessoas se saiam bem, mas eu ficaria preocupado em me envolver em um projeto obsoleto.

O projeto usa 200 arquivos (sem contar os 2.000 arquivos do Zend), o que pode dificultar a auditoria e a manutenção e pode ter mais complexidade do que procuramos. Além disso, este projeto conta com o Zend, que sofre de problemas políticos no FreeBSD .

Stefan Lasiewski
fonte
1

Outra sugestão da lista de discussão svn dev de 09 de dezembro, então é bem recente!

Confira minha nova ferramenta de código aberto para gerenciar permissões de SVN!

Gerenciar direitos SVN para vários repositórios espelhados em vários locais pode ser uma tarefa assustadora. O svnDashboard fornece uma interface gráfica de usuário simples, baseada na Web e habilitada para AJAX, para gerenciar vários repositórios e usuários ao mesmo tempo.

http://sourceforge.net/projects/svndashboard/

Nova v1.1.3.140 - Agora inclui um script de configuração do banco de dados! Alguns de vocês reclamaram que isso estava faltando, e com razão! Agora está incluído, juntamente com um breve arquivo leia-me.

Em breve na versão 2: • Funcionalidade aprimorada da interface do usuário • Suporte para vários locais espelhados • Estatísticas do repositório • Mensagens de erro • Pesquisa • e muito mais!

gbjbaanb
fonte
Nenhuma atualização desde 2009.
reinierpost
1

Implementamos isso com nossa nova distribuição svn há um ano. Funcionou muito bem.

Temos várias equipes de desenvolvimento e seus próprios projetos. Então, trouxemos todas as informações para o LDAP e concedemos aos gerentes de equipe acesso de gravação à árvore de informações de diretório (DIT) para subversão:

ou = grupos, ou = subversão, ou = aplicativos, dc = exemplo, dc = com ou = repositórios, ou = subversão, ou = aplicativos, dc = exemplo, dc = com

A unidade organizacional dos 'grupos' acima são grupos personalizados para repositórios / projetos do subversion. Além disso, usamos 'viewvc' com https para visualizar repositórios no svn.

O servidor apache usa o arquivo ACL criado com base no LDAP DIT (fornecido acima) para fornecer acesso de leitura e gravação a diferentes usuários e grupos. Existe um cron que lê o LDAP DIT a cada cinco minutos e criou o arquivo ACL. Portanto, se houver um novo repositório adicionado com usuários / grupo somente leitura e leitura / gravação. O cron lerá isso e criará os repositórios e incorporará essas informações no arquivo ACL para o repositório recém-criado. É bem arrumado. Você precisa criar um esquema LDAP com base em seus requisitos, obviamente. Como temos todas as informações de usuários / hosts no LDAP, não foi muito importante estendê-las para incluir informações sobre svn.

-F

Nikolas Sakic
fonte
Por acaso, já temos uma instalação LDAP grande aqui. Idéia interessante. Estou correto ao entender que você tem um repositório SVN para 'ou = repositórios, ou = subversão, ou = aplicativos, dc = exemplo, dc = com'?
Stefan Lasiewski
Você armazena apenas o nome do repositório ou projeto no LDAP. Digamos, eu tenho um novo repositório chamado 'myWebRepo', no LDAP que seria exibido como: cn = myWebRepo, ou = repositórios, ou = subversão, exemplo-dc, dc = com O CRON realmente executa um script ruby ​​(você poderia ter escrito no Perl ou até no Bash). Eu escrevi em Ruby por diversão, na verdade. O script ruby ​​sabe que todos os repositórios existem em 'ou = repositories, dc ....'. Ele reúne todos os nomes do repositório e os atributos, como usuários somente leitura, etc. O ruby ​​verifica se o repositório já existe. Caso contrário, significa que é um novo representante. Ele o cria e atualiza o arquivo ACL.
Nikola Sakic
0

Parece que as coisas mudaram horas extras. Aqui está outro script que eu acho que parece ser uma boa opção para o gerenciamento de svn: http://www.svn-access-manager.org/

happyhardik
fonte