Este tópico tem os conceitos que você precisa saber sobre controle de versão para começar a contribuir com suas docs.
Controle de versão é um sistema que possibilita trabalhar com diferentes instâncias de um mesmo documento. Você pode encarar o controle de versão como uma forma de manter o histórico de alterações no documento, mas envolvendo operações mais complexas e avançadas.
Pessoas que trabalham com sistemas de versão criam e alteram documentos existentes no seu ambiente local. Depois, enviam os documentos para o sistema de controle de versão, onde ficam armazenados no ambiente remoto. O ambiente remoto é chamado de repositório.
Uma lista resumida de sistemas de controle de versão pode ser consultada na Wikipedia. Porém, existem muito mais sistemas além dos que estão listados no artigo.
Este tutorial adotou o Git como sistema de controle de versão. Este sistema é um dos mais comuns e é o sistema usado pelo GitHub. Você irá saber mais sobre isto no próximo tópico: Git e GitHub.
Assim como ocorre com um código de software colaborativo, você ou uma equipe podem manter diferentes versões da documentação do projeto. Cada nova versão gerada é chamada de revisão.
O conceito de revisões é aplicado ao código-fonte dos projetos, mas também pode ser aplicado para a documentação. Por isso, surge o termo docs-as-code (ou “documentação como código”).
A prática de docs-as-code indica que a documentação é tratada da mesma maneira que o código-fonte: a documentação está no repositório do projeto, é versionada e segue o mesmo fluxo de trabalho, onde as pessoas colaboram com alterações.
Vamos criar um cenário de exemplo para entender melhor como funciona o controle de versão.
Imagine que você tem dois tech writers no time: o Tech Writer A (TW A) e o Tech Writer B (TW B). Ambos estão trabalhando no mesmo repositório de documentação. O repositório é novo e ainda não tem nenhum documento armazenado.
Acompanhe esta sequência de ações:
Nesse momento, os arquivos que os TW A e B criaram estão no repositório. Esta é a versão inicial dos documentos, portanto, ambos estão na primeira revisão (V1), tanto no repositório quanto nos ambientes locais onde foram criados.
Imagine que o TW A precisa fazer alterações no DOC B, que foi criado por outra pessoa do time:
Neste ponto, a versão do DOC B que está no ambiente local do TW B está desatualizada, pois ainda está na primeira revisão.
Para continuar mexendo no DOC B, o TW B precisaria primeiro puxar a nova revisão do repositório. Depois, trabalharia normalmente no documento.
O exemplo anterior mostra que o conceito de controle de versão é simples. Mas, quanto maior o volume e mais extensos forem os documentos, maior é a complexidade do controle de versão. A complexidade aumenta também com a quantidade de pessoas trabalhando juntas nos arquivos de um mesmo projeto.
Em alguns casos, pode acontecer de duas pessoas mexerem no mesmo arquivo sem que tenham puxado a versão mais recente primeiro. Quando isso acontece, ocorre um conflito. Conflito é o nome que se dá para a situação em que o sistema de controle de versão encontra divergências entre as revisões de um mesmo documento. Quando acontece um conflito, você precisa dizer ao sistema o que ele deve fazer com o arquivo conflitante.
Existem três opções principais do que fazer com um conflito:
O conflito é um cenário atípico e não será abordado neste tutorial. É interessante conhecer pelo menos os princípios básicos, pois fazem parte do cotidiano de trabalhar com controle de versão.