[FUG-BR] subversion solucao para atributos especiais

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quarta Fevereiro 11 18:09:02 BRST 2009


Hmm, ja vi tudo. ITIL sendo implantado e o Repositório vai ter que 
acumular funções, certo?

É completamente possível. Subversion tem um recurso chamado 
propriedades, a ideia é usar e abusar disso. É como se fossem atributos 
customizados na árvore SVN.

Pensemos numa estratégia simples

Pense nas propriedades:

itil:limitcommit = 5000

itil:commiters = patrick, joao, maria

itil:versaoatual = $REV$

E propeidades adicionais:

itil:crisiscode
itil:incidentid

Com isso em mente, voce vai programar hooks, que podem ser de 
pre-commit, e nesses hooks voce vai programar

- Se quem está fazendo commit estiver listado em itil:commiters, verifica:

- Se o conteudo de itil:versaoatual for menor que itil:limitcommit todos 
podem fazer commit a vontade. Senão, o usuário listado em itil:commiters 
não pode fazer commit, e voce da um exit com o código que desejar dentro 
do esperado pelo SVN.

- Para todo e qualquer usuário, verifique se itil:crisiscode existe e 
também se itil:incidentid existe. Se não existir não permite o commit. 
Se existir você racionaliza, ve se o conteudo de itil:crisicode faz 
sentido (exemplo, apenas números), e se itil:incidentid faz sentido - 
comparando com o formato de identificadores de incidente que a sua 
gerencia de incidentes utiliza.

Pra melhor, automatize. Sua gestão de incidentes deve ter o mesmo 
crisiscode e incientid em algum banco de dados onde eles controam isso. 
Pesquise nesse banco! Afinal não pode haver um commit motivado por 
incidente se o incidente não estiver registrado certo?

O SVN utiliza hooks no diretório hooks/ de cada repositório. Nele voce 
pode criar rotinas na sua linguagem favorita (shell, perl, php, python, 
awk, sed, forth, fortran hehe), e o SVN executará o hook em questão.

Nos podemos fazer isso.

E possivelmente tudo o mais que seja possivel fazer no SVN. Creio que 
poucos sistema de versionamento sao flexiveis como o SVN.

Que eu conheça só Perforce é mais.

Evandro Nunes escreveu:
> lista
> 
> tenho uma demanda para criar restricao de acesso a alguns arquivos no
> repositorio
> quando eles passarem de uma certa versao que combine com a versao
> limite configurada
> 
> por exemplo tenho um arquivo em trunk/4.0/sw/vi.jsp
> 
> nesse arquivo quero gravar uma informacao, uma marcacao de versao, por
> exemplo versao X
> 
> quero permitir que um certo (ou certos) usuario possa fazer commit
> nesse arquivo ate a versao X
> 
> se o repositorio passar da versao X quero que aquele usuario nao possa
> mais fazer commit apenas checkput update e outras coisas de leitura
> 
> quero ainda que o nome do usuario que fez a ultima alteracao sempre
> seja preenchido com argumento
> que e o codigo interno de chamado de problema, chamado de crisis-code
> e tambem do numero do chamado como aberto
> pelo povo da gestao de incidentes
> 
> quero que nao possa acontecer commit nesses arquivos sem esses dados preenchidos
> 
> mas como essas informacoes sao especiais nao podem logicamente estar
> nos logs de commit
> 
> preciso saber se tem como fazer isso
> se tiver como fazer preciso de uma visao sobre isso, uma visao da ideia
> e por ultimo se for muito chato preciso saber quem pode fazer isso e
> outras peripecias mais
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd