GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO03Difícil⏱ longo

Descreva um algoritmo colaborativo para integração automática de alterações em um repositório de código…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO03

Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Descreva um algoritmo colaborativo para integração automática de alterações em um repositório de código estudantil que detecte e resolva conflitos de dados entre ramificações (branches), especificando estruturas de dados, passos para detecção de conflito e estratégia automática de mesclagem (merge).

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Modelo de resposta: representar o repositório como um grafo acíclico direcionado (DAG) de commits onde cada commit referencia árvores de arquivos identificadas por hashes (blob ids). Estruturas: mapas hash (path ? blob hash), listas de mudanças (diffs) e uma fila de operações para mesclagem. Passos: 1) identificar os commits base (ancestral comum) entre as branches; 2) gerar diffs three-way entre base, branch A e branch B usando mapas de blobs; 3) detectar conflitos quando o mesmo arquivo/path tiver mudanças distintas em A e B (comparar blobs e hunks); 4) aplicar regras automáticas de resolução: (a) se alterações não se sobrepõem, combinar hunks; (b) se uma branch adicionou e outra excluiu, decidir por política (preferir última alteração ou marcar para revisão); (c) para conflitos textuais, aplicar heurística semântica (por exemplo, preferir alterações que passam nos testes automatizados) ou usar last-writer-wins quando apropriado; 5) ao resolver automaticamente, gerar commit de merge com metadados (autor, estratégia, hashes) e executar testes de integração; 6) se conflitos não resolvidos automaticamente, criar um ticket e sinalizar linhas conflitantes no arquivo. Para colaboração: integrar pipeline CI que executa testes e análise estática antes de aceitar merges automáticos, registrar logs imutáveis (hashes) para auditoria e permitir rollback por referência de commit. Observações: priorizar integridade dos dados usando hashes, registrar decisões de resolução e oferecer intervenção humana quando heurísticas falham.

Explicação

A explicação aborda a estruturação do repositório como um grafo acíclico, o que facilita a visualização das relações entre commits e branches. Os passos detalhados para detecção e resolução de conflitos garantem uma abordagem sistemática e eficiente, permitindo que o algoritmo lide com diferentes cenários de conflito. Além disso, a integração de um pipeline de CI e a ênfase na integridade dos dados asseguram que as alterações sejam testadas e auditáveis, promovendo a colaboração eficaz entre os desenvolvedores.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmo de mesclagem

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmo de mesclagem · detecção de conflitos

📚 Reveja

Revisar conceitos de algoritmos e estruturas de dados em programação.

⚠️ Erro mais comum

O aluno pode descrever um algoritmo que não considera adequadamente a detecção de conflitos, resultando em uma mesclagem incorreta dos dados.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

colaboracao

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Projetos com programação

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.