From 9830ab3d2572abec3cee46015aaf4e618132da5b Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Wed, 29 Jan 2020 02:00:04 +0100 Subject: [PATCH] blame: add option to ignore whitespace changes --- include/git2/blame.h | 2 ++ src/blame_git.c | 9 ++++++--- tests/blame/simple.c | 18 ++++++++++++++++++ .../1d/81379086fd6d91ee027e883cf6f4703a107dfb | Bin 0 -> 133 bytes .../34/73c3e21e76492d09b80b7c75569edc275dffcf | Bin 0 -> 66 bytes .../40/fcae7fb84378fdb037dc6a3ccbb33669c3f26d | Bin 0 -> 63 bytes .../46/ef45f4ae55c1f5dca64b9e1d7ca77c1798069b | Bin 0 -> 132 bytes .../4b/0ca755f5bfd69ed6074f268b05bb0542a42c68 | Bin 0 -> 853 bytes .../4d/8400b7ce2d15ef5045c2775ed33e82a326786e | Bin 0 -> 160 bytes .../6b/52ee554131a5e7bacd15553fbd22408c5a8a6f | Bin 0 -> 62 bytes .../70/2c7aa5250abc42be69ef78ee8fa47a346cb2ce | Bin 0 -> 828 bytes .../77/c796837eb003c81d2cd8a6577ef4e7edc61222 | Bin 0 -> 74 bytes .../7e/135d94af53b6c5edbae6a77df8a0f09375e823 | Bin 0 -> 74 bytes .../92/5bddd7a536a66eecb32faa41abd5bc9c192311 | Bin 0 -> 72 bytes .../a3/4ead35680be7b9704fc4c6d750d182e228e02b | Bin 0 -> 160 bytes .../a4/641ad869ffad601aa8347e0770e949bb6d90df | Bin 0 -> 161 bytes .../ba/9089263dce882885ad84513f31495bf9d31132 | Bin 0 -> 132 bytes .../c3/8d3c99946b74173f9b037279f07d505195563f | Bin 0 -> 849 bytes .../c4/c13c153a611418325c70d6e630fed373546c4d | Bin 0 -> 824 bytes .../d2/bc4f27cbb72260eeec350087d81a60a122efe9 | Bin 0 -> 60 bytes .../d3/c7316f0075debfe53b25e58f56b0a4b46e18c3 | 4 ++++ .../d6/7268771ef5244f4aa224df29d4e4ae0bed2fd8 | Bin 0 -> 73 bytes .../d6/afeea2c4657c743dedab24a8a62da96f63547d | Bin 0 -> 161 bytes .../d9/3e87a0863c7ec5e772f99e72ca9efddf0ca718 | Bin 0 -> 825 bytes .../f0/5190494260c2f6b6d045ac9bf27cb6d7e0abcc | Bin 0 -> 133 bytes .../f4/f4b926582a2c23c6e3ba05309eaa89244c1d68 | Bin 0 -> 839 bytes .../fa/01940156471352d5483b4f26b7c849dfaa7eef | Bin 0 -> 826 bytes .../resources/blametest.git/refs/heads/master | 2 +- 28 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 tests/resources/blametest.git/objects/1d/81379086fd6d91ee027e883cf6f4703a107dfb create mode 100644 tests/resources/blametest.git/objects/34/73c3e21e76492d09b80b7c75569edc275dffcf create mode 100644 tests/resources/blametest.git/objects/40/fcae7fb84378fdb037dc6a3ccbb33669c3f26d create mode 100644 tests/resources/blametest.git/objects/46/ef45f4ae55c1f5dca64b9e1d7ca77c1798069b create mode 100644 tests/resources/blametest.git/objects/4b/0ca755f5bfd69ed6074f268b05bb0542a42c68 create mode 100644 tests/resources/blametest.git/objects/4d/8400b7ce2d15ef5045c2775ed33e82a326786e create mode 100644 tests/resources/blametest.git/objects/6b/52ee554131a5e7bacd15553fbd22408c5a8a6f create mode 100644 tests/resources/blametest.git/objects/70/2c7aa5250abc42be69ef78ee8fa47a346cb2ce create mode 100644 tests/resources/blametest.git/objects/77/c796837eb003c81d2cd8a6577ef4e7edc61222 create mode 100644 tests/resources/blametest.git/objects/7e/135d94af53b6c5edbae6a77df8a0f09375e823 create mode 100644 tests/resources/blametest.git/objects/92/5bddd7a536a66eecb32faa41abd5bc9c192311 create mode 100644 tests/resources/blametest.git/objects/a3/4ead35680be7b9704fc4c6d750d182e228e02b create mode 100644 tests/resources/blametest.git/objects/a4/641ad869ffad601aa8347e0770e949bb6d90df create mode 100644 tests/resources/blametest.git/objects/ba/9089263dce882885ad84513f31495bf9d31132 create mode 100644 tests/resources/blametest.git/objects/c3/8d3c99946b74173f9b037279f07d505195563f create mode 100644 tests/resources/blametest.git/objects/c4/c13c153a611418325c70d6e630fed373546c4d create mode 100644 tests/resources/blametest.git/objects/d2/bc4f27cbb72260eeec350087d81a60a122efe9 create mode 100644 tests/resources/blametest.git/objects/d3/c7316f0075debfe53b25e58f56b0a4b46e18c3 create mode 100644 tests/resources/blametest.git/objects/d6/7268771ef5244f4aa224df29d4e4ae0bed2fd8 create mode 100644 tests/resources/blametest.git/objects/d6/afeea2c4657c743dedab24a8a62da96f63547d create mode 100644 tests/resources/blametest.git/objects/d9/3e87a0863c7ec5e772f99e72ca9efddf0ca718 create mode 100644 tests/resources/blametest.git/objects/f0/5190494260c2f6b6d045ac9bf27cb6d7e0abcc create mode 100644 tests/resources/blametest.git/objects/f4/f4b926582a2c23c6e3ba05309eaa89244c1d68 create mode 100644 tests/resources/blametest.git/objects/fa/01940156471352d5483b4f26b7c849dfaa7eef diff --git a/include/git2/blame.h b/include/git2/blame.h index 73f6cf979..f42c81552 100644 --- a/include/git2/blame.h +++ b/include/git2/blame.h @@ -47,6 +47,8 @@ typedef enum { * to canonical real names and email addresses. The mailmap will be read * from the working directory, or HEAD in a bare repository. */ GIT_BLAME_USE_MAILMAP = (1<<5), + /** Ignore whitespace differences */ + GIT_BLAME_IGNORE_WHITESPACE = (1<<6), } git_blame_flag_t; /** diff --git a/src/blame_git.c b/src/blame_git.c index a9157c4ed..073137a68 100644 --- a/src/blame_git.c +++ b/src/blame_git.c @@ -365,11 +365,14 @@ static void trim_common_tail(mmfile_t *a, mmfile_t *b, long ctx) b->size -= trimmed - recovered; } -static int diff_hunks(mmfile_t file_a, mmfile_t file_b, void *cb_data) +static int diff_hunks(mmfile_t file_a, mmfile_t file_b, void *cb_data, git_blame_options *options) { - xpparam_t xpp = {0}; xdemitconf_t xecfg = {0}; xdemitcb_t ecb = {0}; + xpparam_t xpp = {0}; + + if (options->flags & GIT_BLAME_IGNORE_WHITESPACE) + xpp.flags |= XDF_IGNORE_WHITESPACE; xecfg.hunk_func = my_emit; ecb.priv = cb_data; @@ -409,7 +412,7 @@ static int pass_blame_to_parent( fill_origin_blob(parent, &file_p); fill_origin_blob(target, &file_o); - if (diff_hunks(file_p, file_o, &d) < 0) + if (diff_hunks(file_p, file_o, &d, &blame->options) < 0) return -1; /* The reset (i.e. anything after tlno) are the same as the parent */ diff --git a/tests/blame/simple.c b/tests/blame/simple.c index 16e7bc400..6b13cccd4 100644 --- a/tests/blame/simple.c +++ b/tests/blame/simple.c @@ -238,6 +238,24 @@ void test_blame_simple__can_restrict_lines_min(void) check_blame_hunk_index(g_repo, g_blame, 1, 11, 5, 0, "aa06ecca", "b.txt"); } +/* + * $ git blame -n c.txt + * orig line no final line no + * commit V author timestamp V + * 702c7aa5 1 (Carl Schwan 2020-01-29 01:52:31 +0100 4 + */ +void test_blame_simple__can_ignore_whitespace_change(void) +{ + git_blame_options opts = GIT_BLAME_OPTIONS_INIT; + + cl_git_pass(git_repository_open(&g_repo, cl_fixture("blametest.git"))); + + opts.flags |= GIT_BLAME_IGNORE_WHITESPACE; + cl_git_pass(git_blame_file(&g_blame, g_repo, "c.txt", &opts)); + cl_assert_equal_i(1, git_blame_get_hunk_count(g_blame)); + check_blame_hunk_index(g_repo, g_blame, 0, 1, 4, 0, "702c7aa5", "c.txt"); +} + /* * $ git blame -n b.txt -L ,6 * orig line no final line no diff --git a/tests/resources/blametest.git/objects/1d/81379086fd6d91ee027e883cf6f4703a107dfb b/tests/resources/blametest.git/objects/1d/81379086fd6d91ee027e883cf6f4703a107dfb new file mode 100644 index 0000000000000000000000000000000000000000..a35dd56ceb756d4a97d0f25905bc5e3e61bd2e8c GIT binary patch literal 133 zcmV;00DAv;0V^p=O;s>7Hf1n0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`M+QuN*HOU;($z1gh4%5nA8J#!?L n1)&NuO4C!pYVOT{96yuo;Y>dco1=5um9@V}R7L{;Km0gCYCl0M literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/34/73c3e21e76492d09b80b7c75569edc275dffcf b/tests/resources/blametest.git/objects/34/73c3e21e76492d09b80b7c75569edc275dffcf new file mode 100644 index 0000000000000000000000000000000000000000..887deff349ff1e7923fa704e2471b5c3d72fd335 GIT binary patch literal 66 zcmV-I0KNZs0ZYosPf{>7Wys7cQOHfq%+mld5{uH4brg~_5{neHfb6p9SOo7V93lX$xY16(*V*6iACwjIts}diA4%pKz3Pltb&39rzTf5 VS5az7X;Genp*2@67XT-f5x;2*8FBys literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/46/ef45f4ae55c1f5dca64b9e1d7ca77c1798069b b/tests/resources/blametest.git/objects/46/ef45f4ae55c1f5dca64b9e1d7ca77c1798069b new file mode 100644 index 0000000000000000000000000000000000000000..487ac57f13a3c551db1a42ff9f5108a5abcf7750 GIT binary patch literal 132 zcmV-~0DJ#<0V^p=O;s>7Hf1n0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`OST2V&1+*cKUuSF{NHLpBb$Ng6S m22?>tX?iMH&As`L<7cuxoax75b97F-vi28=%4h&1k2n6f=RgPm literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/4b/0ca755f5bfd69ed6074f268b05bb0542a42c68 b/tests/resources/blametest.git/objects/4b/0ca755f5bfd69ed6074f268b05bb0542a42c68 new file mode 100644 index 0000000000000000000000000000000000000000..698f5b1356546c6a8976d7b9cbadc96e22b3cd9f GIT binary patch literal 853 zcmV-b1FHOZ0d14X&YMaQh3}fD=)HAg+BB1tT%{Qe7>uzo{@Jw|%wT3Pn5T~u>F!dC zlFlcURCP)xYN{$90i*@-pRrF8fVd<@Y>G(2vJp(#I3gUniwTVRi12&_c~PJ_@lLg* zPwEjwj1V)CD2j-?^9b@xD&A>^-|=Ef^D#@aP-Iz-NhvaoS*)BNm7 z9XD0f^eyu(YO4PLWCeQ1iaSJu4Gn3U`q0mYW6}ee^iOb(vYFK2d-M@Mf4AWe_?Aq6 znSHd6A%B2>f0v}{h67yP1!qHd@WuDkKb!&-$WO*9VJyiQ$6Btc+Cdr1`xQCT?bKz+ zl6ogTDj6U0NW)JwL-B#-M|t|6Qy}D7C-*R(TB)8}7$DDD);xY^uJ_t>$PRze-OS4ka4<SIWUA(OEglHDLN73;j6%~DvG;Pag_jPG2x z3tnA)AZ6R`OEu0I&u~9Jh;F)u4E8pr7|GAhN|mEqEt%gHbgN94YUF3>aL>7N&*Qh| z7kB?uaAsn1s^v@PmIBakk1jgABfYTN5S!e6)5gXi-F8#iXTClbaA!RqjF)Q4;v|}* zvVP;f-o}kRluN-<;2przGuh1hxq$k%(xh~@yGBVIo~hv@TW9+y8#w)fmx9@G7z*7~ zUg=JHZHJNQPXBRoudLxAo)Y;Sq4{obb;jBB)NEnjUdsZfB7Y3x4$-k`W{w0O(e-vl z$cu@iKfi>G0+Wy3<7I7_iTJknvd?ySZmsFDBc&~nF?i2iBZ(^VBfH$C%DNYnrf!6x znw585B7p+Umr-4+qo%;yDHu%|22K};(;8kCx8=jiIs^zG2Am+A9jkCEwo@FtnqxJ~ zP}_`50kyWQRlZ%nlGmV1hUcE>(e^e-xb+*&o!@yP?$>E));zQ$Z=cS=7Ax2*pPOkQ za=4>_Xz8V-4bc^bTU>>3RMs|eYpeCmK+O5Tz}rVRrH5?|HwUltCsO{Pzz7H)Jq0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`M6JLp}gqv6u$yUvP++V53z=!xpe zhblrZ&oZhMMrk@k&As`L<7cuxoax75b97F- Ovi28=%4h(QoN^ literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/6b/52ee554131a5e7bacd15553fbd22408c5a8a6f b/tests/resources/blametest.git/objects/6b/52ee554131a5e7bacd15553fbd22408c5a8a6f new file mode 100644 index 0000000000000000000000000000000000000000..b53aa0484885b47dafb67f5240cae9a953065024 GIT binary patch literal 62 zcmV-E0Kxxw0ZYosPf{>7WXQ}bQOHfq%+mld5{uH4brg~_5{neHfb6p9SWT{KE(IVc UN-ZfZ%2P13=Bnia05hQx_foPNmjD0& literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/70/2c7aa5250abc42be69ef78ee8fa47a346cb2ce b/tests/resources/blametest.git/objects/70/2c7aa5250abc42be69ef78ee8fa47a346cb2ce new file mode 100644 index 0000000000000000000000000000000000000000..1f6f2da432f4c9ff5881ff5f0f557e99a19d5039 GIT binary patch literal 828 zcmV-C1H=4y0iBb}uB%26MKk6rdX92=KP=@&0fPZ!W3T}Ov!-dFF&GJM3T3{48@ZGPNmL5z z0S9~^fhx#3V%eOPQ7*GMXG@viU|vvQ!RL|+i=0O#QZNOlvF-=3g+mK2sQ$n^_yc_n zfBkB&Z}0<8e*#WYWmVx6Ndz>@vn++aPaN_8*{vSci&WtEU!|Lt;{o6D!NsvWEsW0Q zH>UsvNZ_oxrs-QvD|W;*cL!s<<+14LN${*iS0B9MWYkKgh&!#7<2UNHZFLL&UXaUS`p@ zSk8Gs2hIncjnoov7jm4>&o#Z!9Fz9ILUSn@WMHZR~V2&z0C^ z50PuvIgV;3xJASB;KG&^Tp7;6ye}`#8~b>X8h1Y5%+d`)TJ5YC1p+xtd?CN+I^vq` zmNo51bG1A1;|_OyV>Xk)XzH*g$DY32jtTb8g{O`qcW8;xe8`uQ0Sq?kHaTtFy>VU6 z3u_L0VoeMq#N4>$-fY;b$#wtsGjX3C@j+w0oLePHZ&{G2kCXz{6khvSpff%>9S3%S z#5@|kKjeYXl4Wfd@k!F;u~e|SjXk^dvyb#3Od5Fkj_c--0_?qa%bii_Tj}Fx1%B4t z(P-#TWPT3jxcbvWFmfB&`%0jzsyI3(&Kka0%8R`d)=8oO9-%3YL!5@Pu+80C@T7Cb z)9pLP+6Ngyq}2Lr)3~vd+afKZE{gk32qf4Xf;|+!beJ!$6&BH}4kOjd-}=IYLt{o# zy~@^6=!@r??5cDoHO;ZeZmip={-nUqd$+XIKbbK-5W5~=aQOHfq%+pW+u@Z~YlXVo5GZKpwv_PD)=vW0!u4*n$ gu%v>mf{C_*xiuGOQEEwPQJzAgHCHVc07_aFW7Rny7XSbN literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/7e/135d94af53b6c5edbae6a77df8a0f09375e823 b/tests/resources/blametest.git/objects/7e/135d94af53b6c5edbae6a77df8a0f09375e823 new file mode 100644 index 0000000000000000000000000000000000000000..b374ed1851ce57cd509d5560e56fdefdbf85bb78 GIT binary patch literal 74 zcmV-Q0JZ;k0ZYosPf{>9V93lXQOHfq%+mld5{uH4brg~_5{neHfb6p9SWT{KE(IU} g%PQC^m}o1QTZ2W4QcFsU@)Qykths8r0Heni47q|IW&i*H literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/92/5bddd7a536a66eecb32faa41abd5bc9c192311 b/tests/resources/blametest.git/objects/92/5bddd7a536a66eecb32faa41abd5bc9c192311 new file mode 100644 index 0000000000000000000000000000000000000000..aba34fa3c4fe6878c11cc3138ba495d1a4d55e9d GIT binary patch literal 72 zcmV-O0Jr~m0ZYosPf{>5X2{GdQOHfq%+mld5{uH4brg~_5{neHfb6p9SWT{KE>5tN ef~|sywt~4e7iUpwNoi4@LZUTSEf)YBOBDd2-5w7H)Jq0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`N{r1_~s*Jr4jjM8+7ntSsf$IoPYIMa{A=IESu OW$iB#mC*pV0Y&7H)Jq0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`N{;m^AI9nKYhH<;havN^rkEc5WE zT&RMy%$!uPnxAU^^?ME1RY`20EO%o{{)TnCxjsYHWR#{u)ZCl@IDRJE!{Q PD{Fs|sEh^xeSJtq>!eYE literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/ba/9089263dce882885ad84513f31495bf9d31132 b/tests/resources/blametest.git/objects/ba/9089263dce882885ad84513f31495bf9d31132 new file mode 100644 index 0000000000000000000000000000000000000000..4610c26494c2e655fed86e4c1b0504cd98a9e1f2 GIT binary patch literal 132 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 CAe9;b literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/d2/bc4f27cbb72260eeec350087d81a60a122efe9 b/tests/resources/blametest.git/objects/d2/bc4f27cbb72260eeec350087d81a60a122efe9 new file mode 100644 index 0000000000000000000000000000000000000000..b4d6c6d5fd3237efc07865be64a74dc5264c3e6c GIT binary patch literal 60 zcmV-C0K@-y0ZYosPf{?kV93lXQOHfq%+mld5{uH4brg~_5{neHfb6p9SWT{KF3zIV SlG36)1w(7DS}p(t(-DSTGaG&Y literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/d3/c7316f0075debfe53b25e58f56b0a4b46e18c3 b/tests/resources/blametest.git/objects/d3/c7316f0075debfe53b25e58f56b0a4b46e18c3 new file mode 100644 index 000000000..73f00ee33 --- /dev/null +++ b/tests/resources/blametest.git/objects/d3/c7316f0075debfe53b25e58f56b0a4b46e18c3 @@ -0,0 +1,4 @@ +xmΣHSݚb*Q`c7l wyH)?)RPF1]. @ YĕEEK WsKB\ @Hg9UP| !/p"!D$a +LeN3Ч ^O9RL[1]P +P`@>sR@EF ?oZmͽk߿J֌ \ΰ0ߜ[$YR4M߫9?{.)ui>$9{s +XwOi&E4MF`eRN΃9*=O&]t6{aR~piSNÒ :@u*B֍89^r)ܴV + :lM1`|\kKJh HpHzs%Rv94v_MA(E+QfQsgAJ6F/xc+ߟհqiK苬_'ьGUeQy?!k{+0ƒ}7|c^Cż/FקX( 29z\6M`ԣbϏsݙF1Ӑcޢt?y2CIe osI \ No newline at end of file diff --git a/tests/resources/blametest.git/objects/d6/7268771ef5244f4aa224df29d4e4ae0bed2fd8 b/tests/resources/blametest.git/objects/d6/7268771ef5244f4aa224df29d4e4ae0bed2fd8 new file mode 100644 index 0000000000000000000000000000000000000000..ee48478199cd9fcf3285a53bceae9ad48c6f1c4e GIT binary patch literal 73 zcmV-P0Ji^l0ZYosPf{?mWXQ}bQOHfq%+mld5{uH4brg~_5{neHfb6p9SWT{KE(IU} f%PQC^m}o1QTZ2W4QcFsU@)Q!SxoWupkUkaky!Rj- literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/d6/afeea2c4657c743dedab24a8a62da96f63547d b/tests/resources/blametest.git/objects/d6/afeea2c4657c743dedab24a8a62da96f63547d new file mode 100644 index 0000000000000000000000000000000000000000..f3e52be6b56ab55c3818a9570382344efcfdf2d6 GIT binary patch literal 161 zcmV;S0ABxi0V^p=O;s>7H)Jq0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`OS(jI^H)7zC2-n}tpXulzquu$p! zOQ?dh%$!uPnxAU^^?ME1RY`20EO%o{{)TnCxjsYHWR#{u)ZCl@IDRJE!{Q PD{Fs|sEh^xEssY~uDVcn literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/d9/3e87a0863c7ec5e772f99e72ca9efddf0ca718 b/tests/resources/blametest.git/objects/d9/3e87a0863c7ec5e772f99e72ca9efddf0ca718 new file mode 100644 index 0000000000000000000000000000000000000000..e1c0f0095a5b4190383ce35654e0f4442a09e629 GIT binary patch literal 825 zcmV-91IGM#0iBacud7B7MziKu^d2P!LwAFe7o{1DF&G=;0oXCmqrqVR`gh-rvdb#9 zD5;KArK6I*sB4;H0xTm4zfEJ3fPhCl8^i(<(=>utZWj5TngdVl50%z?E99^@>^>$Ie zIRz+C*!o8zM3M=KcZI6%Ol7LVJ8wy@J>S(cmj1D)IYZ{ky_PM=?!@8chgn?p6Gwrn&ba4Y-Ss8RIGWC*~8G;ujy7V(*8W9tz6L8!tRVIbe9x!?u`P|+O_K|aZiGC zd1t*3XJOQ>6;}!>3f!)V=x^1*H`LIO;tM_=$MtUbucFl8Om|{P0TY|}sz-(x#GyY5r-X3x> zC3A@`xoPt@a!vV;oAHpQs(@3Kp`Enal8W)T%X0Mv{8sUoLoJDZXNk3Dvioy8!h-)~ z??)ln@c|L8&7pMC3|ohC>dZmxc>G3qpWug!-XvqSg#t)j{c6kYpZQzlM;tJF9qm0Y z+gB}rD~~05Dn?VDC4w6gqV85H#Q!{=dSKZ58;cJVkayQch(97bpWEBfD|vpBO-t!g zjSTrQebC<8H;Y$kQ*tkRbyE*c+aEROllQke>`My7mV}sd99;7%N2hWc^I*C)&QK}KY(5rm3T&@h4bx*v$_=2{g< z^@CHGHyLislyhV-HtR|FL4hCL0T0wanNcm}zY;@@Nz=U&Fa;q9+88|hAWEp8mG4$v D&xoI@ literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/f0/5190494260c2f6b6d045ac9bf27cb6d7e0abcc b/tests/resources/blametest.git/objects/f0/5190494260c2f6b6d045ac9bf27cb6d7e0abcc new file mode 100644 index 0000000000000000000000000000000000000000..6df7d34951a561bccc79cb0be5d331a929d251a7 GIT binary patch literal 133 zcmV;00DAv;0V^p=O;s>7Hf1n0FfcPQQApG)sVHIK*|p_L{584Ig(oxX=g-+tCG;@F z1F9eitl+)TeP7jy&XdhWk9!9GG`iWToN^JWAQ`NnPB?bT`rvIx-|l+0y!OX}50gt@ nC_@!wl%}VG)!du^IDRJE!{QD{Fs|sEh^xgakStKU+W1 literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/f4/f4b926582a2c23c6e3ba05309eaa89244c1d68 b/tests/resources/blametest.git/objects/f4/f4b926582a2c23c6e3ba05309eaa89244c1d68 new file mode 100644 index 0000000000000000000000000000000000000000..32c1cdfdd0e8af97a3b80d01b3bad2174c65437e GIT binary patch literal 839 zcmV-N1GxNn0d14X&Z9^Wgy+mt)E!N`3W`nY9yMUVEXH6K+uYatJSHiMXnQz0oRF8wGjhjEgo#1M~p zHv^o&H0BtlV3HzZg*;;+hYO136UZc=#Z-)`l;w$dneY7w)V>E&JOT{97k&S8jJvFF z(|#QAx3q8n0f^xt#RxRw0SOU=#D{(o&iM%Bcx-@|-d}MCzNa7Y^VgYvgKzorhu?B2 zr>X>h{~AfrbQ?ID13X=`ML#$zzc~R2P`UahiJ~NnVy0G#qFVd;k%ZWmuI|?zo6=}! zr~RFaIIM~dexV%}7qC=E(a4IW78>xx+T3 zl)EmPz*HMOiUGn|;#%yd5gzs9R50}eXO9mX!m95OLi1_g52-90*aVY3_=l7;h+6CSyS$nHx&@Sedm(=ySek`j#mLlK# zWFW0M8e7+dnUhSqP4Z31Bs*)0&W;s~cXB|k5-|peAmx)sRf?PtLH_#}5MhkYnmZ{MQ-9-v6mF RgqUSu8sao3{sl(~Py3uSpQ-== literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/objects/fa/01940156471352d5483b4f26b7c849dfaa7eef b/tests/resources/blametest.git/objects/fa/01940156471352d5483b4f26b7c849dfaa7eef new file mode 100644 index 0000000000000000000000000000000000000000..b392e4494be419c60e479422a8ded6b8ceabd61e GIT binary patch literal 826 zcmV-A1I7G!0iBb{uB%oMMKk6r&KxDi^hkM80E6i}bFt0r(08V9{q@i9Mww-l8kAI9 zRnpcjt+;!=${Cz7mi=uW(-e>iOJZ2W#3`PfsWhW7l8SMLq0)pPQWl2B0U__ zb_NWF#|(rNPGK;LNjyqvF3lJ=P1y{R3?xW8j_^1|;4&B82t+tG;1(AfY{8%LXZZV9 zo4$oV(&aC3rdXO~&J0Te6vHtLiN7t*>HoRS`+O>M@cXY4q^oKH=jwo)dbN1}%agu! z1R$Vv)wjU&g2?lUTuPE`T;@6oNK1IQLqY1oXeIWgU_yqJ`GyYGH0Q;yj^rrEu@+C_(LG>*SzqQ`tZgFIhEhUprI~DMB@JFBg(4#*?s}uz>Vg2ZE5uBh zSjxQ_`NKjRf2pe%Eo-FXl|j4+&FiHRC8s6Lo1zZOs$s8(S&dcwn;7&B0bS)dY9%P- zoiJdswa?3*&s9K`jrn9Gui){}Ai{}|-c6&^ZM}qHn2ZU7yTqe;$sq!2qrYpMM_6KO zbkEN=jCX$bvYS{H*s|LBZpF=I9^S;4F4q!|W{;(#NKsSRgJ}gF0mB+PTpQz=X{ml^ zbE6aN>??_7cq*GIk?VahC&gYnRS&757qSPpnTM(M5tTew+(rPS3GG*PwlzV2v;KOy zPmtV{+1{CZn3)VzjA#xH^}1EhGu2M7(-%y*#Fs=GyL-{`$)V9Gxi^EQ3QEt9Yt18Q zx*pAAsprm}vq2%p@~oMLM!)$&dYdBWd(L_ZsDSpXsc{gX7v6ahPV*Kj3`=O&F2}>Y zQ>N$ydrqfB2k(7#pDDk}+bD5jQVFiRwK1u`^tvQ7N*>f4oeXi&&CMMzT9Y^J#5;sM~ z^0l=a<0V?!%iD02%Y;4zH|hHQLMN*D;#|9#vd=ep+C^C>$;leC%@Xs?=Z5c*l*96A z(M(s#E1{vTV`Ngfp3Zl4cYh$@hsf$B@((kTb@?x1K1{Z2I?iB*5tutL_3%UZPfPV& E;Yy>QivR!s literal 0 HcmV?d00001 diff --git a/tests/resources/blametest.git/refs/heads/master b/tests/resources/blametest.git/refs/heads/master index 994877a20..9d1715881 100644 --- a/tests/resources/blametest.git/refs/heads/master +++ b/tests/resources/blametest.git/refs/heads/master @@ -1 +1 @@ -836bc00b06cb60eb0f629e237ad2b58adb2cfc7e +d93e87a0863c7ec5e772f99e72ca9efddf0ca718