Skip to content
Snippets Groups Projects
Commit e417d6f1 authored by Eduardo E. R. Junior's avatar Eduardo E. R. Junior
Browse files

Inclui configuração correta das ferramentas gráficas em Windows

parent 11205a63
No related branches found
No related tags found
1 merge request!52Issue#63
...@@ -480,12 +480,20 @@ git difftool -t meld README.md ...@@ -480,12 +480,20 @@ git difftool -t meld README.md
Para utilização em sistemas Windows, programas externos ao Git devem Para utilização em sistemas Windows, programas externos ao Git devem
ser informados no arquivo de configuração (`.gitconfig`). Abaixo ser informados no arquivo de configuração (`.gitconfig`). Abaixo
configuramos, via linha de comando, este arquivo para usarmos o `meld` configuramos, via linha de comando, este arquivo para usarmos o `meld`
como ferramenta de comparação - `difftool`: como ferramenta de comparação - `difftool`, tanto para usuários Unix
como usuários Windows:
```{r, engine="bash", eval=FALSE} ```{r, engine="bash", eval=FALSE}
## Define globalmente o meld como ferramenta padrão de comparação ## Define localmente o meld como ferramenta padrão de diff
git config --global diff.tool meld ##-------------------------------------------
git config --global difftool.meld.cmd '"path/Meld.exe" $LOCAL $REMOTE' ## Unix.
git config diff.tool meld
##-------------------------------------------
### Windows.
git config diff.tool meld
git config difftool.meld.cmd '"path/Meld.exe" $LOCAL $REMOTE'
``` ```
\noindent \noindent
...@@ -509,13 +517,14 @@ git difftool README.md ...@@ -509,13 +517,14 @@ git difftool README.md
\label{fig:meld3} \label{fig:meld3}
\end{figure} \end{figure}
Na figura \ref{fig:meld3} temos a mesma informação trazida pelas Na figura \ref{fig:meld3} temos o _screenshot_ do programa após exectado
interfaces onde implementam o comando `git diff`, porém aqui o `difftool`. Nesta figura temos a mesma informação trazida pelas
podemos alterar os arquivos exibidos atráves das flechas nas bordas interfaces onde implementam o comando `git diff`, porém aqui podemos
(levando ou trazendo as contribuições) ou mesmo editando pela alterar os arquivos exibidos atráves das flechas nas bordas (levando ou
interface. Isso pode ser útil caso necessite desfazer parcialmente um trazendo as contribuições) ou mesmo editando pela interface. Isso pode
*commit*, ou seja, parte das alterações de uma versão anterior seria ser útil caso necessite desfazer parcialmente um *commit*, ou seja,
mantida e parte alterada. parte das alterações de uma versão anterior seria mantida e parte
alterada.
Contudo, a maior necessidade das ferramentas de comparação não está no Contudo, a maior necessidade das ferramentas de comparação não está no
seu uso como `difftools`, mas sim como `mergetools`. Já vimos no seu uso como `difftools`, mas sim como `mergetools`. Já vimos no
...@@ -655,7 +664,7 @@ conteúdo de cada arquivo em conflito com as porções conflitantes. ...@@ -655,7 +664,7 @@ conteúdo de cada arquivo em conflito com as porções conflitantes.
então simplesmente exluí-los ou ignorá-los após a mesclagem adicionando então simplesmente exluí-los ou ignorá-los após a mesclagem adicionando
arquivos com esta extensão no `.gitignore`. Outra forma de manter seu arquivos com esta extensão no `.gitignore`. Outra forma de manter seu
repositório sem os arquivos _backup_ é configurando sua `mergetool` para repositório sem os arquivos _backup_ é configurando sua `mergetool` para
não aramzená-los, ou seja, que a própria ferramenta os descarte quando a não armazená-los, ou seja, que a própria ferramenta os descarte quando a
mesclagem for bem sucedida. Isso pode ser configurado com: mesclagem for bem sucedida. Isso pode ser configurado com:
```{r, engine="bash", eval=FALSE} ```{r, engine="bash", eval=FALSE}
...@@ -664,24 +673,42 @@ git config --global mergetool.keepBackup false ...@@ -664,24 +673,42 @@ git config --global mergetool.keepBackup false
``` ```
Até agora utilizamos o programa `meld` definindo-o na chamada dos O procedimento de conflito simulado acima foi resolvido utilizando o
comandos `difftool` e `mergetool` com a opção `-t` (ou `--tool`). Mas programa `meld` com os comandos definidos para os sistemas baseados no
podemos também definir globalmente a ferramenta de `merge` kernel LINUX. Ainda a chamada do programa foi realizada através da opção
e `diff`. Para usuários de sistemas Unix, essa configuração pode ser a opção `-t` (ou `--tool`). Porém podemos definir o `meld` como
feita simplesmente com: ferramenta padrão para resolução de de `merge`, assim como foi feito para
a ferramenta de comparação (`difftool`). Abaixo configuramos o `meld`
também como `mergetool`, para sistemas Unix e Windows.
```{r, engine="bash", eval=FALSE} ```{r, engine="bash", eval=FALSE}
## Configura meld como ferramenta padrão de merge e diff
git config --global merge.tool meld ## Configura localmente meld como ferramenta padrão de merge
git config --global diff.tool meld ##-------------------------------------------
## Unix
git config merge.tool meld
##-------------------------------------------
## Windows
git config merge.tool meld
git config merge.meld.cmd '"path/Meld.exe" $LOCAL $BASE $REMOTE --output=$MERGED'
``` ```
Para Windows deve-se informar o caminho para o arquivo executável,
`path`, além de definir as três versões que serão exibidas `$LOCAL`,
`$BASE` e `$REMOTE` conforme vimos na figura \ref{fig:meld4} e ainda a
opção `--output=$MERGED` informa que o arquivo a ser editado será
sobrescrito sob a versão `$MERGED`, que é criada pelo automaticamente
Git quando há conflitos.
Alternativamente pode-se editar o arquivo `.gitconfig` com as mesmas Alternativamente pode-se editar o arquivo `.gitconfig` com as mesmas
informações passadas ao comando `git config --global`. Para verificar informações passadas ao comando `git config`. Para verificar como
como altera-se esse arquivo, abra-o após avaliar os altera-se esse arquivo, abra-o após avaliar os comandos descritos. Ainda
comandos descritos. Agora quando avaliados, os comandos `git mergetool` e se desjado que essas opções sejão válidas para todos os projetos Git de
`git difftool`, o programa `meld` será lançado automaticamente. seu computador a opção `--global` em `git config` pode ser
utilizada. Assim quando avaliados, os comandos `git mergetool` e `git
difftool`, o programa `meld` será lançado automaticamente.
Com isso, já temos nosso **Git** devidamente configurado para utilizar o Com isso, já temos nosso **Git** devidamente configurado para utilizar o
programada `meld` e já observamos sua relevância quando se trabalha com programada `meld` e já observamos sua relevância quando se trabalha com
...@@ -699,8 +726,8 @@ programas de `mergetool` e `difftoll` padrão são as mesmas. ...@@ -699,8 +726,8 @@ programas de `mergetool` e `difftoll` padrão são as mesmas.
É importante salientar que as ferramentas gráficas apresentadas neste É importante salientar que as ferramentas gráficas apresentadas neste
capítulo não substituem totalmente os comandos via terminal, mas seu uso capítulo não substituem totalmente os comandos via terminal, mas seu uso
em conjunto facilita o fluxo de trabalho adotado em um projeto sob em conjunto com estes facilitam o fluxo de trabalho adotado em um
versionamento. projeto sob versionamento.
<!-- Exclui o repositório criado para exemplicação --> <!-- Exclui o repositório criado para exemplicação -->
```{r, engine = "bash", include = FALSE, eval = FALSE} ```{r, engine = "bash", include = FALSE, eval = FALSE}
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment