Questão de Engenharia de Software — Gerência de Configuração — FCC 2015
Engenharia de Software›Gerência de Configuração
Código
fc020561
Banca
FCC
Órgão
MPE-PB
Ano
2015
Nível
Superior
Cargo
Analista de Sistemas – Desenvolvedor
O GIT possibilita controlar versões de componentes de software com as facilidades de
Aarmazenar alterações de fontes de programas como uma lista de mudanças por arquivo, registrando portanto um conjunto de arquivos e as mudanças feitas a cada arquivo ao longo do tempo.
Barmazenar alterações de fontes de programas em um único arquivo de registro de alterações subsequentes que funciona como um LOG de modificações de fontes que pode ser aplicado para desfazê-las a qualquer tempo.
Creplicar cópias de cada componente quando da sua modificação, atualizando repositórios de arquivos locais nas estações de trabalho de cada desenvolvedor catalogado como membro do projeto de software em questão.
Dnavegar no histórico das modificações, consultando diretamente as cópias dos arquivos físicos de cada versão, a partir de um repositório localizado no servidor de programas fonte.
Enavegar no histórico das versões, consultando snapshots referentes aos arquivos físicos do servidor de fontes que são guardados em um banco de dados local da máquina do desenvolvedor.
Revelar gabarito e comentário▾
GabaritoE — navegar no histórico das versões, consultando snapshots referentes aos arquivos físicos do servidor de fontes que são guardados em um banco de dados local da máquina do desenvolvedor.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Git – Armazenamento de versões
Gabarito: letra E. O Git armazena o histórico como uma série de snapshots (fotografias) do estado completo do repositório em cada commit, guardados em um banco de dados local na máquina do desenvolvedor – exatamente o que a alternativa E descreve. As demais alternativas trocam esse modelo por abordagens de outros sistemas (como CVS/SVN, que armazenam deltas por arquivo, ou por um único arquivo de log).
O contexto fornecido é genérico (gerenciamento de configuração de software), mas a questão exige conhecimento específico sobre o funcionamento do Git. Mesmo assim, a resposta pode ser determinada pelo contraste entre as opções.
Git: armazenamento de versões: Modelo: snapshots (Estado completo do repositório, A cada commit, Banco de dados local); Histórico (Grafo acíclico dirigido (DAG), Objetos independentes); Distribuição (Cópia local completa, Push/pull de branches); Não é (Delta por arquivo (CVS/SVN), Log único (SCCS/RCS), Cópias por componente, Arquivos físicos no servidor)
Alternativa A — ❌ Incorreta
Afirma que o Git armazena alterações como uma lista de mudanças por arquivo, registrando um conjunto de arquivos e suas mudanças ao longo do tempo. Esse é o modelo de sistemas como CVS e SVN (armazenamento baseado em delta ou changeset). O Git, ao contrário, não gerencia arquivos individualmente; ele tira um snapshot de todo o projeto a cada commit. A descrição está errada.
Alternativa B — ❌ Incorreta
Descreve um único arquivo de registro de alterações subsequentes funcionando como um log de modificações que pode ser aplicado para desfazê-las. Isso se assemelha a um sistema de patch ou a um histórico linear de mudanças (como o antigo SCCS ou RCS). O Git não usa um único arquivo; cada commit é um objeto independente, e o histórico é um grafo acíclico dirigido (DAG).
Alternativa C — ❌ Incorreta
Fala em replicar cópias de cada componente quando da sua modificação, atualizando repositórios locais de cada desenvolvedor. Embora o Git seja distribuído e cada desenvolvedor tenha uma cópia local, a replicação não é feita ”por componente” nem sempre que há modificação. O Git trabalha com commits completos, e a replicação ocorre via push/pull de branches inteiras. A descrição é imprecisa e não reflete o modelo de snapshots.
Alternativa D — ❌ Incorreta
Diz que é possível navegar no histórico consultando diretamente as cópias dos arquivos físicos de cada versão a partir de um repositório no servidor. O Git armazena os objetos em um banco de dados local (não servidor central), e as versões são consultadas por referências (hashes SHA-1), não por arquivos físicos individuais. Além disso, o Git é descentralizado; o repositório do servidor (remote) é um clone, não o principal.
Alternativa E — ✅ Correta ⟵ GABARITO
O Git permite navegar no histórico das versões, consultando snapshots referentes aos arquivos físicos do servidor de fontes que são guardados em um banco de dados local da máquina do desenvolvedor. Cada commit é um snapshot do estado de todos os arquivos rastreados, e esses snapshots são armazenados de forma eficiente (objetos no diretório .git/objects). O repositório local contém todo o histórico. Essa é a descrição mais fiel ao modelo do Git.
NÃO CAIA NESSA!
As alternativas A, B e C descrevem sistemas de controle de versão centralizados e não distribuídos (como CVS e SVN), que muitos candidatos conhecem e podem confundir com o Git. O erro está em não reconhecer que o Git é baseado em snapshots e não em diferenças por arquivo.