Интерактивное сравнение в git-е           Максим Вуец             Black Perl              2011
Обычное сравнение
Обычное сравнение       ↓   Unified diff format
--- a/lib/Mojo/Cookie.pm+++ b/lib/Mojo/Cookie.pm@@ -21,7 +20,15 @@    s*  /x;  my $SEPARATOR_RE = qr/^s*;s*/;-my $VALUE_RE...
--- a/lib/Mojo/IOLoop.pm+++ b/lib/Mojo/IOLoop.pm@@ -452,75 +477,26 @@     delete $self->{_listening}; }-sub _accepting {+s...
Недостатки unidiff-а    Сложно читать сложные изменения
Недостатки unidiff-а    Сложно читать сложные изменения    Нет возможности сразу вносить правки
Недостатки unidiff-а    Сложно читать сложные изменения    Нет возможности сразу вносить правки    Далеко не все понимают е...
Интерактивное сравнение
Интерактивное сравнение           ↓      Плечом к плечу
Редактирование здесь и сейчас           ↑Интерактивное сравнение           ↓        Плечом к плечу
Mercurial            extdiff
Mercurial~/.hgrc   [extensions]       hgext.extdiff =   [extdiff]       cmd.idiff = winmerge       opts.idiff = -r
Mercurial  $ hg idiff
git      git-difftool
git~/.gitconfig    [diff]        tool = winmerge    [difftool "winmerge"]        cmd = "winmerge -r "$LOCAL" "$REMOTE""
git  $ git difftool
git  $GIT_EXTERNAL_DIFF
git  $GIT_EXTERNAL_DIFF path       old-file old-hex old-mode       new-file new-hex new-mode
git      git-idiff
git  mojo$ git-idiff 7b0d94^!
WinMerge
WinMerge
Beyond Compare
Beyond Compare
Araxis Merge
Araxis Merge
gvim + DirDiff
https://gist.github.com/228869
Спасибо!--- a/blackperl2011/interactive-git-diff.talk+++ b/blackperl2011/interactive-git-diff.talk@@ -1,1 +1,1 @@-$self->t...
Interactive git-diff
Interactive git-diff
Interactive git-diff
Interactive git-diff
Upcoming SlideShare
Loading in …5
×

Interactive git-diff

1,218 views
1,127 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,218
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Interactive git-diff

  1. 1. Интерактивное сравнение в git-е Максим Вуец Black Perl 2011
  2. 2. Обычное сравнение
  3. 3. Обычное сравнение ↓ Unified diff format
  4. 4. --- a/lib/Mojo/Cookie.pm+++ b/lib/Mojo/Cookie.pm@@ -21,7 +20,15 @@ s* /x; my $SEPARATOR_RE = qr/^s*;s*/;-my $VALUE_RE = qr/^([^;,]+)s*/;+my $VALUE_RE = qr/+ ^+ (+ "(?:|[^"])+" # Quoted+ |+ [^;,]+ # Unquoted+ )+ s*+/x; # "My Homer is not a communist. # He may be a liar, a pig, an idiot, a communist,
  5. 5. --- a/lib/Mojo/IOLoop.pm+++ b/lib/Mojo/IOLoop.pm@@ -452,75 +477,26 @@ delete $self->{_listening}; }-sub _accepting {+sub _activity { my ($self, $id) = @_; # Connection- my $c = $self->{_cs}->{$id};-[...]-- # Add socket to poll- $self->not_writing($id);-}+ return unless my $c = $self->{_cs}->{$id};-sub _active {- my ($self, $id) = @_;- return $self->{_cs}->{$id}->{active} = time;+ # Activity+ return $c->{active} = time; }
  6. 6. Недостатки unidiff-а Сложно читать сложные изменения
  7. 7. Недостатки unidiff-а Сложно читать сложные изменения Нет возможности сразу вносить правки
  8. 8. Недостатки unidiff-а Сложно читать сложные изменения Нет возможности сразу вносить правки Далеко не все понимают его в принципе
  9. 9. Интерактивное сравнение
  10. 10. Интерактивное сравнение ↓ Плечом к плечу
  11. 11. Редактирование здесь и сейчас ↑Интерактивное сравнение ↓ Плечом к плечу
  12. 12. Mercurial extdiff
  13. 13. Mercurial~/.hgrc [extensions] hgext.extdiff = [extdiff] cmd.idiff = winmerge opts.idiff = -r
  14. 14. Mercurial $ hg idiff
  15. 15. git git-difftool
  16. 16. git~/.gitconfig [diff] tool = winmerge [difftool "winmerge"] cmd = "winmerge -r "$LOCAL" "$REMOTE""
  17. 17. git $ git difftool
  18. 18. git $GIT_EXTERNAL_DIFF
  19. 19. git $GIT_EXTERNAL_DIFF path old-file old-hex old-mode new-file new-hex new-mode
  20. 20. git git-idiff
  21. 21. git mojo$ git-idiff 7b0d94^!
  22. 22. WinMerge
  23. 23. WinMerge
  24. 24. Beyond Compare
  25. 25. Beyond Compare
  26. 26. Araxis Merge
  27. 27. Araxis Merge
  28. 28. gvim + DirDiff
  29. 29. https://gist.github.com/228869
  30. 30. Спасибо!--- a/blackperl2011/interactive-git-diff.talk+++ b/blackperl2011/interactive-git-diff.talk@@ -1,1 +1,1 @@-$self->talk();+$self->shut_up(); 2011 Максим Вуец <http://maxim.vuets.name/> На условиях http://creativecommons.org/licenses/by-sa/3.0/

×