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
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
algoritmo de mesclagem
avaliacao
algoritmo de mesclagem · detecção de conflitos
Revisar conceitos de algoritmos e estruturas de dados em programação.
O aluno pode descrever um algoritmo que não considera adequadamente a detecção de conflitos, resultando em uma mesclagem incorreta dos dados.
ciencia_tecnologia
colaboracao
cientifico
Questões parecidas com resolução
- Projete e descreva com precisão o algoritmo e as estruturas de dados (registros, grafo, hash) para implementar um…
- Dados ilustrativos: um grupo de alunos realiza um projeto autoral para criar um mapa interativo de pontos culturais de…
- Desde que se juntou a um projeto de documentação colaborativa sobre patrimônio cultural, um grupo de estudantes utiliza…
- Descreva como projetar um algoritmo colaborativo que detecte e corrija laços infinitos introduzidos em código…
- Durante a produção colaborativa de um documentário digital sobre a memória de uma comunidade brasileira, estudantes…
- Você e sua equipe vão criar e publicar um site colaborativo com textos, imagens e pequenos scripts. Descreva como…
🔎 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
