Helix Versioning Engine. Perforce Técnico

 

Perforce_helix

 

Helix Versioning Engine
Work Without Limits

Helix é um   SCM e uma plataforma de colaboração de conteúdo  de nível empresarial, que ajuda as equipes a construir melhores produtos mais rapidamente. Ele oferece uma abordagem híbrida para controle de versão, usá-lo como um sistema de controle de versão distribuído (DVCS) ou pode ser usado como um sistema centralizado.

Mais informações Helix Motor Versioning Engine (Inglês)

 

Arquitetura

Ele funciona em modo cliente / servidor. O servidor gere uma base de dados central que contém uma ou mais versões repositórios de arquivos. Clientes que trabalham com arquivos em modo local após importá-los para sua oficina (área de trabalho), e depois devolvê-los agrupados listas mudança modificados. A conexão é feita usando protocolos TCP usando RPC e os proprietários de streaming.

Banco de dados

Perforce tem um banco de dados proprietário, pré-configurados e pré-instalados que armazena os metadados dos arquivos armazenados no repositório (história status, dos ramos e reuniões, a mudança listas, descrições de mudanças, usuários, grupos, tags ...). O banco de dados armazena apenas o hash (MD5) do arquivo, que é armazenado no repositório, de modo que você pode verificar a sua integridade.

As tabelas no banco de dados são armazenados em formato binário. Pontos de controle (checkpoints) e os registros são armazenados em formato de texto, que pode ser comprimido e baixadas. Isso torna possível para recuperar um banco de dados que tenha sido danificado por falha de hardware ou outro desastre. Os administradores podem preparar a programação de recuperação de desastres e os logs configurando a frequência de pontos de verificação.

Repositório

Os vários arquivos e suas versões são armazenados em uma estrutura de diretório chamado repositório. As revisões dos arquivos de texto são armazenadas como deltas RCS, enquanto os binários são armazenados inteiramente. Os arquivos de texto são codificados ou em ASCII ou Unicode, dependendo da configuração do servidor. Os arquivos no repositório não são criptografados. As revisões são ramificações ou copiar de outras revisões são mantidos como cópia virtual no repositório. Todas as revisões são salvos por padrão, mas você pode limitar o núacute, número de versões manter o repositório.

Versões obsoletas de arquivos podem ser removidos pelo administrador. Tem que fazer backup de arquivos do repositório.

Clientes

Pderforce clientes são agrupados em quatro categorias: comandos, web, gráfico e plug-ins.

  • O comando interface básica é chamado de P4. Pode ser usado na janela de comando de qualquer sistema operacional ou script. Sempre produz uma saída em modo texto, que pode incluir rótulos ou scripts em Python ou Ruby. APIs nativas também estão disponíveis em C e Java, e Lua, Perl, Python, PHP, Objective-C e Ruby, todos implementados na API C. Os comandos podem ser executados por qualquer funcionalidade de cliente, que pode ser usada com a sintaxe de nomes de arquivo de sistema operativo nativo ou com sintaxe Perforce neutro.

  • Existem duas interfaces gráficas, o Qt genérico com base e chamada P4V e Windows P4WIN. Ambas as operações de suporte mais administrativos. P4V P4Admin-como-é baseado em Gt e pode ser portado em várias plataformas. P4V e pode se espalhar os scripts P4Admin escritps em JavaScript e HTML.

  • P4Web fornece interface Web, e funciona tanto como um cliente e um servidor HTTP forçosamente independente. P4Web pode funcionar como um servidor da Web para fornecer acesso a arquivos compartilhados e repositório de metadados. Ele pode ser executado em uma máquina cliente, de modo que permite o acesso a um Perforce navegador.

  • Os plug-ins são transparentes para os programas de usuário que integram a funcionalidade de cliente Perforce com aplicativos de terceiros. Disponíveis ambientes de desenvolvimento e ferramentas, sistemas de revisão de código, traçando defeitos de compilação de comando ferramentas de automação de escritório, SQL e clientes FTP

Caracterísiticas

  • Metadados história completa e arquivo

  • A história completa na história de revisões de arquivos ramificada, renomeados, movidos, copiados e excluídos

  • Mesclar arquivos em três faixas (três vias fusão arquivo de texto), monitoramento e fusões refusiones prevenção; detectar ancestral comum

  • Apresentação gráfica das diferenças, fusões e ferramentas de reconciliação

  • Visualização gráfica do patrimônio histórico e ramificações

  • Interface administrativa gráfica

  • Suporte para controle de versão distribuído

  • Imagens de ícone

  • Listas de mudança: os arquivos modificados podem ser agrupados e gerenciados como unidades lógicas

  • Modificações atômicas: o servidor faz as listas de câmbio são atualizados indivisivelmente

  • Estacionamento:  pode ser armazenado temporariamente o trabalho em curso para alternar tarefas

  • Suporte para arquivos ASCII, Unicode, binários, links simbólicos, Mac específico e UTF-16

  • Suporta internacionalização e localização

  • Estilo palavra-chave expansão RCS

  • Compactação de arquivos para transmissão e armazenamento

  • Um servidor Unix ou Windows oferece suporte a clientes em qualquer sistema operacional

  • Gatilhos eventos no servidor

  • SDK para integração com sistemas externos

  • As notificações de atualizações via RSS ou e-mail

  • E replicação arquivo de metadados

  • Manager para locais comando restrição da implementação, ou o redirecionamento de políticas para servidores alternativos

  • Ficheiros de arquivo para o espaço livre em disco

Modelo de concorrência

Perforce oferece um modelo misto de concorrência em termos de enxerto (fusão) e versões de bloqueio. Tal como acontece com sistemas semelhantes, os usuários não têm para bloquear os arquivos para trabalhar com eles, mas eles são necessários para resolver os problemas de concorrência com arquivos confirmados por outros antes de cometer suas próprias alterações. Opcionalmente pode bloquear arquivos para evitar problemas de concorrência.

O modelo é um pouco diferente e os usuários Perforce não precisa informar o sistema sobre os arquivos que procuram mudar, mesmo sem bloqueio. Quando intenções de mudança notificando colocar os arquivos em uma lista de alterações (Changelist) brincos enviado para o servidor. Isso permite que outros usuários a trabalhar nos mesmos arquivos, de modo que permite que outros usuários estão trabalhando em paralelo antes de coordenadas enxerto mudanças difíceis (fusão).

Perforce suporta esse requisito prévio aviso dando permissão para ler arquivos somente na oficina local (área de trabalho), após retirá-los a partir do repositório.

Os usuários podem contornar essa exigência, voluntariamente ou por necessidade (por exemplo, quando estiver trabalhando offline) - arquivos ignorando permissões e modificar à vontade. É de sua responsabilidade, nesse caso, use Perforce para este trabalho em off reconcilar, colocando-os em uma lista de alterações pendentes, para que possam ser comprometidos (empenhados). (Também é de responsabilidade dos usuários a deixar os arquivos em estado gravável após alteração. Um arquivo de somente leitura que não está em uma lista de alterações pendentes é considerado por Perforce como um candidato para substituição).

Ramificaciones e injertos

Os arquivos são identificados exclusivamente por seu nome completo (por exemplo //repositorio/principal/src/index.cpp).Qualquer versão do arquivo excluído não pode ser ramificado. Perforce usando inter-arquivo ramificação, que cria um novo arquivo com um novo nome. Por exemplo  mi/index.php pode segue em  tu/index.php,e cada um pode evoluir de forma independente. Os ramos do repositório normalmente são nomeados com o nome de todos os arquivos ramificados. Por exemplo arquivos em //repositorio/principal pode ser ramificada em //repositorio/version1.0, assim, obter dois ramos que podem evoluir de forma independente, e, eventualmente, podem ser enxertados.

Em Perforce enxerto de funcionamento muda de um galho para outro é chamado de integração. A integração propaga mudanças entre um conjunto de arquivos e outros receptores de doadores relevante; existe a opção de definir ramificações opcionais que podem ser atribuídos a correspondência doador-receptor específico. Por padrão, a integração se espalha todas as alterações pendentes em doadores, mas eles também podem simplesmente mudar listas, datas, tags, nomes de arquivos ou padrão de arquivo nome escolhido. O sistema registra todas as integrações, os ancestrais comuns usados para selecionar a enxertia, e não o padrão integrações redundantes.

O enxerto (merging) é apenas um dos três modos possíveis de integração. Os outros são chamados de rejeição (ignoring) e promoção (promoting). Enxerto é usado para atualizar um conjunto de arquivos para outro. Por exemplo, um ramo de desenvolvimento pode ser mantido pela corrente repetido com os enxertos primários. A demissão ignora as mudanças em um conjunto de arquivos para a futura integração com outros. Normalmente utilizado quando um ramo de desenvolvimento é manter atual, mas diferente, com o principal. A promoção é tipicamente utilizada para promover o conteúdo de uma ramificação do desenvolvimento principal.

O ramo também suporta arquivos renomeados (ou movidos). Os ramos de comando mover os arquivos originais para novo e apagar o original. Um arquivo ramificada não é diferente de um anexo; arquivos ramificada são considerados iguais aos originais, não descendentes. O sistema controla os arquivos de origem, e se refere a eles ao exibir o histórico de arquivos que foram renomeados.

Streams

Na versão 2.011,1 grupo de arquivos Perforce introduzido em pacotes ou grupos correspondentes a uma versão. Os fluxos de modelo para criar um novo ramo e posteriormente enxertado cada um dos arquivos que os componentes em uma única operação, o sofrimento de cada um dos arquivos afetados os mesmos ramos e enxertia processo descrito acima.

Funcionalidade fluxos oferece uma forma inovadora para gerenciar o desenvolvimento simultâneo, dependências e outras atividades comuns esportes e versões de filiais de publicação. Fluxos fornecem um quadro para os projectos para o estabelecimento de fluxos de trabalho baseados nas melhores práticas de anos de desenvolvimento. Os fluxos são flexíveis o suficiente para acomodar muitas desenvolvimento de modelos de ramificação, incluindo mainline e promoções direito ao desenvolvimento site.

A migração de um projeto existente para fluxos requer um planejamento. Embora a mecânica de mover os dados para um fluxo é o depósito direto, outros pontos a serem considerados, tais como o impacto sobre os usuários e ferramentas. Mudar para um fluxo de trabalho de fluxos produtivos fornece e resolve gargalos tradicionais.

Controle de Revisão distribuídos

Perforce tem dois mecanismos para alcançar um controlo de versão distribuída, estes mecanismos podem ser utilizados independentemente ou em combinação. O primeiro é um servidor de proxy que armazena frequentemente ler versões para reduzir o tempo de acesso de utilizadores remotos. Isso acomoda mecanismo de desenvolvimento em organizações fechadas em que um banco de dados repositório centralmente e acesso universal são desejáveis.

O segundo mecanismo, chamado de repositórios remotos, permite que os usuários conectados a um servidor para acessar arquivos armazenados versões em outros. Com repositórios remotos, cada organização controla seu próprio servidor e parte visível dele-ou todos-para outros servidores. Este mecanismo pode ser utilizado por organizações de desenvolvimento espalhados como uma abordagem em peer-to-peer.

Segurança e Controle de Acesso

O servidor Perforce armazena o conteúdo de cada arquivo em um repositório mestre que, quando devidamente instalado, os usuários não têm acesso. O acesso do usuário aos arquivos é controlado por um ou mais superusurios Perforce. Eles poderiam ser dada uma ampla gama de direitos e de acesso. Você pode definir o diretório nível de proteção, o usuário eo endereço IP. O servidor pode auditar o acesso do usuário aos regulamentos de conformidade legal (SOX ...).

A autenticação do usuário é controlado pelo administrador do sistema Perforce. Isso pode definir a força da chave, assim como você pode configurar o acesso usando bilhetes. Triggers (programas do usuário ou scripts que  gatilho, n eventos predefinidos) podem ser associados com quase todos os comandos do Perforce, e pode ser usado para conexão a uma autenticação externa (LDAP, SSO ...), para bloquear ou permitir que certos comandos, ou para normalizar modificações restringor ou arquivo. Gatilhos são executados no servidor e não têm acesso a máquinas clientes.

Perforce, como quase todos os sistemas de controle de versão, não cifa o conteúdo dos arquivos ou o servidor do cliente ou máquinas, nem de transmissão de figura. Você pode usar um protocolo de tunelamento como VPN ou SSH, para garantir transferências. Para garantir que o conteúdo globalmente Perforce deve implementar corretamente a proteção de arquivos, autenticação e utilização de túneis criptografados para se comunicar com o servidor.

O cliente Perforce confia no servidor. Isso significa que o servidor tem o controle total da conta de usuário do cliente, incluindo leitura e escrita de todos os arquivos do usuário. Em ambientes onde o servidor Perforce é gerido por um terceiro, pode representar uma ameaça à segurança e certa privacidade do cliente.

Disponibilidade e plataformas suportadas

Transferências de avaliação estão disponíveis Perforce servidor, cliente e plug-ins no site Perforce. Normalmente lançar duas novas versões de cliente e servidor de programas por ano, como executáveis. Eles estão disponíveis para Microsoft Windows, Mac OS X, Linux, Solaris, FreeBSD e outros sistemas operacionais.

Disponble integração com IDE seguinte:

  • Eclipse
  • WebSphere
  • ColdFusion
  • Dreamweaver
  • CodeWright
  • IAR Embedded Workbench
  • Visual Studio
  • Primalscript
  • Zeus
  • Komodo
  • articy:draft
  • BBEdit
  • JBuilder
  • Embarcadero Delphi
  • Delphi
  • IntelliJ IDE
  • LabVIEW
  • PythonWorks
  • SlickEdit

 

Licenças e condições de uso

Usando usuários do servidor Perforce e 20-20 oficinas de usuários são livres de encargos, ou por um núacute; número ilimitado de usuários e mais de mil arquivos. Deve ser adquirido uma licença para mais usuários ou workshops de usuário, as licenças podem ser adquiridas em perpetuidade ou por assinatura. Eles fornecem licenças livres de software open source para desenvolvimento de projetos, a escola ou períodos acadêmicos e avaliação. O uso de clientes ou plug-ins é a documentação ilimitada, e técnica.

Base instalada

Em Junho de 2013, Perforce teve uma base de cerca de 400 mil usuários em 5500 organizações.