---
description: 'Como obter uma cópia de trabalho do Projeto de Documentação do FreeBSD'
next: books/fdp-primer/structure
params:
  path: "/books/fdp-primer/working-copy/"
prev: books/fdp-primer/tools
showBookMenu: 'true'
tags: ["working copy", "documentation", "manual pages", "git"]
title: 'Capítulo 3. A Área de Trabalho'
weight: 4
---

[[working-copy]]
= A Área de Trabalho
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 3
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/fdp-primer/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

A _área de trabalho_ é uma cópia da árvore de documentação do repositório do FreeBSD baixada no computador local. As alterações são feitas na cópia de trabalho local, testadas e enviadas como patches para serem submetidas no repositório principal.

Uma cópia completa da árvore de documentação pode ocupar 700 megabytes de espaço em disco. Tenha um gigabyte de espaço total para ter sobra para arquivos temporários e versões de teste dos diversos formatos de saída.

O link:https://git-scm.com/[Git] é utilizado para gerenciar os arquivos de documentação do FreeBSD. Ele é obtido pela instalação do pacote package:devel/git[], e também por uma versão mais leve chamado git-lite:

[source, shell]
....
# pkg install git-lite
....

[[working-copy-doc-and-src]]
== Documentação e Páginas de Manual

A documentação do FreeBSD não é formada apenas por livros e artigos. Páginas de manual para todos os comandos e arquivos de configuração também fazem parte da documentação e fazem parte do território do FDP. Dois repositórios estão envolvidos: `doc` para os livros e artigos, e `src` para o sistema operacional e páginas de manual. Para editar páginas de manual, o repositório `src` deve ser obtido separadamente.

Repositórios podem conter várias versões de documentação e código-fonte. Novas modificações quase sempre são feitas apenas para a versão mais recente, chamada `main`.

[[working-copy-choosing-directory]]
== Escolhendo um Diretório

A documentação do FreeBSD é tradicionalmente armazenada em [.filename]#/usr/doc/#, e o código fonte do sistema com páginas de manual em [.filename]#/usr/src/#. Essas árvores são realocáveis e os usuários podem armazenar as cópias de trabalho em outros locais para evitar interferir nas informações existentes nos diretórios principais. Os exemplos a seguir utilizam [.filename]#~/doc# e [.filename]#~/src#, ambos subdiretórios do diretório pessoal do usuário.

[[working-copy-checking-out]]
== Baixando uma Cópia

O processo de download de um repositório é chamado de _clone_ e é feito com um `git clone`. Este exemplo faz a clonagem de uma cópia da versão mais recente (`main`) do repositório de documentação principal:

[source, shell]
....
% git clone https://git.FreeBSD.org/doc.git ~/doc
....

O checkout do código-fonte para trabalhar nas páginas de manual é muito semelhante:

[source, shell]
....
% git clone https://git.FreeBSD.org/src.git ~/src
....

[[working-copy-updating]]
== Atualizando

Os documentos e arquivos no repositório do FreeBSD mudam diariamente. As pessoas modificam arquivos e submetem alterações com frequência. Mesmo após um checkout inicial, já haverá alterações entre a cópia de trabalho local e o repositório principal do FreeBSD. Para atualizar a versão local com as mudanças que foram feitas no repositório principal, execute `git pull` no diretório que contém a cópia de trabalho local:

[source, shell]
....
% cd ~/doc
% git pull --ff-only
....

Adquira o hábito protetor de usar `git pull` antes de editar arquivos de documentos. Alguém pode ter editado aquele arquivo recentemente, e a cópia de trabalho local não incluirá as últimas mudanças até que tenha sido atualizada. Editar a versão mais recente de um arquivo é muito mais fácil do que tentar combinar um arquivo local editado mais antigo com a versão mais recente do repositório.

[[working-copy-revert]]
== Revertendo Alterações

De vez em quando acontece que algumas mudanças não eram necessárias, ou o escritor só quer começar novamente. Arquivos podem ser "resetados" para sua forma anterior com `git restore`. Por exemplo, para apagar as alterações feitas no [.filename]#_index.adoc# e redefini-las para o formato sem modificação:

[source, shell]
....
% git restore _index.adoc
....

[[working-copy-making-diff]]
== Criando um Diff

Após finalizar as alterações em um arquivo ou grupo de arquivos, as diferenças entre a cópia de trabalho local e a versão no repositório do FreeBSD devem ser coletadas em um único arquivo para ser submetido. Estes arquivos diff são produzidos redirecionando a saída de `git diff` para um arquivo:

[source, shell]
....
% cd ~/doc
% git diff > doc-fix-spelling.diff
....

Dê ao arquivo um nome significativo que identifique o conteúdo. O exemplo acima é para correção ortográfica em toda a árvore de documentação.

Se o arquivo diff for enviado com a interface web "link:https://bugs.FreeBSD.org/bugzilla/enter_bug.cgi[Submit a FreeBSD problem report]", adicione uma extensão [.filename]#.txt# para que o formulário web identifique que o conteúdo do arquivo é texto plano.

Tenha cuidado: `git diff` inclui todas as alterações feitas no diretório atual e em quaisquer subdiretórios. Se houver arquivos na cópia de trabalho com edições que ainda não estão prontas para serem enviadas, forneça uma lista apenas dos arquivos a serem incluídos:

[source, shell]
....
% cd ~/doc
% git diff disks/_index.adoc printers/_index.adoc > disks-printers.diff
....

[[working-copy-git-references]]
== Referências Git

Estes exemplos demonstram um uso muito básico do Git. Mais detalhes estão disponíveis no https://git-scm.com/book/en/v2[Git Book] e na https://git-scm.com/doc[Documentação do Git].
