Pergunta

Se você está em um corporativa configuração com muitas pessoas trabalhando em uma aplicação particular, é que vai na contramão de um sistema de controle de versão distribuído ter um repositório central oficial?

Às vezes, eu me esforço para compreender o conceito de um sistema de controle de versão distribuído, como GIT em um ambiente corporativo. Se você não tem um repositório central, não seria uma PITA para descobrir quem tinha a versão mais recente atualizado para puxar, quem tem a característica x ou bug correção y que todo mundo precisa de apoio, etc, etc.

É derrotando a finalidade de GIT para usá-lo em uma forma similar a SVN , com um repositório central que todos empurra / puxa a partir? Cada vez que penso em fazer isso eu sinto que estou perdendo o ponto de tudo.

Alguém poderia me esclarecer?

Foi útil?

Solução

Não é verdade. DCV são apenas permite mais liberdade em como interagir entre desenvolvedores sem envolver o repositório central. O repositório oficial é o único funcionário por consenso . Linux também tem um repositório central, a partir do qual os "oficiais" do kernel-lançamentos são criados, mas não há diferença física entre as centrais,, repositórios "oficiais" de repositório e cliente como é em VCS centralizado.

Outras dicas

Você está provavelmente pensando ao longo das linhas deste diagrama:

text alt

Isto irá provavelmente parecer o caos que vem de um CVCS. "Precisamos de algum modo", eu ouvi você dizer?

Se você não tem um repositório central, não seria uma PITA para descobrir quem tinha a versão mais recente atualizado para puxar, quem tem a característica x ou bug correção y que todo mundo precisa agarrar, etc, etc .

Sim. Ao contrário de um CVCS Não há realmente uma “última versão”. Se não há nenhuma localização central, você não imediatamente saber se para ver Sue, Joe e Eva para a versão mais recente. A localização central ajuda a esclarecer o que a última versão “estável” é.

Algo um pouco mais parecido com isto:

text alt

Também pode ser interessante notar que pode haver mais do que uma percepção repositório central, dependendo das atribuições de grupos de pessoas dentro de uma organização.

Imagine um gerente de projeto que gerencia várias equipes de desenvolvimento, cada equipe pode ter um repositório de "central" que empurrar para. Toda semana, o gerente de projeto pode puxar as mudanças de cada equipe em seu repositório "central", fundi-los e empurrá-los de volta para suas equipes repositórios 'centrais'.

Esta provavelmente não é um grande exemplo (eu ainda estou começando minha cabeça em torno de tudo isso também), mas isso é apenas um gerente de projeto. O lance em alguns mais projetos / gerentes e equipe de QA, então você pode ver onde eu estou vindo ..

-

Com o controle fonte distribuído, um repositório central "oficial" é estabelecido pela política -. Não arquitetura ferramenta de controle de origem

Definitivamente não derrotar o propósito de Git.

A vantagem de usar Git ou quaisquer outros DVCS, mesmo quando há uma central, oficial, repositório é ainda que o controle de origem é descentralizada. Ou seja, você pode pegar sua cópia do repositório, trabalhar em seu código, e fazer um local de cometer a cada poucos minutos se precisar. Você não precisa se preocupar que os commits estão no código de semi-acabados que quebrar a construir, é tudo local. (E muito rápido).

Então, quando todo o trabalho é feito, você pode limpar o histórico e empurre as mudanças concluídas para o repositório central em uma homogênea, limpo, estado.

Eu não acho que você pode subestimar a vantagem de separar a ideia de commits "privados" e empurra "públicos". Ele permite que alterações sejam rastreados, mesmo que você é o único a beneficiar de tais pequena granularidade.

Se você marcar esta Apresentação do Git , (corrediça 475 e seguintes), um repositório central Modelo está perfeitamente suportado pelo Git.

Você pode pode forçar qualquer pessoa que pretenda git push seu desenvolvimento para primeiro fazer uma git fetch + git merge primeiro e pressione.

Isso não derrotar o propósito de Git em tudo, e garantir que todos estão 'em sincronia' com o outro.

A diferença com o de Linus "oficial" repositório mencionada por JesperE é que ele é gerido por um fluxo de trabalho diferente, ou seja, um modelo "Ditador e tenentes", onde o acesso write (push) só é concedida para Linus, e ler são concedidos para qualquer um.

Agora: "faz que a derrota o ponto de DVC"

Não, você ainda tem distribuídos repositórios, uma para cada desenvolvedores, e eles podem buscar / merge entre seus próprios repositórios, de acordo com seu próprio fluxo de trabalho da equipe interna.
No entanto, se eles querem contribuir para o repo central, eles precisam ter para ser o primeiro up-to-date com a mais recente história desse repositório.

Um dos principais benefícios do DVCS é que você pode obter a versão mais recente a partir do repositório 'oficial' e, em seguida, ser aventureiro com ele. Você pode confirmar as alterações localmente e back roll à vontade. Isso também significa que você pode até trabalhar mesmo sem acesso ao repositoy central e ainda tem os benefícios de controle de código fonte.

Eu acho que com um pouco de disciplina o modelo funciona muito bem. Este artigo explica bem os vários modelos que você poderia adotar

DVCS como Git não forçá-lo a usar um repositório central. É claro que é possível declarar um repositório para ser “central” ou “oficial” ou o que quer, e num contexto empresa um repositório central faz algum sentido, se não para o desenvolvimento, em seguida, pelo menos para fins de backup.

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