Slide 1

Slide 1 text

(JUPO8FC"QQ JEIBLPCF XJUI1FSM

Slide 2

Slide 2 text

ࣗݾ঺հ ⿣ ͸͜΂ JEIBLPCF!IBLPCF גࣜձࣾ͸ͯͳΤϯδχΞ IUUQIBLPCFIBUFOBCMPHDPN Ξχϝ࠷଎࣮گΫϥελ wΞχϝؔ܎͋Δͷ͸͜͜·Ͱ

Slide 3

Slide 3 text

(JUPO8FC"QQ XJUI1FSM

Slide 4

Slide 4 text

HJU

Slide 5

Slide 5 text

(JUPO8FC"QQ ⿣ (JUϦϙδτϦϒϥ΢β HJUIVC HJUXFC DHJU (JU-BC (JUB-JTU (JUPSJDJPVT

Slide 6

Slide 6 text

(JUϒϥ΢βJO)BUFOB ⿣ ࣾ಺޲͚(JUϦϙδτϦϒϥ΢β DPNNJUEJ⒎Λ63-ͰࢦఆͰ͖ΔͷͰ ίʔυϨϏϡʔਐߦ֬ೝʹॏๅ ⿣ ໰୊ 3VCZͰॻ͔ΕͯΔ࠷ۙ͸ϝϯς͕ ίʔυʹؔ͢Δ৘ใίϛϡχέʔ γϣϯͱίʔυ͕෼ࢄ͕ͪ͠

Slide 7

Slide 7 text

)BUFOB$PEF'SJEHF ⿣ ࣾ಺޲͚(JUϦϙδτϦϒϥ΢β 1FSMͰ͔͔ΕͯΔʂϝϯςͰ͖Δ ϥϑʹίϛϡχέʔγϣϯͰ͖ͨΓ ߹॓Ͱ੎͍Ͱ࡞ͬͨ

Slide 8

Slide 8 text

(JUXJUI1FSM

Slide 9

Slide 9 text

ϓϩάϥϜ͔Βͷ(JU ⿣ MJCHJU IUUQMJCHJUHJUIVCDPN $Ͱॻ͔Εͨ(JUૢ࡞ϥΠϒϥϦ lBWBJMBCMFBTCJOEJOHTGPSBMM NBKPSTDSJQUJOHMBOHVBHFTz 3VCZ0CKFDUJWF$1ZUIPO/FU1)1 -VB%FMQIJOPEFKTHP&SMBOHQBSSPU

Slide 10

Slide 10 text

1FSM͔Βͷ(JU ⿣ HJUίϚϯυͷXSBQQFS ಺෦ͰHJUίϚϯυΛ࣮ߦ͢Δʂ wεέʔϧͤ͞Δͷ͸೉͍͠ wͱ͸͍͑ɺ͍͍ͩͨͳΜͰ΋Ͱ͖Δ ͜Ε·Ͱͷࣾ಺(JUϦϙδτϦ ϒϥ΢β͸਺೥շదʹ࢖͑ͯΔ

Slide 11

Slide 11 text

1FSM͔Βͷ(JU ❖Git.pm HJUʹ෇ଐͯ͠Δ $1"/Ϟδϡʔϧ͡Όͳ͍ ❖Git::Class/Git::Wrapper JOUFSBDUJWFͳίϚϯυ͕࢖͑ͳ͍ ❖Git::Repository "1*͕γϯϓϧͰׂΓ੾ͬͯΔ JOUFSBDUJWFͳίϚϯυ͕࢖͑Δ TFFIUUQTFBSDIDQBOPSHdCPPL(JU3FQPTJUPSZMJC(JU 3FQPTJUPSZQN05)&3@1&3-@(*5@83"11&34

Slide 12

Slide 12 text

(JU3FQPTJUPSZ 1 use Git::Repository; 2 3 # ϦϙδτϦͷࢦఆ 4 my $git; 5 $git = Git::Repository->new( 6 git_dif => '/path/to/.git' ); 7 $git = Git::Repository->new( 8 work_tree => '/path/to/working_copy' ); 9 18

Slide 13

Slide 13 text

(JU3FQPTJUPSZ 10 # ίϚϯυͷ࣮ߦ 11 my $status = $git->run('status'); 12 my @diff = $git->run('diff', 'HEAD^...HEAD'); 13 14 # ίϚϯυͷ࣮ߦ࣌ʹೖग़ྗΛ੍ޚ 15 my $cmd = $git->command('add', '-p', '-u'); 16 $cmd->stdout; 17 $cmd->stdin; 18

Slide 14

Slide 14 text

(JU3FQPTJUPSZ ⿣ ϦϙδτϦͷ৔ॴΛࢦఆ͢Δͱ HJUίϚϯυ͕࣮ߦͰ͖Δ SVODPNNBOE ⿣ ࣮ߦ݁Ռ͸ࣗ෼Ͱॲཧ͢Δ ݁ՌΛؾ߹Ͱύʔε wSBXϞʔυͱ͔Λ׆༻

Slide 15

Slide 15 text

CSBODIS 1 use Git::Repository; 2 3 my $git; 4 $git = Git::Repository->new( 5 git_dif => '/path/to/.git' ); 6 7 my @branches = 8 map { $_ =~ s/\s+//g; $_ } 9 $self->git->run('branch', '-r'); 10 origin/fix_bug origin/workerenchance origin/xpath_entryimage

Slide 16

Slide 16 text

EJ⒎ ύʔε͸ུ 1 diff --git a/lib/Guita/Mapper/Git.pm b/lib/Guita/Mapper/Git.pm 2 index 9ee4a36..5dd6ed5 100644 3 --- a/lib/Guita/Mapper/Git.pm 4 +++ b/lib/Guita/Mapper/Git.pm 5 @@ -226,4 +226,9 @@ sub ls_tree { 6 return $results; 7 } 8 9 +sub config { 10 + my $self = shift; 11 + $self->git->run('config', @_); 12 +} 13 + 14 1; 15 diff --git a/lib/Guita/Pick.pm b/lib/Guita/Pick.pm 16 index 4c37820..29f75cb 100644 17 --- a/lib/Guita/Pick.pm 18 +++ b/lib/Guita/Pick.pm 19 @@ -37,10 +37,14 @@ sub create { 20 Guita::Git->run(init => $work_tree->stringify);

Slide 17

Slide 17 text

࣮ߦ݁Ռͷॲཧ ⿣ (JU3FQPTJUPSZ1MVHJOΛ࢖͏ HJUMPHͷΑ͏ͳϝιου͕௥Ճ ͦΜͳʹ੝Γ্͕ͬͯͳ͍ wMPHCMBNFͷΈ ⿣ ඞཁʹԠͯࣗ͡෼Ͱॻ͘ ݁Ռͷѻ͍͸ΞϓϦέʔγϣϯґଘ

Slide 18

Slide 18 text

ࢀߟ ⿣ SVCZHJU IUUQTHJUIVCDPNTDIBDPOSVCZ HJU 3VCZͷHJUίϚϯυXSBQQFSܥͷ Ϟδϡʔϧ

Slide 19

Slide 19 text

(VJUB ❖Guita::Mapper::Git - add/commit/tree/blob/logs/diff/ rev_parse/branch/cat_file/ls_tree (JU0CKFDUʹରԠ͢ΔΦϒδΣΫτ wCMPCUSFFDPNNJU IUUQTHJUIVCDPNIBLPCF(VJUB

Slide 20

Slide 20 text

(VJUB ⿣ HJTUDMPOF ࣾ಺޲͚HJTU΄͍͠͠࡞ͬͨ ̋1FSMͰॻ͔ΕͯΔ ✕MJCHJU࢖ͬͯͳ͍ ࢖͍͍ͨͻͱ͓͓͔ͬͨΒؤுΓ͍ͨ σϞ IUUQTHJUIVCDPNIBLPCF(VJUB

Slide 21

Slide 21 text

·ͱΊ ⿣ (JUΛϓϩάϥϜ͔Βૢ࡞͍ͨ͠ ࣾ಺(JUϦϙδτϦ࡞Δͱ͔ ⿣ MJCHJU͸1FSMͰ͸࢖͑ͳ͍ ⿣ (JUܥϞδϡʔϧ͸(JU3FQPTJUPSZ ͓͢͢Ί ⿣ (VJUB HJTUDMPOF ·ͣ͸ࣾ಺ͱ͔Ͱ࢖ͬͯΈΔ