From ce45399da135af495e437115c72f889da6f1540a Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Mon, 23 Jun 2014 10:24:49 -0300 Subject: [PATCH] gitsvn to reveal --- {git-gitsvn => _images}/clone.png | Bin {git-gitsvn => _images}/clone2.png | Bin _images/gitadd.png | Bin 0 -> 45903 bytes {git-gitsvn => _images}/rebase.png | Bin {git-gitsvn => _images}/rebase2.png | Bin git-gitsvn/clone.dia | Bin 1437 -> 0 bytes git-gitsvn/git-gitsvn.pin | 218 ------------------ gitsvn.html | 338 ++++++++++++++++++++++++++++ index.html | 6 + 9 files changed, 344 insertions(+), 218 deletions(-) rename {git-gitsvn => _images}/clone.png (100%) rename {git-gitsvn => _images}/clone2.png (100%) create mode 100644 _images/gitadd.png rename {git-gitsvn => _images}/rebase.png (100%) rename {git-gitsvn => _images}/rebase2.png (100%) delete mode 100644 git-gitsvn/clone.dia delete mode 100644 git-gitsvn/git-gitsvn.pin create mode 100644 gitsvn.html diff --git a/git-gitsvn/clone.png b/_images/clone.png similarity index 100% rename from git-gitsvn/clone.png rename to _images/clone.png diff --git a/git-gitsvn/clone2.png b/_images/clone2.png similarity index 100% rename from git-gitsvn/clone2.png rename to _images/clone2.png diff --git a/_images/gitadd.png b/_images/gitadd.png new file mode 100644 index 0000000000000000000000000000000000000000..308c1e0508a5ee874a6699ba7e92378e544e9942 GIT binary patch literal 45903 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 + GIT-SVN - ---- - -GIT Básico - ---- - -O "index" - -O conceito do "index" é o que mais diferencia o GIT do SVN. - -"index" são as alterações que serão mandadas, não os arquivos. - ---- - -git add file.py - Coloca as alterações do arquivo no "index". - -(Se o arquivo nunca esteve no "index", vai o arquivo inteiro). - ---- - -git commit - Guarda as alterações como uma revisão. - -("git commit -a" adiciona TODAS alterações no "index" e gera um commit.) - -git push - Envia as alterações para um servidor (normalmente, primeira -execução é git push origin master, onde origin é um alias -para o servidor). - ---- - -Até aqui, SVN parece mais simples porque para mandar pro servidor é -um passo só (svn commit) vs 3 do GIT (git add, git commit, -git push). - ---- - -git add -p file.py - -* Adição parcial de conteúdo no index. - -Para aqueles momentos de "fiz duas alterações, de dois issues diferentes". - ---- [left] [shading-opacity=1.0] -@@ -485,7 +485,7 @@ class GerenciadorForm(TestCase): - """ - - curso = EntidadeCursoCurriculoGraduacao.objects.get(pk=1001) -- ano_periodo = AnoPeriodoGraduacao.objects.get(pk=1) -+ ano_periodo = AnoPeriodoGraduacao.objects.get(pk=1001) - - # Populando o field com None. - dados = {'pessoa_fisica': u'5', -Stage this hunk [y,n,q,a,d,/,e,?]? - -(Ainda útil para aquela última verificada antes de comitar.) - ---- - -git stash - -* "Guarda" tudo que não foi commitado em separado. -* git stash pop reaplica as alterações guardadas. - ---- - -git log - -Igual ao svn log, mas não precisa de less. - -git log --raw: Mostra inclusive os arquivos alterados. - -git log -u: Mostra inclusive o que foi alterado. - ---- - -git bisect - -Tenta descobrir qual commit introduziu um bug. - -* Mostra as alterações em um ponto da história dos logs. -* "O bug está aqui?" - * Se sim, retorna revisões. - * Se não, avança. - -(Percorre as revisões como se fosse uma árvore binária.) - ---- [../_images/grinch-smile.jpg] - -Podem ser feitos vários commits sem que sejam enviados ao servidor. - -"Meu branch pode estar quebrado totalmente e ninguém vai ver!" - ---- - -Parênteses - -As ferramentas de code review para GIT são muito melhores que -as dos outros SCVs. - ---- [../_images/boycrying.jpg] - -Mas eu uso SVN! - ---- [../_images/baby-smile.jpg] - -GIT-SVN to the rescue! - ---- - -GIT-SVN cria e mantém um repositório GIT usando um servidor SVN. - -Alguns comandos mudam. - ---- - -git add continua igual (ainda com -p) - -git commit continua igual. - -Pelo menos isso... - ---- - -Criar o repositório GIT a partir do SVN: - -git svn clone http://blahblahblah.com/blah/blah/branch/blah - ---- - -git svn clone https://ucsvirtual.ucs.br/sesi/svn/yoshi/branches/12266 - - A yoshi/google/alias/tests.py - A yoshi/google/alias/models.py - A yoshi/google/alias/urls.py - A yoshi/google/alias/forms.py - A yoshi/urls.py - A requirement.txt -W: +empty_dir: yoshi/autenticacao/esqueceu_senha/fixtures -W: +empty_dir: yoshi/autenticacao/login/templates/busca -W: +empty_dir: yoshi/core/busca/templates -W: +empty_dir: yoshi/core/geral/templates/search -W: +empty_dir: yoshi/templates/agenda/busca -r4531 = b3667a084e7d69080e0f1c7235b94dab9cb5a326 (refs/remotes/git-svn) - A yoshi/financeiro/cadastro_beneficio/__init__.py - A yoshi/financeiro/cadastro_beneficio/models.py - A yoshi/financeiro/__init__.py -r4532 = 65ce3a96d11c13d0be24836af3a276561885118c (refs/remotes/git-svn) - M yoshi/settings.py - M yoshi/modulos.py - - ---- - -Pro-tip: Isso clona o repositório e todos os commits. - -Portanto, não se alarme. - ---- - -git svn rebase = svn up - -Na verdade, irá recuperar tudo que foi feito desde a última revisão -e aplicar os commits locais, nessa ordem. - ---- [top] [clone2.png] - -Visão a partir do clone: - ---- [top] [rebase2.png] - -Visão depois do rebase: - ---- - -git svn dcommit = svn commit - -Faz o "upload" dos commits locais para o servidor. - ---- - -Ok, qual a vantagem no final? - ---- - -* Commits mais granulares. -* Branches locais. - * GIT Flow para um fluxo de trabalho conveniente. -* git stash -* Commit mesmo quando a rede está fora. -* Compatível com qualquer versão do SVN. - ---- [../_images/tumblr_m3hn8kf49c1ropetlo1_400.jpg] - -Novo workflow: - -1. Alterar código. -2. git add alteração. -3. git svn rebase para verificar alterações upstream. -4. git commit. -5. Não satisfeito? Goto 1. -6. Tudo Ok? git svn dcommit - ---- [../_images/thats-all-folks.jpg] - diff --git a/gitsvn.html b/gitsvn.html new file mode 100644 index 0000000..246de42 --- /dev/null +++ b/gitsvn.html @@ -0,0 +1,338 @@ + + + + + + + GIT + GIT-SVN + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+

GIT + GIT-SVN

+
+ +
+

GIT Básico

+
+ +
+

O "index"

+ +

O conceito do "index" é o que mais diferencia o GIT do SVN (e outros SCVs).

+ +

"index" contém as alterações que gerarão uma revisão, não os arquivos. Isso só é + estranho por causa do comando para adicionar alterações no index.

+
+ +
+

git add file.py: Adiciona as alterações do arquivo no "index".

+ +

(Se o arquivo nunca teve uma revisão, o conteúdo inteiro do arquivo é adicionado.)

+
+ +
+

git commit: Transforma o index em uma revisão e guarda no repositório local.

+ +

(git commit -a gera um index com todas as alterações e gera uma revisão).

+ +

git push: Envia as revisões locais e envia para um servidor SSH/HTTPS/GIT.

+
+ +
+

Até aqui, SVN parece melhor por ser mais simples: mandar alterações para o servidor é feito + num único passo (svn commit) enquanto o GIT requer 3 (git add, + git commit, git push).

+
+ +
+

Onde o GIT se sobresai

+
+ +
+

git add -p file.py

+ +

Permite selecionar quais alterações irão para o index.

+ +

(Excelente para aqueles momentos de "fiz duas alterações de dois issues diferentes.")

+
+ +
+

+@@ -485,7 +485,7 @@ class GerenciadorForm(TestCase):
+         """
+ 
+         curso = EntidadeCursoCurriculoGraduacao.objects.get(pk=1001)
+-        ano_periodo = AnoPeriodoGraduacao.objects.get(pk=1)
++        ano_periodo = AnoPeriodoGraduacao.objects.get(pk=1001)
+ 
+         # Populando o field com None.
+         dados = {'pessoa_fisica': u'5',
+Stage this hunk [y,n,q,a,d,/,e,?]?
+					
+ +

E ainda é útil para aquela última revisada antes de gerar uma revisão.

+
+ +
+

Cores!

+ + +
+ +
+

git stash

+ +
    +
  • Guarda as alterações que não estão no index e deixa separado.
  • +
  • git stash pop reaplica as alterações.
  • +
  • Vários "stashes" podem existir ao mesmo tempo (e podem ser aplicados em qualquer ordem).
  • +
+
+ +
+

git log

+ +
    +
  • Igual ao svn log, mas não precisa de less (e nada de "broken pipe" ao fechar o log).
  • +
  • Cores!
  • +
  • git log --raw: mostra os arquivos alterados dentro da revisão.
  • +
  • git log -u: mostra as alterações dentra da revisão.
  • +
+
+ +
+

git commit --amend

+ +

Permite alterar um commit depois de feito.

+
+ +
+

git bisect

+ +

Percorre os commits em forma de árvore binária, para procura de "onde esse bug foi introduzido?"

+ +
    +
  • Mostra as alterações em um ponto do histórico de revisões.
  • +
  • "O bug está aqui?" +
      +
    • Se sim, volta metade das revisões entre a revisão inicial e a atual.
    • +
    • Se não, avança metade das revisões entre a revisão final e a atual.
    • +
    +
  • +
+
+ +
+

Repositório local

+ +

Como o repositório é local, vários commits podem ser feitos sem serem enviados ao servidor.

+ +
+ + +

"Meu branch tá todo quebrado, mas ninguém vai ver isso!"

+
+
+ +
+

Parênteses

+ +

As ferrametnas de code review para GIT são geralmetne melhores de serem usadas de que + as de outros SCVs.

+
+ +
+

Bem legal, mas...

+ +

Mas eu uso SVN!

+ + +
+ +
+

GIT-SVN to the rescue!

+ + +
+ +
+

GIT-SVN é uma módulo do GIT que cria e mantém um repositório local GIT usando um servidor SVN.

+ +

Alguns comandos mudam.

+ +

(... pelo menos aqueles ligados ao acesso do servidor.)

+
+ +
+
    +
  • git add continua igual (-p também continua).
  • +
  • git commit continua igual.
  • +
  • ... na verdade, todos os comandos mostrados anteriormente não mudam.
  • +
+
+ +
+

Criar o repositório GIT a partir do SVN:

+ +


+					git svn clone http://blahblahblah.com/blah/blah/branch/blah
+					

+
+ +
+


+	A	yoshi/google/alias/forms.py
+	A	yoshi/urls.py
+	A	requirement.txt
+W: +empty_dir: yoshi/autenticacao/esqueceu_senha/fixtures
+W: +empty_dir: yoshi/autenticacao/login/templates/busca
+W: +empty_dir: yoshi/core/busca/templates
+W: +empty_dir: yoshi/core/geral/templates/search
+W: +empty_dir: yoshi/templates/agenda/busca
+r4531 = b3667a084e7d69080e0f1c7235b94dab9cb5a326 (refs/remotes/git-svn)
+	A	yoshi/financeiro/cadastro_beneficio/__init__.py
+	A	yoshi/financeiro/cadastro_beneficio/models.py
+	A	yoshi/financeiro/__init__.py
+r4532 = 65ce3a96d11c13d0be24836af3a276561885118c (refs/remotes/git-svn)
+	M	yoshi/settings.py
+	M	yoshi/modulos.py
+					

+ +

É clonado o repositório e todos os commits.

+

Portanto, não se assuste.

+
+ +
+

Baixar as alterações do servidor SVN:

+ +


+					git svn rebase
+					

+ +

Na verdade, busca commits existentes no servidor que não estejam + no repositório local e aplica antes dos commits locais.

+
+ +
+

Árvore de revisões antes do rebase:

+ + +
+ +
+

Árvore de revisões depois do rebase:

+ + +
+ +
+

Subir alterações para o servidor SVN:

+ +


+					git svn dcommit
+					

+
+ +
+

Qual a vantagem de usar GIT ao invés de SVN, então?

+
+ +
+
    +
  • Commits mais granulares.
  • +
  • Branches locais.
  • +
  • Commits mesmo quando a rede está fora.
  • +
  • Compatível com qualquer versão do SVN.
  • +
+
+ +
+

Novo workflow

+ +
    +
  1. Alterar código.
  2. +
  3. git add alterações.
  4. +
  5. git svn rebase para verificar se há alterações upstream.
  6. +
  7. git commit.
  8. +
  9. Não satisfeito? GOTO 1.
  10. +
  11. Tudo Ok? git svn dcommit.
  12. +
+
+ +
+
+
+
+
+ + + + + + + + diff --git a/index.html b/index.html index 9476dde..cf14833 100644 --- a/index.html +++ b/index.html @@ -44,10 +44,16 @@ ul.inline-list li {
PyPoa +
  • ReST
  • + +
  • +
    + GIT-SVN +