├── t └── repos │ ├── one │ ├── moo │ └── git │ │ ├── HEAD │ │ ├── refs │ │ ├── heads │ │ │ └── master │ │ └── tags │ │ │ └── tag │ │ ├── objects │ │ ├── 65 │ │ │ └── 4408254694bf61b6f8e4488f6946a06a101866 │ │ ├── 4b │ │ │ └── 825dc642cb6eb9a060e54bf8d69288fbee4904 │ │ ├── db │ │ │ └── 5f4db195a2c06410c8a740c5e1a5d55353b58e │ │ └── e6 │ │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 │ │ ├── index │ │ ├── description │ │ ├── tortoisegit.data │ │ ├── tortoisegit.index │ │ ├── logs │ │ ├── HEAD │ │ └── refs │ │ │ └── heads │ │ │ └── master │ │ ├── hooks │ │ ├── post-commit.sample │ │ ├── post-update.sample │ │ ├── pre-applypatch.sample │ │ ├── applypatch-msg.sample │ │ ├── post-receive.sample │ │ ├── commit-msg.sample │ │ ├── prepare-commit-msg.sample │ │ ├── pre-commit.sample │ │ ├── update.sample │ │ └── pre-rebase.sample │ │ ├── config │ │ └── info │ │ └── exclude │ ├── test │ └── git │ │ ├── COMMIT_EDITMSG │ │ ├── HEAD │ │ ├── ORIG_HEAD │ │ ├── refs │ │ └── heads │ │ │ ├── daily │ │ │ └── master │ │ ├── index │ │ ├── description │ │ ├── tortoisegit.data │ │ ├── tortoisegit.index │ │ ├── objects │ │ ├── 10 │ │ │ └── 1acc4dc79bf39a240187170b4e11aebf6f302a │ │ ├── 12 │ │ │ └── e893709fb581f1b4dbb85103d1938181b39a37 │ │ ├── 15 │ │ │ └── c4355198fad4e78127df244da9371984116579 │ │ ├── 17 │ │ │ └── e5f5df236a7450f0859943b7c7e9316184ebb1 │ │ ├── 20 │ │ │ └── 9445e82997ff96c64d8817fa5c4c136ada5ff5 │ │ ├── 24 │ │ │ └── 03f2e42ccac54dfe14b453f3c61bcc0efbb5f3 │ │ ├── 39 │ │ │ ├── 5ca57921c9367a0622c49be15a53293df6ccbd │ │ │ └── ef1c7d1878e6c4f3f3fb926aac7e756ddac5c5 │ │ ├── 44 │ │ │ ├── 8977393660f4a3a6157780a6a551019cf033d9 │ │ │ └── 8a07d1fca5b6377ad779f54818ccb676b3c7fc │ │ ├── 45 │ │ │ └── 34b7fc37ddecff9f0232e88cc5bf1b8d518bce │ │ ├── 51 │ │ │ └── f959558513b503fce2e19f15877c061c870656 │ │ ├── 52 │ │ │ └── 3be5d95e5a861aa1eaaa66ab964e3dd8f46892 │ │ ├── 53 │ │ │ ├── 9c3f1a39d967385764c49f11a047649d7b0d21 │ │ │ └── 9f421b94a25f9d32a1d3a4118c7ca170876c18 │ │ ├── 55 │ │ │ ├── 9a710a3ca972cbea225aaf853979762939a6aa │ │ │ └── d990c7d396f7c2bb2a0dcbc68f93507155d86b │ │ ├── 57 │ │ │ └── bb69c3f7d14b38a5aa0401d61774c007dc017c │ │ ├── 58 │ │ │ └── ec8d013b75390923ad15ca93b76d2b1c87bab1 │ │ ├── 59 │ │ │ ├── 40f3b1a1c82294ea26f746ab9a8492d7f902de │ │ │ └── baa52d1417c3ae267bb6c410552fb1903cf5cb │ │ ├── 66 │ │ │ └── dd3965eaa09adef5a1005f780b21064b06b266 │ │ ├── 67 │ │ │ └── 0a04a722e477716678071ff671ded756db041d │ │ ├── 68 │ │ │ └── d344405f84bd0aec586c00258a582a2ba4c481 │ │ ├── 74 │ │ │ ├── 3dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 │ │ │ ├── 8a447166848bcbb1bddba57034b56bde471262 │ │ │ └── c3132766b287216b882df887d560f5f960e892 │ │ ├── 76 │ │ │ └── a3a5bf8ed823bda9669bb91d967accd225383c │ │ ├── 78 │ │ │ └── c6baefdd2d13b3080b53d794e90471df3c4bf2 │ │ ├── 83 │ │ │ └── 767a7dad0aca02a0955b6a5a749c708ae16f19 │ │ ├── 88 │ │ │ └── 1b6c08caa9bd768405530f74d33b973d6c87bc │ │ ├── 98 │ │ │ └── cef508ff4c023cfba5426fba70f0b331692f8f │ │ ├── 05 │ │ │ └── 2f22b87ea2bd5b9c104587b752da6fc5c87ab0 │ │ ├── 07 │ │ │ ├── 5b4f2f4542e9d3c3b2bcf7579c423a42b033f8 │ │ │ └── c96ce6012e59063f48ef8f81785af14922be29 │ │ ├── 0b │ │ │ └── c3ee2b19fdb94d3a9863b2c6b4b6ee038ab205 │ │ ├── 1d │ │ │ └── eea6545e35f1dcf54455dc6e80b939109d2206 │ │ ├── 1e │ │ │ └── 5c8768316e446fbf50ae66eeabd5960c167559 │ │ ├── 2b │ │ │ └── 094b03a0f43acca1cb9543c0249296ec764464 │ │ ├── 2d │ │ │ └── d5f5ac82622766b2f8d69ae42a3d9264bcd226 │ │ ├── 3a │ │ │ └── 5a1de8127750a53003f781a0f2fa345210c0db │ │ ├── 4c │ │ │ └── 2aad83c4ded40653d080256e24030ecb9e8255 │ │ ├── 4f │ │ │ └── 5c06c67554174c525b7628615d7b2b141dd33d │ │ ├── 5e │ │ │ └── ec9f811f38c19fdb8f3f710ae50c24e2431ff1 │ │ ├── 6f │ │ │ ├── 35b25a164ab731317638f7024ac1b577705790 │ │ │ └── d642f7bf4484fd832a45c68968421a1599776d │ │ ├── 7a │ │ │ └── 9e50e3ced5db58904f6f6de80f4d99d61adde1 │ │ ├── 9c │ │ │ ├── de38f98ec92232fb239f26f1da7e6595a8bae2 │ │ │ └── e8e543c27ba51721530f8c5c67f6820bb23d39 │ │ ├── 9f │ │ │ └── bf0209a63ecc15d5c3f7c1eb0ecea42da0c383 │ │ ├── a1 │ │ │ └── 96ddea88bf564af5029f0561881f3fc55e7714 │ │ ├── a3 │ │ │ └── 7f04fd7565cefff5e4b9de27212b847fd9831c │ │ ├── a6 │ │ │ └── 068e7a6db24a1651c3842054dc5bbfac2deed7 │ │ ├── aa │ │ │ └── a839f3cc5858ad73ce818876d9779e352020f9 │ │ ├── b0 │ │ │ └── 521bb5ff641de75a110b181c80617ef5f9c7c8 │ │ ├── b2 │ │ │ └── 717245cd2c95bd920db1d8c24ade2fdf590fa8 │ │ ├── b8 │ │ │ └── 4068e6d6b1b96f7fa1dd797752bd340328da97 │ │ ├── be │ │ │ └── a74b822c56104695c81b8b4178a26d1465b516 │ │ ├── c2 │ │ │ └── 8feefe74e1db6e4959a226ed57993c5b1f163e │ │ ├── c3 │ │ │ └── 258fa11987adb8dbe995edbc101309d04f61fc │ │ ├── c5 │ │ │ └── 08f7d7f1d03cfba1475ff2f40e233edb652d0d │ │ ├── c7 │ │ │ └── a8af4ab6dca9a70792109cced2b794542db977 │ │ ├── c9 │ │ │ └── 473ddec7109e046eefefbeb70ffff0838a55c9 │ │ ├── cf │ │ │ └── 1b70e900873deb48dd1077851997dfcb1cf568 │ │ ├── d5 │ │ │ ├── 3a03a41ea7dd6633c560c82fbc129f1dcd3fb8 │ │ │ └── 6e6caa7d1eb72d4d8d2137c3241af6a1c9b7fa │ │ ├── d9 │ │ │ └── fb86e8f81357858bf15f206d213461be8a813d │ │ ├── db │ │ │ └── d050be79ea66c6a1092b37ec297a76006e7d37 │ │ ├── e1 │ │ │ ├── 2024bcf30b3aafbc6748c54b217b88c5214cef │ │ │ ├── 4df11fae8224f76bcc42d2ca0a67e5f427a99d │ │ │ └── 7266c9a4689bfa10133bc9f534184c11f5d5e9 │ │ ├── e4 │ │ │ └── b1426f1e20feb8a28fe3bdfcc3b156cf726f10 │ │ ├── e9 │ │ │ └── aeb08a5222931f5a6c7322d732f08ff5d44fbc │ │ ├── f2 │ │ │ └── 060863e647303a378dcf9207f268196aa606eb │ │ ├── f3 │ │ │ └── 3dfa25aa16a97ca941fe1d9cabdc3689179f3f │ │ ├── f4 │ │ │ └── 794b88df197d06c64a8a229968955ed561c68d │ │ └── f7 │ │ │ └── f679b677d3b4c06bb4b625c87e02ab28a7d356 │ │ ├── hooks │ │ ├── post-commit.sample │ │ ├── post-update.sample │ │ ├── pre-applypatch.sample │ │ ├── applypatch-msg.sample │ │ ├── post-receive.sample │ │ ├── commit-msg.sample │ │ ├── prepare-commit-msg.sample │ │ ├── pre-commit.sample │ │ └── update.sample │ │ ├── info │ │ └── exclude │ │ ├── config │ │ ├── logs │ │ └── refs │ │ │ └── heads │ │ │ ├── daily │ │ │ └── master │ │ └── gitk.cache │ ├── refs │ └── git │ │ ├── COMMIT_EDITMSG │ │ ├── HEAD │ │ ├── ORIG_HEAD │ │ ├── refs │ │ └── heads │ │ │ ├── dfg │ │ │ ├── moo │ │ │ ├── blargh │ │ │ └── master │ │ ├── index │ │ ├── description │ │ ├── tortoisegit.data │ │ ├── tortoisegit.index │ │ ├── objects │ │ ├── 65 │ │ │ └── 4408254694bf61b6f8e4488f6946a06a101866 │ │ ├── 68 │ │ │ └── d344405f84bd0aec586c00258a582a2ba4c481 │ │ ├── 78 │ │ │ └── c6baefdd2d13b3080b53d794e90471df3c4bf2 │ │ ├── 1a │ │ │ └── 041fb689a22976a7e1c6e52c3c975486770abf │ │ ├── 9d │ │ │ └── e59db095a38f2fab6c718b38fec36f206ca4db │ │ ├── a8 │ │ │ └── e6371cac5e8c71910cdf9cea932b6862a4fa2f │ │ ├── c0 │ │ │ └── f5337fb674e4f484c2cc9997f071a7d72a85fe │ │ ├── db │ │ │ └── d050be79ea66c6a1092b37ec297a76006e7d37 │ │ ├── e6 │ │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 │ │ └── f3 │ │ │ └── 3dfa25aa16a97ca941fe1d9cabdc3689179f3f │ │ ├── config │ │ ├── hooks │ │ ├── post-commit.sample │ │ ├── post-update.sample │ │ ├── pre-applypatch.sample │ │ ├── applypatch-msg.sample │ │ ├── post-receive.sample │ │ ├── commit-msg.sample │ │ ├── prepare-commit-msg.sample │ │ ├── pre-commit.sample │ │ ├── update.sample │ │ └── pre-rebase.sample │ │ ├── logs │ │ ├── refs │ │ │ └── heads │ │ │ │ ├── dfg │ │ │ │ ├── moo │ │ │ │ ├── master │ │ │ │ └── blargh │ │ └── HEAD │ │ └── info │ │ └── exclude │ └── cmi │ └── git │ ├── HEAD │ ├── ORIG_HEAD │ ├── refs │ ├── heads │ │ └── master │ ├── remotes │ │ ├── origin │ │ │ ├── HEAD │ │ │ └── master │ │ ├── andya │ │ │ ├── bdf │ │ │ └── master │ │ ├── jozef │ │ │ ├── bdf │ │ │ ├── daily │ │ │ └── master │ │ ├── briandfoy │ │ │ └── bdf │ │ ├── frodwith │ │ │ ├── bdf │ │ │ └── master │ │ ├── jonallen │ │ │ ├── bdf │ │ │ └── master │ │ ├── mlanier │ │ │ ├── bdf │ │ │ └── master │ │ ├── sukria │ │ │ ├── bdf │ │ │ └── master │ │ └── cybersiddhu │ │ │ └── bdf │ └── tags │ │ ├── 0.28_01 │ │ ├── 0.28_02 │ │ └── 0.29 │ ├── index │ ├── description │ ├── tortoisegit.data │ ├── tortoisegit.index │ ├── objects │ ├── 10 │ │ └── 1476a2c2143bc2c6daa197fa5328b86f818fba │ ├── 12 │ │ └── 02e9b8b8fabcfd9e2837b2d4a1483d2e1e83c0 │ ├── 13 │ │ └── e1f90e58449c69cc6ada7f8b603986f8817e39 │ ├── 14 │ │ └── 6f1da8ae86af6465d399147d1244d2583e1584 │ ├── 17 │ │ ├── 8a48a70b0c04be6fd9909b8a8aca2ec08f4880 │ │ └── b6dff3a4bf48b6e87af6e5850c6565ef065a67 │ ├── 19 │ │ └── a8a56a57fe6d4bb4bcf53bdd0ead28a00a6ddd │ ├── 20 │ │ ├── 8203acfe397f9a4ffa55c31f56af9092333f3f │ │ ├── 9a3cb51bdd7bf557c7d10a633f9b993d86f947 │ │ └── d83aba776759e51f39da69c8689e9fe1e873cc │ ├── 22 │ │ └── 868789a51b7767c716aee17018250e700fbbf3 │ ├── 25 │ │ ├── 93e41c639709fe55a7accbd9635b34daa6f583 │ │ └── b3831c9b49d7aba85a03891572f25865aa8273 │ ├── 26 │ │ └── a7cb7661aa8ddddd3002333030534c9a1e17a1 │ ├── 27 │ │ └── 1063dfdde9fc848f798cb7155eb7dccf96d7ec │ ├── 30 │ │ └── f48e54cd46064f7e300234a9a7dbeb781570c4 │ ├── 32 │ │ ├── 21230c86fef51420e411baaa51bf91d073f4a7 │ │ ├── 2d7c775b06dba4af9d4c50658a844af6286602 │ │ └── 61c2fdb7e0d7d36ae85d159ba353396b0507e2 │ ├── 34 │ │ └── 5054d546550508f70697389559f9c71808c52d │ ├── 35 │ │ └── 5c4ead96e6917643749198446e15965ec949e7 │ ├── 37 │ │ └── daf6851dd7e4714187ae8f6095fbe11fb4c50c │ ├── 43 │ │ └── e80424d4b2bf9c09b8f5c9be200cd75351ce78 │ ├── 44 │ │ ├── 37c498e47b0aaff2f1ad4a68f5bbd5fe6a8eba │ │ └── ef2a803a191321958389c46a517a4255116432 │ ├── 46 │ │ └── e836bef966b544a8f8b79f319df2b97972aa3d │ ├── 47 │ │ ├── 2a4f6152e40616850dc443e099680c1b3103cd │ │ └── 69c5ac3781449a42aa897833129dabc616ca12 │ ├── 48 │ │ └── 9979d4d824408290db4c3473770b9b5fd7765e │ ├── 50 │ │ └── acc5281cd1fc1fb0f7add0cf4540d366d036fb │ ├── 51 │ │ ├── 2b1079eeca338d846d98f9a76770150c6f08ee │ │ └── a90694d75819ab9b121a3118f4c6a562d712ea │ ├── 52 │ │ └── a57fd44f65d7169b44d746f9c668894fb2b7ac │ ├── 53 │ │ ├── 1899ec0e7e3d31e3c7071c99e62187106e39cc │ │ └── 60d5c941009c337ae7bd4af7a54819d0908573 │ ├── 55 │ │ ├── 80c0bd658f72ead70a9742c4692218cc6130a5 │ │ ├── 920f384945f0e14830beb777b7d22b64da8419 │ │ ├── 9facd0576965624b62503d727165ca12482756 │ │ └── aa9dde0787a5abb390be1c7013a915d99f440d │ ├── 58 │ │ ├── 28eadae756aceb6952484eef1e3b69551abf52 │ │ ├── 2b10ee455a49b3ddd0fdd3eac8a35c7cebf504 │ │ └── a91ce7439b6e05960e8f4669324c68856e76fc │ ├── 62 │ │ └── e27112bdc15619d1f4c99607bd542a9e887db3 │ ├── 64 │ │ └── d82bebe3734ca130a922e0ba987b2ba52b1357 │ ├── 65 │ │ └── 94b41e06d0ba4512a5c30d65fcce4969d5b2cd │ ├── 67 │ │ ├── 69ff356023d988a0532a332d0d47723babd80e │ │ └── f48859bc7d89bc1a5bce67880d6627852cf274 │ ├── 69 │ │ ├── 30146ed0a6d66d4b42c7d57209f8f83fc611b8 │ │ └── db2096fce40ec4637df6106194e16cffc25e75 │ ├── 71 │ │ └── de1423a8698d8198b232b076bde6493180ec98 │ ├── 72 │ │ └── 1135963cf6e1c01be20d36f37dcf6c60c47643 │ ├── 73 │ │ └── b37629f5c5edad53ab6fc066636d17bb7a41fa │ ├── 75 │ │ ├── 6528f0ddaac7ba1ae8500205ec086ee28b231a │ │ └── e76953ea96c05129bbca37b2d8844940794ca6 │ ├── 76 │ │ └── 9e430a8986d57a1676188018c9b4bc39cde298 │ ├── 77 │ │ └── a162bf8182c08572e6afe6f3efa53d613519d7 │ ├── 78 │ │ └── c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 │ ├── 80 │ │ ├── 910f24937a5dc46e1c7cc227442a8c74099a07 │ │ └── 9bcc0142ed01edaa2b6fe724c786799f4b12ea │ ├── 81 │ │ └── 7ebb1dc63225b358845f42f67a7a739e389465 │ ├── 82 │ │ └── feeef1ae0d2eb6e3c7a16922c0fa211720654f │ ├── 83 │ │ └── 006341bc1b34926afa359150ab029ffc800e0e │ ├── 84 │ │ └── 1341802e2bf6a13e85bcba05faba7e8a688263 │ ├── 85 │ │ └── a5a7ec6593f911643abe31253c0e09fa105055 │ ├── 88 │ │ └── a7b24477fd8a7f83ce4166adbd6e4400d5cc5c │ ├── 90 │ │ └── a69ddcd9be2371eee3a884b493760d1580ce1c │ ├── 91 │ │ └── fd29bc2e48e8abc7c104527994401af472c453 │ ├── 93 │ │ └── 63956c3daec720de3cabaefed6ba6f40fd81c8 │ ├── 94 │ │ ├── 2818f91e6085efb18114b749540a0359de4607 │ │ ├── 68842c8b6575571e646a5d0d604b4918da3ec8 │ │ └── f76eb71dcbbba01cfb877a2c3cf61db39e6e7a │ ├── 95 │ │ └── 6b624a7b20b3ee4eeaac57347e3f4667de49f7 │ ├── 96 │ │ ├── 5cddef30a8625c4c08718ebf6f56d1b2ce1736 │ │ └── a975fc73f95d1b8e0a2535a70387ea4981c541 │ ├── 98 │ │ ├── 3804c740a5852f4eb8b727ca06aaab09781585 │ │ ├── 4667d7938cad37538d328110bfcc8868557980 │ │ └── f5100497f3ab203c9008b6a712b102f84d2dc1 │ ├── 00 │ │ └── e16dc61d0e02e5da2684c2176ec10558319bb5 │ ├── 03 │ │ ├── 84e3f1e3f8f5a33294133e7dc241db127605bf │ │ ├── bf1455a1a44e2c277be86d77be14df9ce28840 │ │ └── df5dfd88d31756aed576ce777a02f71328533c │ ├── 06 │ │ └── d6e7368f655b9dc43a73e4ddbc1d564b140d4a │ ├── 07 │ │ └── 423e4913c2cc0fabda9cf767112f65050c2bee │ ├── 08 │ │ ├── 39f372adeb1ddc4dee622467e7df2cbc58fd48 │ │ └── f32598a03b9d0662635894d0aeeafffad949bc │ ├── 0a │ │ └── 8478f687b9efa3eabfee03613e1cf448658c1f │ ├── 0b │ │ └── 7bb7e5e3266dd5a5e922242ed58972aac8c81f │ ├── 0c │ │ └── 21f31fbaed99e8b571918f7e5d6a2fb5bf62e0 │ ├── 0e │ │ ├── 1257cea1f99531e26218ae2d64ffe650bfb02d │ │ └── 922fc3fe39f1e05232c1fc5d4bdf95282037ee │ ├── 0f │ │ └── 6d80bf34846dd57f2e9b40acf0e268b1fd82ce │ ├── 1a │ │ ├── 023926fb6488be039865238608d888aa26f42e │ │ └── 9129d36f0e973bf086a4e03641503f3d153c1d │ ├── 1b │ │ ├── 028e7c44eafaf7dd7f47ee7c5b93499db1c40b │ │ ├── 0d8dd8f4f37591bedaccb68061f7a4b3b70e4e │ │ └── 1d86b76ef6f09519ad4beefe83029cf3fdc09b │ ├── 1c │ │ └── 0fc55cbaf0de08131fe9a72ebd7aa63f3bce23 │ ├── 1e │ │ └── 52bfbd6057da26d9919c981d44ba9dea22f47a │ ├── 2a │ │ └── 7706a351f8e5d65163fa7c871f58d44294311c │ ├── 2c │ │ └── f7ad14a77149b2d81e94f76a2154588577f207 │ ├── 2e │ │ └── bd6de08dbcb0bd3a01da31d524b1e2ba8a8da8 │ ├── 3b │ │ └── 4eee3e2d63a594a4bef404338c6e50adcf8019 │ ├── 3c │ │ └── ef099c51990c9334a50919ad777f44205dd7d0 │ ├── 3d │ │ ├── 2ea167e72b0126fd449f52c9984455689aabb5 │ │ └── 738ef19e3a2889384abc5f76ad4846856be3f9 │ ├── 3f │ │ └── a7bdd36dc0ad5ac1f2fc65f7969d98308253b6 │ ├── 4a │ │ └── 3b619a2575d66d2aa32afa04ff5befe168d5b2 │ ├── 4b │ │ └── 9c292d7ac692709a10f5e22533e096a1bd953a │ ├── 4c │ │ └── 3dadf53b8eb4a80c9e851c0230af1fa4b490b4 │ ├── 4d │ │ └── 603f6821fb4938bc6e085daadd2854dac8b4a5 │ ├── 4e │ │ └── 8fcb5b236d6e8af869b4d5f9082862105d4c28 │ ├── 5b │ │ ├── 5e24b252c9440ce94d00cb32e6caa21d9d3c01 │ │ └── dfc9032ebc08216ae51100eaf5558299fcd1b8 │ ├── 6a │ │ └── 7cac0287d2aa8b9ddd4b2d51743ac78285e62b │ ├── 6c │ │ └── 79a9247a89813234c7533f1e50f3ecde68873e │ ├── 6d │ │ └── 4d11ca689d2e1a7b0237b6a125c6b677b91100 │ ├── 6e │ │ └── 2787c3520d356d06e561aed7e381216f125607 │ ├── 6f │ │ └── c36d2aadcdc2241a3367261ee40ae0671c5d4f │ ├── 7a │ │ └── 30a5b4937defa1ca459e57c6316424aced8f36 │ ├── 7b │ │ ├── 293d8421a8ce318d593d684c591678a56278b5 │ │ └── 6f6f460f12ee20bb5cfaaaccc9aa10558e4e9c │ ├── 7f │ │ └── df196388a4a0f2bb8c02903c209f243b579667 │ ├── 8a │ │ └── b2f5a8e4ff4f75a226d4addfa32220c561c7ca │ ├── 8b │ │ ├── 1ce99da63ac56ced09a1e830ffecb119cf9991 │ │ ├── 4be6e712a2d54776500b48c1348049e52908c2 │ │ └── d646bab6fe5e9997e290118f37eb6c9ea76fd7 │ ├── 8c │ │ └── 852f1fc5c975714bb21dfc1c95135b03ef865a │ ├── 8d │ │ ├── 3a048525fe1e9be32cbf437a8bd9b8f346f1ff │ │ ├── 5146e21cd69947fac05c6a34a52e503229faed │ │ ├── 893856ba5dc077cdd895b5a44fff6bc397b41b │ │ └── 89e98e554f306bca2324bcf10c4168c2ed430c │ ├── 8f │ │ └── 51cf75b0c42198edd730d671edee9a137df21a │ ├── 9a │ │ └── aff1667c19835f17e1e9cea19400d70683ec97 │ ├── 9b │ │ ├── 2c828e482846ef896bf8aea360a74b950b2e27 │ │ ├── 44c19f24d0bf5f3742ebf02beaaa7340a5f968 │ │ └── 937c23445a23f9f2069c60e4bc2af38e42a75a │ ├── 9c │ │ ├── 19953bf3bcde43258b788804a8c05aab640ce1 │ │ └── b2b01128dffa6cf09958c02a18cd64333acf68 │ ├── 9d │ │ └── 5e53da5bae12646b9b88df9a22302daff20592 │ ├── a0 │ │ ├── 4e51c90ca8af47c52b58627ab9afad2931b961 │ │ └── a20c518bcd9100472aa60eb86692e19b2f1aa8 │ ├── a1 │ │ └── 336bc1e58f68228c63a493a5c8ac2340187d00 │ ├── a2 │ │ └── 4565581a0744cb6b40596a352f3700fcb0d146 │ ├── a3 │ │ ├── 427ac70c534edece9c90b1d4e59dd4567ec515 │ │ └── 54c903a231fc2128a7d653a16c584cc4c89652 │ ├── a8 │ │ └── 06780be183681d3b150a8e48edc5e57aaba28c │ ├── a9 │ │ ├── 257e7802e3576d8b0fb93fd129f09d299b5e1e │ │ └── 9135140df61df67057dbfae4a72e587d0d9f5c │ ├── aa │ │ └── 55e54f1b27c82421b95fea4c3451ec26e8711f │ ├── ab │ │ ├── 09f7e613ef404439a18808ef81ad6d7b4910ad │ │ └── eabe5f92e2cf020f30dcdc6e84ec26a0eb5e0b │ ├── ae │ │ └── 581ff7138039658f1a0ed100c81ae19f5d4ddf │ ├── b1 │ │ ├── 102f14aa976de9fbcf9c757c32c6d0bae9b31c │ │ └── ade4933b3310a8c5db6a58cb4f1b50f4405bdf │ ├── b3 │ │ └── d0777f7c84c3d571a767edd90fe3bc5359cb23 │ ├── b4 │ │ └── e12e691751de372eee23a9714387a65d237a0c │ ├── b6 │ │ ├── 6b1bb8fbba8a5167baec4ee2ad62a70da99147 │ │ └── 89efb47fd32b9787a688d004301cbf966557e2 │ ├── b8 │ │ └── 8ec61335553298bfa26aea55d278999218c2f3 │ ├── ba │ │ └── a11efc32cba2ba3cbf3f39e9bb6685c236921f │ ├── bd │ │ ├── 072634d85bea324b43f92a336f6f2eca39142b │ │ └── 24c0f256af88f18c14b9dc64ae2fa7c9e580b2 │ ├── be │ │ ├── 0940def0f57baab2dcb215623c62b6d836d896 │ │ ├── 5249bc272dadd2a3a34d3e151558a21c9a5e29 │ │ └── 55d942e61ea23f52e5d52e12bdf728436a8797 │ ├── c1 │ │ └── 8ba1836c117c89879a402980bb9fe219bbe358 │ ├── c2 │ │ └── f085b188ad913642f8bfa7738a4883a0bd8d31 │ ├── c3 │ │ └── 9bbabc512784618da7ff64f07f071c7bc3b198 │ ├── c4 │ │ └── e55ab7134b3d4a4a1be167ce5ccff63a7757bf │ ├── c5 │ │ └── f96df6e29a3e60f63aedcc8479a9c6fde46a79 │ ├── c6 │ │ ├── 28c2b59206c1380d2a5afb913d31c2a6b9d1c0 │ │ └── 310045e3f1c8dec9a894334f0add9e8e087e6e │ ├── c9 │ │ └── 0cea2e8382c15df650b1df0ad2eecbd0ac94c2 │ ├── cc │ │ └── 4695b5ce9def1a0d4633e1d68af01550f6821d │ ├── ce │ │ └── 4a229892f236fe6e375031a1c4247d92e6a80e │ ├── d2 │ │ └── f59287e46f47fe291d5d986d3120716d04d024 │ ├── d3 │ │ └── 7c5076f0f34cf41753bee80fede8d86736caf0 │ ├── d5 │ │ └── 27d675517e7de5e406697738156878b8f723a0 │ ├── d6 │ │ └── 394e1143ac02a07eae27a34bdea073a86d872b │ ├── d9 │ │ └── 50df569b090446d5a89344d1ff1530cf33fcb3 │ ├── da │ │ ├── 22edb44321de786199ee81b172a6913573c426 │ │ └── e80598a91104abdb87eb215935ee4477e11473 │ ├── db │ │ ├── 2586a2f9520428a66f27b04b7c5981cda9c738 │ │ └── 9f2710cb6419ab562be08c1bd3486d1a91548f │ ├── df │ │ └── b79dd443ae4994e2d0b01c9747ba6f575df47f │ ├── e0 │ │ └── 390e266a7a0f2b080862aaeb22ba43ae8c0b32 │ ├── e1 │ │ └── 756daf4c9333b0dbda990bed047a43177b52b5 │ ├── e3 │ │ └── 5527574f0ff97e54b51266039dab1be2fbf88c │ ├── e5 │ │ ├── ec5e9ddf8ba636967cbdbe573fc26fd84d2456 │ │ └── efa0985bb0e594119ad2166a6ce7b01a1c2752 │ ├── e7 │ │ └── 1709bec541e993212fbe7a1dfd09ec0025534b │ ├── e8 │ │ └── ab48a0afacf73c936ee2c6c186ae48da7cdc3b │ ├── eb │ │ └── a4462460fe034ac658d2a68420bdb6331afdcf │ ├── ec │ │ └── 1c487270c0c8abfef90a9ff0e6f33983ff431a │ ├── ed │ │ └── f046c5b9e59627d53d8453928e19e4488f66d0 │ ├── ee │ │ └── c1adc18285ab2fb29c0cbdc8a219c7b7b45d66 │ ├── ef │ │ └── 69f32d19213f09ba25bf05e28591fb5b787bb2 │ ├── f0 │ │ └── b6fb50fe3c4bf5a6b8be87564a15f81454f6fb │ ├── f2 │ │ └── 73320cb9a1e467ab8b29d206604a2d5e79b5aa │ ├── f3 │ │ └── 1627c13d1e7aa8b38163db64dfe2940f2f3487 │ ├── f4 │ │ └── dfde7a7a9810d03a7ee27c969382d3086b96b8 │ ├── f5 │ │ ├── 23d2138d7cd6f0974ce211f208f9a4ad7a2f57 │ │ └── 622bfd168f47794e972a3beee8ef5a06fa3fe5 │ ├── f7 │ │ └── dae93660792a65143c558fac63c1c96eb05629 │ └── pack │ │ ├── pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.idx │ │ └── pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.pack │ ├── logs │ ├── refs │ │ ├── remotes │ │ │ ├── andya │ │ │ │ ├── bdf │ │ │ │ └── master │ │ │ ├── jozef │ │ │ │ ├── bdf │ │ │ │ ├── daily │ │ │ │ └── master │ │ │ ├── frodwith │ │ │ │ ├── bdf │ │ │ │ └── master │ │ │ ├── jonallen │ │ │ │ ├── bdf │ │ │ │ └── master │ │ │ ├── mlanier │ │ │ │ ├── bdf │ │ │ │ └── master │ │ │ ├── sukria │ │ │ │ ├── bdf │ │ │ │ └── master │ │ │ ├── briandfoy │ │ │ │ └── bdf │ │ │ ├── cybersiddhu │ │ │ │ └── bdf │ │ │ └── origin │ │ │ │ └── master │ │ └── heads │ │ │ └── master │ └── HEAD │ ├── hooks │ ├── post-commit.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── applypatch-msg.sample │ ├── post-receive.sample │ ├── commit-msg.sample │ ├── prepare-commit-msg.sample │ ├── pre-commit.sample │ ├── update.sample │ └── pre-rebase.sample │ ├── info │ └── exclude │ ├── packed-refs │ ├── config │ └── FETCH_HEAD ├── lib └── Git │ └── Garden │ ├── Render │ ├── graphviz.pm │ └── gnuplot.pm │ ├── Commit.pm │ └── Importer │ ├── fossil.pm │ ├── gitclass.pm │ └── gitpp.pm ├── README └── bin └── git-garden /t/repos/one/moo: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /t/repos/test/git/COMMIT_EDITMSG: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/COMMIT_EDITMSG: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /t/repos/one/git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/blargh 2 | -------------------------------------------------------------------------------- /t/repos/test/git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/ORIG_HEAD: -------------------------------------------------------------------------------- 1 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/ORIG_HEAD: -------------------------------------------------------------------------------- 1 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 2 | -------------------------------------------------------------------------------- /t/repos/test/git/ORIG_HEAD: -------------------------------------------------------------------------------- 1 | f4794b88df197d06c64a8a229968955ed561c68d 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 0384e3f1e3f8f5a33294133e7dc241db127605bf 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/origin/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/remotes/origin/master 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/tags/0.28_01: -------------------------------------------------------------------------------- 1 | 50acc5281cd1fc1fb0f7add0cf4540d366d036fb 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/tags/0.28_02: -------------------------------------------------------------------------------- 1 | 83006341bc1b34926afa359150ab029ffc800e0e 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/tags/0.29: -------------------------------------------------------------------------------- 1 | 0384e3f1e3f8f5a33294133e7dc241db127605bf 2 | -------------------------------------------------------------------------------- /t/repos/one/git/refs/heads/master: -------------------------------------------------------------------------------- 1 | db5f4db195a2c06410c8a740c5e1a5d55353b58e 2 | -------------------------------------------------------------------------------- /t/repos/one/git/refs/tags/tag: -------------------------------------------------------------------------------- 1 | db5f4db195a2c06410c8a740c5e1a5d55353b58e 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/refs/heads/dfg: -------------------------------------------------------------------------------- 1 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/refs/heads/moo: -------------------------------------------------------------------------------- 1 | a8e6371cac5e8c71910cdf9cea932b6862a4fa2f 2 | -------------------------------------------------------------------------------- /t/repos/test/git/refs/heads/daily: -------------------------------------------------------------------------------- 1 | 101acc4dc79bf39a240187170b4e11aebf6f302a 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/andya/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/jozef/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/refs/heads/blargh: -------------------------------------------------------------------------------- 1 | 1a041fb689a22976a7e1c6e52c3c975486770abf 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 9de59db095a38f2fab6c718b38fec36f206ca4db 2 | -------------------------------------------------------------------------------- /t/repos/test/git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 17e5f5df236a7450f0859943b7c7e9316184ebb1 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/andya/master: -------------------------------------------------------------------------------- 1 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/briandfoy/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/frodwith/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/jonallen/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/jozef/daily: -------------------------------------------------------------------------------- 1 | a9257e7802e3576d8b0fb93fd129f09d299b5e1e 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/jozef/master: -------------------------------------------------------------------------------- 1 | be0940def0f57baab2dcb215623c62b6d836d896 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/mlanier/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/mlanier/master: -------------------------------------------------------------------------------- 1 | 559facd0576965624b62503d727165ca12482756 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/origin/master: -------------------------------------------------------------------------------- 1 | 0384e3f1e3f8f5a33294133e7dc241db127605bf 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/sukria/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/sukria/master: -------------------------------------------------------------------------------- 1 | 3d2ea167e72b0126fd449f52c9984455689aabb5 2 | -------------------------------------------------------------------------------- /t/repos/one/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904: -------------------------------------------------------------------------------- 1 | x+)JMU0` 2 | , -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/cybersiddhu/bdf: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/frodwith/master: -------------------------------------------------------------------------------- 1 | ce4a229892f236fe6e375031a1c4247d92e6a80e 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/refs/remotes/jonallen/master: -------------------------------------------------------------------------------- 1 | 9468842c8b6575571e646a5d0d604b4918da3ec8 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/index -------------------------------------------------------------------------------- /t/repos/one/git/index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/index -------------------------------------------------------------------------------- /t/repos/refs/git/index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/index -------------------------------------------------------------------------------- /t/repos/test/git/index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/index -------------------------------------------------------------------------------- /t/repos/cmi/git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /t/repos/one/git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /t/repos/test/git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/tortoisegit.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/tortoisegit.data -------------------------------------------------------------------------------- /t/repos/cmi/git/tortoisegit.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/tortoisegit.index -------------------------------------------------------------------------------- /t/repos/one/git/tortoisegit.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/tortoisegit.data -------------------------------------------------------------------------------- /t/repos/one/git/tortoisegit.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/tortoisegit.index -------------------------------------------------------------------------------- /t/repos/refs/git/tortoisegit.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/tortoisegit.data -------------------------------------------------------------------------------- /t/repos/test/git/tortoisegit.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/tortoisegit.data -------------------------------------------------------------------------------- /t/repos/refs/git/tortoisegit.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/tortoisegit.index -------------------------------------------------------------------------------- /t/repos/test/git/tortoisegit.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/tortoisegit.index -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/00/e16dc61d0e02e5da2684c2176ec10558319bb5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/00/e16dc61d0e02e5da2684c2176ec10558319bb5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/03/84e3f1e3f8f5a33294133e7dc241db127605bf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/03/84e3f1e3f8f5a33294133e7dc241db127605bf -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/03/bf1455a1a44e2c277be86d77be14df9ce28840: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/03/bf1455a1a44e2c277be86d77be14df9ce28840 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/03/df5dfd88d31756aed576ce777a02f71328533c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/03/df5dfd88d31756aed576ce777a02f71328533c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/06/d6e7368f655b9dc43a73e4ddbc1d564b140d4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/06/d6e7368f655b9dc43a73e4ddbc1d564b140d4a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/07/423e4913c2cc0fabda9cf767112f65050c2bee: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/07/423e4913c2cc0fabda9cf767112f65050c2bee -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/08/39f372adeb1ddc4dee622467e7df2cbc58fd48: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/08/39f372adeb1ddc4dee622467e7df2cbc58fd48 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/08/f32598a03b9d0662635894d0aeeafffad949bc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/08/f32598a03b9d0662635894d0aeeafffad949bc -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0a/8478f687b9efa3eabfee03613e1cf448658c1f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0a/8478f687b9efa3eabfee03613e1cf448658c1f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0b/7bb7e5e3266dd5a5e922242ed58972aac8c81f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0b/7bb7e5e3266dd5a5e922242ed58972aac8c81f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0c/21f31fbaed99e8b571918f7e5d6a2fb5bf62e0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0c/21f31fbaed99e8b571918f7e5d6a2fb5bf62e0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0e/1257cea1f99531e26218ae2d64ffe650bfb02d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0e/1257cea1f99531e26218ae2d64ffe650bfb02d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0e/922fc3fe39f1e05232c1fc5d4bdf95282037ee: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0e/922fc3fe39f1e05232c1fc5d4bdf95282037ee -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/0f/6d80bf34846dd57f2e9b40acf0e268b1fd82ce: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/0f/6d80bf34846dd57f2e9b40acf0e268b1fd82ce -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/10/1476a2c2143bc2c6daa197fa5328b86f818fba: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/10/1476a2c2143bc2c6daa197fa5328b86f818fba -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/12/02e9b8b8fabcfd9e2837b2d4a1483d2e1e83c0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/12/02e9b8b8fabcfd9e2837b2d4a1483d2e1e83c0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/13/e1f90e58449c69cc6ada7f8b603986f8817e39: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/13/e1f90e58449c69cc6ada7f8b603986f8817e39 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/14/6f1da8ae86af6465d399147d1244d2583e1584: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/14/6f1da8ae86af6465d399147d1244d2583e1584 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/17/8a48a70b0c04be6fd9909b8a8aca2ec08f4880: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/17/8a48a70b0c04be6fd9909b8a8aca2ec08f4880 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/17/b6dff3a4bf48b6e87af6e5850c6565ef065a67: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/17/b6dff3a4bf48b6e87af6e5850c6565ef065a67 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/19/a8a56a57fe6d4bb4bcf53bdd0ead28a00a6ddd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/19/a8a56a57fe6d4bb4bcf53bdd0ead28a00a6ddd -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1a/023926fb6488be039865238608d888aa26f42e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1a/023926fb6488be039865238608d888aa26f42e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1a/9129d36f0e973bf086a4e03641503f3d153c1d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1a/9129d36f0e973bf086a4e03641503f3d153c1d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1b/028e7c44eafaf7dd7f47ee7c5b93499db1c40b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1b/028e7c44eafaf7dd7f47ee7c5b93499db1c40b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1b/0d8dd8f4f37591bedaccb68061f7a4b3b70e4e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1b/0d8dd8f4f37591bedaccb68061f7a4b3b70e4e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1b/1d86b76ef6f09519ad4beefe83029cf3fdc09b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1b/1d86b76ef6f09519ad4beefe83029cf3fdc09b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1c/0fc55cbaf0de08131fe9a72ebd7aa63f3bce23: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1c/0fc55cbaf0de08131fe9a72ebd7aa63f3bce23 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/1e/52bfbd6057da26d9919c981d44ba9dea22f47a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/1e/52bfbd6057da26d9919c981d44ba9dea22f47a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/20/8203acfe397f9a4ffa55c31f56af9092333f3f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/20/8203acfe397f9a4ffa55c31f56af9092333f3f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/20/9a3cb51bdd7bf557c7d10a633f9b993d86f947: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/20/9a3cb51bdd7bf557c7d10a633f9b993d86f947 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/20/d83aba776759e51f39da69c8689e9fe1e873cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/20/d83aba776759e51f39da69c8689e9fe1e873cc -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/22/868789a51b7767c716aee17018250e700fbbf3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/22/868789a51b7767c716aee17018250e700fbbf3 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/25/93e41c639709fe55a7accbd9635b34daa6f583: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/25/93e41c639709fe55a7accbd9635b34daa6f583 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/25/b3831c9b49d7aba85a03891572f25865aa8273: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/25/b3831c9b49d7aba85a03891572f25865aa8273 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/26/a7cb7661aa8ddddd3002333030534c9a1e17a1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/26/a7cb7661aa8ddddd3002333030534c9a1e17a1 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/27/1063dfdde9fc848f798cb7155eb7dccf96d7ec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/27/1063dfdde9fc848f798cb7155eb7dccf96d7ec -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/2a/7706a351f8e5d65163fa7c871f58d44294311c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/2a/7706a351f8e5d65163fa7c871f58d44294311c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/2c/f7ad14a77149b2d81e94f76a2154588577f207: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/2c/f7ad14a77149b2d81e94f76a2154588577f207 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/2e/bd6de08dbcb0bd3a01da31d524b1e2ba8a8da8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/2e/bd6de08dbcb0bd3a01da31d524b1e2ba8a8da8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/30/f48e54cd46064f7e300234a9a7dbeb781570c4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/30/f48e54cd46064f7e300234a9a7dbeb781570c4 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/32/21230c86fef51420e411baaa51bf91d073f4a7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/32/21230c86fef51420e411baaa51bf91d073f4a7 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/32/2d7c775b06dba4af9d4c50658a844af6286602: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/32/2d7c775b06dba4af9d4c50658a844af6286602 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/32/61c2fdb7e0d7d36ae85d159ba353396b0507e2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/32/61c2fdb7e0d7d36ae85d159ba353396b0507e2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/34/5054d546550508f70697389559f9c71808c52d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/34/5054d546550508f70697389559f9c71808c52d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/35/5c4ead96e6917643749198446e15965ec949e7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/35/5c4ead96e6917643749198446e15965ec949e7 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/37/daf6851dd7e4714187ae8f6095fbe11fb4c50c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/37/daf6851dd7e4714187ae8f6095fbe11fb4c50c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/3b/4eee3e2d63a594a4bef404338c6e50adcf8019: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/3b/4eee3e2d63a594a4bef404338c6e50adcf8019 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/3c/ef099c51990c9334a50919ad777f44205dd7d0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/3c/ef099c51990c9334a50919ad777f44205dd7d0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/3d/2ea167e72b0126fd449f52c9984455689aabb5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/3d/2ea167e72b0126fd449f52c9984455689aabb5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/3d/738ef19e3a2889384abc5f76ad4846856be3f9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/3d/738ef19e3a2889384abc5f76ad4846856be3f9 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/3f/a7bdd36dc0ad5ac1f2fc65f7969d98308253b6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/3f/a7bdd36dc0ad5ac1f2fc65f7969d98308253b6 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/43/e80424d4b2bf9c09b8f5c9be200cd75351ce78: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/43/e80424d4b2bf9c09b8f5c9be200cd75351ce78 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/44/37c498e47b0aaff2f1ad4a68f5bbd5fe6a8eba: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/44/37c498e47b0aaff2f1ad4a68f5bbd5fe6a8eba -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/44/ef2a803a191321958389c46a517a4255116432: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/44/ef2a803a191321958389c46a517a4255116432 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/46/e836bef966b544a8f8b79f319df2b97972aa3d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/46/e836bef966b544a8f8b79f319df2b97972aa3d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/47/2a4f6152e40616850dc443e099680c1b3103cd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/47/2a4f6152e40616850dc443e099680c1b3103cd -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/47/69c5ac3781449a42aa897833129dabc616ca12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/47/69c5ac3781449a42aa897833129dabc616ca12 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/48/9979d4d824408290db4c3473770b9b5fd7765e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/48/9979d4d824408290db4c3473770b9b5fd7765e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/4a/3b619a2575d66d2aa32afa04ff5befe168d5b2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/4a/3b619a2575d66d2aa32afa04ff5befe168d5b2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/4b/9c292d7ac692709a10f5e22533e096a1bd953a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/4b/9c292d7ac692709a10f5e22533e096a1bd953a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/4c/3dadf53b8eb4a80c9e851c0230af1fa4b490b4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/4c/3dadf53b8eb4a80c9e851c0230af1fa4b490b4 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/4d/603f6821fb4938bc6e085daadd2854dac8b4a5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/4d/603f6821fb4938bc6e085daadd2854dac8b4a5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/4e/8fcb5b236d6e8af869b4d5f9082862105d4c28: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/4e/8fcb5b236d6e8af869b4d5f9082862105d4c28 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/50/acc5281cd1fc1fb0f7add0cf4540d366d036fb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/50/acc5281cd1fc1fb0f7add0cf4540d366d036fb -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/51/2b1079eeca338d846d98f9a76770150c6f08ee: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/51/2b1079eeca338d846d98f9a76770150c6f08ee -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/51/a90694d75819ab9b121a3118f4c6a562d712ea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/51/a90694d75819ab9b121a3118f4c6a562d712ea -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/52/a57fd44f65d7169b44d746f9c668894fb2b7ac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/52/a57fd44f65d7169b44d746f9c668894fb2b7ac -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/53/1899ec0e7e3d31e3c7071c99e62187106e39cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/53/1899ec0e7e3d31e3c7071c99e62187106e39cc -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/53/60d5c941009c337ae7bd4af7a54819d0908573: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/53/60d5c941009c337ae7bd4af7a54819d0908573 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/55/80c0bd658f72ead70a9742c4692218cc6130a5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/55/80c0bd658f72ead70a9742c4692218cc6130a5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/55/920f384945f0e14830beb777b7d22b64da8419: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/55/920f384945f0e14830beb777b7d22b64da8419 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/55/9facd0576965624b62503d727165ca12482756: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/55/9facd0576965624b62503d727165ca12482756 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/55/aa9dde0787a5abb390be1c7013a915d99f440d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/55/aa9dde0787a5abb390be1c7013a915d99f440d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/58/28eadae756aceb6952484eef1e3b69551abf52: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/58/28eadae756aceb6952484eef1e3b69551abf52 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/58/2b10ee455a49b3ddd0fdd3eac8a35c7cebf504: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/58/2b10ee455a49b3ddd0fdd3eac8a35c7cebf504 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/58/a91ce7439b6e05960e8f4669324c68856e76fc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/58/a91ce7439b6e05960e8f4669324c68856e76fc -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/5b/5e24b252c9440ce94d00cb32e6caa21d9d3c01: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/5b/5e24b252c9440ce94d00cb32e6caa21d9d3c01 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/5b/dfc9032ebc08216ae51100eaf5558299fcd1b8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/5b/dfc9032ebc08216ae51100eaf5558299fcd1b8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/62/e27112bdc15619d1f4c99607bd542a9e887db3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/62/e27112bdc15619d1f4c99607bd542a9e887db3 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/64/d82bebe3734ca130a922e0ba987b2ba52b1357: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/64/d82bebe3734ca130a922e0ba987b2ba52b1357 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/65/94b41e06d0ba4512a5c30d65fcce4969d5b2cd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/65/94b41e06d0ba4512a5c30d65fcce4969d5b2cd -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/67/69ff356023d988a0532a332d0d47723babd80e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/67/69ff356023d988a0532a332d0d47723babd80e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/67/f48859bc7d89bc1a5bce67880d6627852cf274: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/67/f48859bc7d89bc1a5bce67880d6627852cf274 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/69/30146ed0a6d66d4b42c7d57209f8f83fc611b8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/69/30146ed0a6d66d4b42c7d57209f8f83fc611b8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/69/db2096fce40ec4637df6106194e16cffc25e75: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/69/db2096fce40ec4637df6106194e16cffc25e75 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/6a/7cac0287d2aa8b9ddd4b2d51743ac78285e62b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/6a/7cac0287d2aa8b9ddd4b2d51743ac78285e62b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/6c/79a9247a89813234c7533f1e50f3ecde68873e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/6c/79a9247a89813234c7533f1e50f3ecde68873e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/6d/4d11ca689d2e1a7b0237b6a125c6b677b91100: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/6d/4d11ca689d2e1a7b0237b6a125c6b677b91100 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/6e/2787c3520d356d06e561aed7e381216f125607: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/6e/2787c3520d356d06e561aed7e381216f125607 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/6f/c36d2aadcdc2241a3367261ee40ae0671c5d4f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/6f/c36d2aadcdc2241a3367261ee40ae0671c5d4f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/71/de1423a8698d8198b232b076bde6493180ec98: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/71/de1423a8698d8198b232b076bde6493180ec98 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/72/1135963cf6e1c01be20d36f37dcf6c60c47643: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/72/1135963cf6e1c01be20d36f37dcf6c60c47643 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/73/b37629f5c5edad53ab6fc066636d17bb7a41fa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/73/b37629f5c5edad53ab6fc066636d17bb7a41fa -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/75/6528f0ddaac7ba1ae8500205ec086ee28b231a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/75/6528f0ddaac7ba1ae8500205ec086ee28b231a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/75/e76953ea96c05129bbca37b2d8844940794ca6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/75/e76953ea96c05129bbca37b2d8844940794ca6 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/76/9e430a8986d57a1676188018c9b4bc39cde298: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/76/9e430a8986d57a1676188018c9b4bc39cde298 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/77/a162bf8182c08572e6afe6f3efa53d613519d7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/77/a162bf8182c08572e6afe6f3efa53d613519d7 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/78/c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/78/c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/7a/30a5b4937defa1ca459e57c6316424aced8f36: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/7a/30a5b4937defa1ca459e57c6316424aced8f36 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/7b/293d8421a8ce318d593d684c591678a56278b5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/7b/293d8421a8ce318d593d684c591678a56278b5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/7b/6f6f460f12ee20bb5cfaaaccc9aa10558e4e9c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/7b/6f6f460f12ee20bb5cfaaaccc9aa10558e4e9c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/7f/df196388a4a0f2bb8c02903c209f243b579667: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/7f/df196388a4a0f2bb8c02903c209f243b579667 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/80/910f24937a5dc46e1c7cc227442a8c74099a07: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/80/910f24937a5dc46e1c7cc227442a8c74099a07 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/80/9bcc0142ed01edaa2b6fe724c786799f4b12ea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/80/9bcc0142ed01edaa2b6fe724c786799f4b12ea -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/81/7ebb1dc63225b358845f42f67a7a739e389465: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/81/7ebb1dc63225b358845f42f67a7a739e389465 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/82/feeef1ae0d2eb6e3c7a16922c0fa211720654f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/82/feeef1ae0d2eb6e3c7a16922c0fa211720654f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/83/006341bc1b34926afa359150ab029ffc800e0e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/83/006341bc1b34926afa359150ab029ffc800e0e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/84/1341802e2bf6a13e85bcba05faba7e8a688263: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/84/1341802e2bf6a13e85bcba05faba7e8a688263 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/85/a5a7ec6593f911643abe31253c0e09fa105055: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/85/a5a7ec6593f911643abe31253c0e09fa105055 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/88/a7b24477fd8a7f83ce4166adbd6e4400d5cc5c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/88/a7b24477fd8a7f83ce4166adbd6e4400d5cc5c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8a/b2f5a8e4ff4f75a226d4addfa32220c561c7ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8a/b2f5a8e4ff4f75a226d4addfa32220c561c7ca -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8b/1ce99da63ac56ced09a1e830ffecb119cf9991: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8b/1ce99da63ac56ced09a1e830ffecb119cf9991 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8b/4be6e712a2d54776500b48c1348049e52908c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8b/4be6e712a2d54776500b48c1348049e52908c2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8b/d646bab6fe5e9997e290118f37eb6c9ea76fd7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8b/d646bab6fe5e9997e290118f37eb6c9ea76fd7 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8c/852f1fc5c975714bb21dfc1c95135b03ef865a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8c/852f1fc5c975714bb21dfc1c95135b03ef865a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8d/3a048525fe1e9be32cbf437a8bd9b8f346f1ff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8d/3a048525fe1e9be32cbf437a8bd9b8f346f1ff -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8d/5146e21cd69947fac05c6a34a52e503229faed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8d/5146e21cd69947fac05c6a34a52e503229faed -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8d/893856ba5dc077cdd895b5a44fff6bc397b41b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8d/893856ba5dc077cdd895b5a44fff6bc397b41b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8d/89e98e554f306bca2324bcf10c4168c2ed430c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8d/89e98e554f306bca2324bcf10c4168c2ed430c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/8f/51cf75b0c42198edd730d671edee9a137df21a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/8f/51cf75b0c42198edd730d671edee9a137df21a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/90/a69ddcd9be2371eee3a884b493760d1580ce1c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/90/a69ddcd9be2371eee3a884b493760d1580ce1c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/91/fd29bc2e48e8abc7c104527994401af472c453: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/91/fd29bc2e48e8abc7c104527994401af472c453 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/93/63956c3daec720de3cabaefed6ba6f40fd81c8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/93/63956c3daec720de3cabaefed6ba6f40fd81c8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/94/2818f91e6085efb18114b749540a0359de4607: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/94/2818f91e6085efb18114b749540a0359de4607 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/94/68842c8b6575571e646a5d0d604b4918da3ec8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/94/68842c8b6575571e646a5d0d604b4918da3ec8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/94/f76eb71dcbbba01cfb877a2c3cf61db39e6e7a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/94/f76eb71dcbbba01cfb877a2c3cf61db39e6e7a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/95/6b624a7b20b3ee4eeaac57347e3f4667de49f7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/95/6b624a7b20b3ee4eeaac57347e3f4667de49f7 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/96/5cddef30a8625c4c08718ebf6f56d1b2ce1736: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/96/5cddef30a8625c4c08718ebf6f56d1b2ce1736 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/96/a975fc73f95d1b8e0a2535a70387ea4981c541: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/96/a975fc73f95d1b8e0a2535a70387ea4981c541 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/98/3804c740a5852f4eb8b727ca06aaab09781585: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/98/3804c740a5852f4eb8b727ca06aaab09781585 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/98/4667d7938cad37538d328110bfcc8868557980: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/98/4667d7938cad37538d328110bfcc8868557980 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/98/f5100497f3ab203c9008b6a712b102f84d2dc1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/98/f5100497f3ab203c9008b6a712b102f84d2dc1 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9a/aff1667c19835f17e1e9cea19400d70683ec97: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9a/aff1667c19835f17e1e9cea19400d70683ec97 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9b/2c828e482846ef896bf8aea360a74b950b2e27: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9b/2c828e482846ef896bf8aea360a74b950b2e27 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9b/44c19f24d0bf5f3742ebf02beaaa7340a5f968: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9b/44c19f24d0bf5f3742ebf02beaaa7340a5f968 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9b/937c23445a23f9f2069c60e4bc2af38e42a75a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9b/937c23445a23f9f2069c60e4bc2af38e42a75a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9c/19953bf3bcde43258b788804a8c05aab640ce1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9c/19953bf3bcde43258b788804a8c05aab640ce1 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9c/b2b01128dffa6cf09958c02a18cd64333acf68: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9c/b2b01128dffa6cf09958c02a18cd64333acf68 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/9d/5e53da5bae12646b9b88df9a22302daff20592: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/9d/5e53da5bae12646b9b88df9a22302daff20592 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a0/4e51c90ca8af47c52b58627ab9afad2931b961: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a0/4e51c90ca8af47c52b58627ab9afad2931b961 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a0/a20c518bcd9100472aa60eb86692e19b2f1aa8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a0/a20c518bcd9100472aa60eb86692e19b2f1aa8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a1/336bc1e58f68228c63a493a5c8ac2340187d00: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a1/336bc1e58f68228c63a493a5c8ac2340187d00 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a2/4565581a0744cb6b40596a352f3700fcb0d146: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a2/4565581a0744cb6b40596a352f3700fcb0d146 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a3/427ac70c534edece9c90b1d4e59dd4567ec515: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a3/427ac70c534edece9c90b1d4e59dd4567ec515 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a3/54c903a231fc2128a7d653a16c584cc4c89652: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a3/54c903a231fc2128a7d653a16c584cc4c89652 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a8/06780be183681d3b150a8e48edc5e57aaba28c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a8/06780be183681d3b150a8e48edc5e57aaba28c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a9/257e7802e3576d8b0fb93fd129f09d299b5e1e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a9/257e7802e3576d8b0fb93fd129f09d299b5e1e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/a9/9135140df61df67057dbfae4a72e587d0d9f5c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/a9/9135140df61df67057dbfae4a72e587d0d9f5c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/aa/55e54f1b27c82421b95fea4c3451ec26e8711f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/aa/55e54f1b27c82421b95fea4c3451ec26e8711f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ab/09f7e613ef404439a18808ef81ad6d7b4910ad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ab/09f7e613ef404439a18808ef81ad6d7b4910ad -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ab/eabe5f92e2cf020f30dcdc6e84ec26a0eb5e0b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ab/eabe5f92e2cf020f30dcdc6e84ec26a0eb5e0b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ae/581ff7138039658f1a0ed100c81ae19f5d4ddf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ae/581ff7138039658f1a0ed100c81ae19f5d4ddf -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b1/102f14aa976de9fbcf9c757c32c6d0bae9b31c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b1/102f14aa976de9fbcf9c757c32c6d0bae9b31c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b1/ade4933b3310a8c5db6a58cb4f1b50f4405bdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b1/ade4933b3310a8c5db6a58cb4f1b50f4405bdf -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b3/d0777f7c84c3d571a767edd90fe3bc5359cb23: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b3/d0777f7c84c3d571a767edd90fe3bc5359cb23 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b4/e12e691751de372eee23a9714387a65d237a0c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b4/e12e691751de372eee23a9714387a65d237a0c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b6/6b1bb8fbba8a5167baec4ee2ad62a70da99147: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b6/6b1bb8fbba8a5167baec4ee2ad62a70da99147 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b6/89efb47fd32b9787a688d004301cbf966557e2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b6/89efb47fd32b9787a688d004301cbf966557e2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/b8/8ec61335553298bfa26aea55d278999218c2f3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/b8/8ec61335553298bfa26aea55d278999218c2f3 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ba/a11efc32cba2ba3cbf3f39e9bb6685c236921f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ba/a11efc32cba2ba3cbf3f39e9bb6685c236921f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/bd/072634d85bea324b43f92a336f6f2eca39142b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/bd/072634d85bea324b43f92a336f6f2eca39142b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/bd/24c0f256af88f18c14b9dc64ae2fa7c9e580b2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/bd/24c0f256af88f18c14b9dc64ae2fa7c9e580b2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/be/0940def0f57baab2dcb215623c62b6d836d896: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/be/0940def0f57baab2dcb215623c62b6d836d896 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/be/5249bc272dadd2a3a34d3e151558a21c9a5e29: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/be/5249bc272dadd2a3a34d3e151558a21c9a5e29 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/be/55d942e61ea23f52e5d52e12bdf728436a8797: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/be/55d942e61ea23f52e5d52e12bdf728436a8797 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c1/8ba1836c117c89879a402980bb9fe219bbe358: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c1/8ba1836c117c89879a402980bb9fe219bbe358 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c2/f085b188ad913642f8bfa7738a4883a0bd8d31: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c2/f085b188ad913642f8bfa7738a4883a0bd8d31 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c3/9bbabc512784618da7ff64f07f071c7bc3b198: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c3/9bbabc512784618da7ff64f07f071c7bc3b198 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c4/e55ab7134b3d4a4a1be167ce5ccff63a7757bf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c4/e55ab7134b3d4a4a1be167ce5ccff63a7757bf -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c5/f96df6e29a3e60f63aedcc8479a9c6fde46a79: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c5/f96df6e29a3e60f63aedcc8479a9c6fde46a79 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c6/28c2b59206c1380d2a5afb913d31c2a6b9d1c0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c6/28c2b59206c1380d2a5afb913d31c2a6b9d1c0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c6/310045e3f1c8dec9a894334f0add9e8e087e6e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c6/310045e3f1c8dec9a894334f0add9e8e087e6e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/c9/0cea2e8382c15df650b1df0ad2eecbd0ac94c2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/c9/0cea2e8382c15df650b1df0ad2eecbd0ac94c2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/cc/4695b5ce9def1a0d4633e1d68af01550f6821d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/cc/4695b5ce9def1a0d4633e1d68af01550f6821d -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ce/4a229892f236fe6e375031a1c4247d92e6a80e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ce/4a229892f236fe6e375031a1c4247d92e6a80e -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/d2/f59287e46f47fe291d5d986d3120716d04d024: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/d2/f59287e46f47fe291d5d986d3120716d04d024 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/d3/7c5076f0f34cf41753bee80fede8d86736caf0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/d3/7c5076f0f34cf41753bee80fede8d86736caf0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/d5/27d675517e7de5e406697738156878b8f723a0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/d5/27d675517e7de5e406697738156878b8f723a0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/d6/394e1143ac02a07eae27a34bdea073a86d872b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/d6/394e1143ac02a07eae27a34bdea073a86d872b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/d9/50df569b090446d5a89344d1ff1530cf33fcb3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/d9/50df569b090446d5a89344d1ff1530cf33fcb3 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/da/22edb44321de786199ee81b172a6913573c426: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/da/22edb44321de786199ee81b172a6913573c426 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/da/e80598a91104abdb87eb215935ee4477e11473: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/da/e80598a91104abdb87eb215935ee4477e11473 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/db/2586a2f9520428a66f27b04b7c5981cda9c738: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/db/2586a2f9520428a66f27b04b7c5981cda9c738 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/db/9f2710cb6419ab562be08c1bd3486d1a91548f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/db/9f2710cb6419ab562be08c1bd3486d1a91548f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/df/b79dd443ae4994e2d0b01c9747ba6f575df47f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/df/b79dd443ae4994e2d0b01c9747ba6f575df47f -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e0/390e266a7a0f2b080862aaeb22ba43ae8c0b32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e0/390e266a7a0f2b080862aaeb22ba43ae8c0b32 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e1/756daf4c9333b0dbda990bed047a43177b52b5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e1/756daf4c9333b0dbda990bed047a43177b52b5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e3/5527574f0ff97e54b51266039dab1be2fbf88c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e3/5527574f0ff97e54b51266039dab1be2fbf88c -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e5/ec5e9ddf8ba636967cbdbe573fc26fd84d2456: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e5/ec5e9ddf8ba636967cbdbe573fc26fd84d2456 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e5/efa0985bb0e594119ad2166a6ce7b01a1c2752: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e5/efa0985bb0e594119ad2166a6ce7b01a1c2752 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e7/1709bec541e993212fbe7a1dfd09ec0025534b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e7/1709bec541e993212fbe7a1dfd09ec0025534b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/e8/ab48a0afacf73c936ee2c6c186ae48da7cdc3b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/e8/ab48a0afacf73c936ee2c6c186ae48da7cdc3b -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/eb/a4462460fe034ac658d2a68420bdb6331afdcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/eb/a4462460fe034ac658d2a68420bdb6331afdcf -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ec/1c487270c0c8abfef90a9ff0e6f33983ff431a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ec/1c487270c0c8abfef90a9ff0e6f33983ff431a -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ed/f046c5b9e59627d53d8453928e19e4488f66d0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ed/f046c5b9e59627d53d8453928e19e4488f66d0 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ee/c1adc18285ab2fb29c0cbdc8a219c7b7b45d66: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ee/c1adc18285ab2fb29c0cbdc8a219c7b7b45d66 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/ef/69f32d19213f09ba25bf05e28591fb5b787bb2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/ef/69f32d19213f09ba25bf05e28591fb5b787bb2 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f0/b6fb50fe3c4bf5a6b8be87564a15f81454f6fb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f0/b6fb50fe3c4bf5a6b8be87564a15f81454f6fb -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f2/73320cb9a1e467ab8b29d206604a2d5e79b5aa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f2/73320cb9a1e467ab8b29d206604a2d5e79b5aa -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f3/1627c13d1e7aa8b38163db64dfe2940f2f3487: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f3/1627c13d1e7aa8b38163db64dfe2940f2f3487 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f4/dfde7a7a9810d03a7ee27c969382d3086b96b8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f4/dfde7a7a9810d03a7ee27c969382d3086b96b8 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f5/23d2138d7cd6f0974ce211f208f9a4ad7a2f57: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f5/23d2138d7cd6f0974ce211f208f9a4ad7a2f57 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f5/622bfd168f47794e972a3beee8ef5a06fa3fe5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f5/622bfd168f47794e972a3beee8ef5a06fa3fe5 -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/f7/dae93660792a65143c558fac63c1c96eb05629: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/f7/dae93660792a65143c558fac63c1c96eb05629 -------------------------------------------------------------------------------- /t/repos/one/git/objects/65/4408254694bf61b6f8e4488f6946a06a101866: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/objects/65/4408254694bf61b6f8e4488f6946a06a101866 -------------------------------------------------------------------------------- /t/repos/one/git/objects/db/5f4db195a2c06410c8a740c5e1a5d55353b58e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/objects/db/5f4db195a2c06410c8a740c5e1a5d55353b58e -------------------------------------------------------------------------------- /t/repos/one/git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/one/git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/1a/041fb689a22976a7e1c6e52c3c975486770abf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/1a/041fb689a22976a7e1c6e52c3c975486770abf -------------------------------------------------------------------------------- /t/repos/refs/git/objects/65/4408254694bf61b6f8e4488f6946a06a101866: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/65/4408254694bf61b6f8e4488f6946a06a101866 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/68/d344405f84bd0aec586c00258a582a2ba4c481: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/68/d344405f84bd0aec586c00258a582a2ba4c481 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/78/c6baefdd2d13b3080b53d794e90471df3c4bf2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/78/c6baefdd2d13b3080b53d794e90471df3c4bf2 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/9d/e59db095a38f2fab6c718b38fec36f206ca4db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/9d/e59db095a38f2fab6c718b38fec36f206ca4db -------------------------------------------------------------------------------- /t/repos/refs/git/objects/a8/e6371cac5e8c71910cdf9cea932b6862a4fa2f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/a8/e6371cac5e8c71910cdf9cea932b6862a4fa2f -------------------------------------------------------------------------------- /t/repos/refs/git/objects/c0/f5337fb674e4f484c2cc9997f071a7d72a85fe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/c0/f5337fb674e4f484c2cc9997f071a7d72a85fe -------------------------------------------------------------------------------- /t/repos/refs/git/objects/db/d050be79ea66c6a1092b37ec297a76006e7d37: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/db/d050be79ea66c6a1092b37ec297a76006e7d37 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 -------------------------------------------------------------------------------- /t/repos/refs/git/objects/f3/3dfa25aa16a97ca941fe1d9cabdc3689179f3f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/refs/git/objects/f3/3dfa25aa16a97ca941fe1d9cabdc3689179f3f -------------------------------------------------------------------------------- /t/repos/test/git/objects/05/2f22b87ea2bd5b9c104587b752da6fc5c87ab0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/05/2f22b87ea2bd5b9c104587b752da6fc5c87ab0 -------------------------------------------------------------------------------- /t/repos/test/git/objects/07/5b4f2f4542e9d3c3b2bcf7579c423a42b033f8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/07/5b4f2f4542e9d3c3b2bcf7579c423a42b033f8 -------------------------------------------------------------------------------- /t/repos/test/git/objects/07/c96ce6012e59063f48ef8f81785af14922be29: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/07/c96ce6012e59063f48ef8f81785af14922be29 -------------------------------------------------------------------------------- /t/repos/test/git/objects/0b/c3ee2b19fdb94d3a9863b2c6b4b6ee038ab205: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/0b/c3ee2b19fdb94d3a9863b2c6b4b6ee038ab205 -------------------------------------------------------------------------------- /t/repos/test/git/objects/10/1acc4dc79bf39a240187170b4e11aebf6f302a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/10/1acc4dc79bf39a240187170b4e11aebf6f302a -------------------------------------------------------------------------------- /t/repos/test/git/objects/12/e893709fb581f1b4dbb85103d1938181b39a37: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/12/e893709fb581f1b4dbb85103d1938181b39a37 -------------------------------------------------------------------------------- /t/repos/test/git/objects/15/c4355198fad4e78127df244da9371984116579: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/15/c4355198fad4e78127df244da9371984116579 -------------------------------------------------------------------------------- /t/repos/test/git/objects/17/e5f5df236a7450f0859943b7c7e9316184ebb1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/17/e5f5df236a7450f0859943b7c7e9316184ebb1 -------------------------------------------------------------------------------- /t/repos/test/git/objects/1d/eea6545e35f1dcf54455dc6e80b939109d2206: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/1d/eea6545e35f1dcf54455dc6e80b939109d2206 -------------------------------------------------------------------------------- /t/repos/test/git/objects/1e/5c8768316e446fbf50ae66eeabd5960c167559: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/1e/5c8768316e446fbf50ae66eeabd5960c167559 -------------------------------------------------------------------------------- /t/repos/test/git/objects/20/9445e82997ff96c64d8817fa5c4c136ada5ff5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/20/9445e82997ff96c64d8817fa5c4c136ada5ff5 -------------------------------------------------------------------------------- /t/repos/test/git/objects/24/03f2e42ccac54dfe14b453f3c61bcc0efbb5f3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/24/03f2e42ccac54dfe14b453f3c61bcc0efbb5f3 -------------------------------------------------------------------------------- /t/repos/test/git/objects/2b/094b03a0f43acca1cb9543c0249296ec764464: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/2b/094b03a0f43acca1cb9543c0249296ec764464 -------------------------------------------------------------------------------- /t/repos/test/git/objects/2d/d5f5ac82622766b2f8d69ae42a3d9264bcd226: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/2d/d5f5ac82622766b2f8d69ae42a3d9264bcd226 -------------------------------------------------------------------------------- /t/repos/test/git/objects/39/5ca57921c9367a0622c49be15a53293df6ccbd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/39/5ca57921c9367a0622c49be15a53293df6ccbd -------------------------------------------------------------------------------- /t/repos/test/git/objects/39/ef1c7d1878e6c4f3f3fb926aac7e756ddac5c5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/39/ef1c7d1878e6c4f3f3fb926aac7e756ddac5c5 -------------------------------------------------------------------------------- /t/repos/test/git/objects/3a/5a1de8127750a53003f781a0f2fa345210c0db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/3a/5a1de8127750a53003f781a0f2fa345210c0db -------------------------------------------------------------------------------- /t/repos/test/git/objects/44/8977393660f4a3a6157780a6a551019cf033d9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/44/8977393660f4a3a6157780a6a551019cf033d9 -------------------------------------------------------------------------------- /t/repos/test/git/objects/44/8a07d1fca5b6377ad779f54818ccb676b3c7fc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/44/8a07d1fca5b6377ad779f54818ccb676b3c7fc -------------------------------------------------------------------------------- /t/repos/test/git/objects/45/34b7fc37ddecff9f0232e88cc5bf1b8d518bce: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/45/34b7fc37ddecff9f0232e88cc5bf1b8d518bce -------------------------------------------------------------------------------- /t/repos/test/git/objects/4c/2aad83c4ded40653d080256e24030ecb9e8255: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/4c/2aad83c4ded40653d080256e24030ecb9e8255 -------------------------------------------------------------------------------- /t/repos/test/git/objects/4f/5c06c67554174c525b7628615d7b2b141dd33d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/4f/5c06c67554174c525b7628615d7b2b141dd33d -------------------------------------------------------------------------------- /t/repos/test/git/objects/51/f959558513b503fce2e19f15877c061c870656: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/51/f959558513b503fce2e19f15877c061c870656 -------------------------------------------------------------------------------- /t/repos/test/git/objects/52/3be5d95e5a861aa1eaaa66ab964e3dd8f46892: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/52/3be5d95e5a861aa1eaaa66ab964e3dd8f46892 -------------------------------------------------------------------------------- /t/repos/test/git/objects/53/9c3f1a39d967385764c49f11a047649d7b0d21: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/53/9c3f1a39d967385764c49f11a047649d7b0d21 -------------------------------------------------------------------------------- /t/repos/test/git/objects/53/9f421b94a25f9d32a1d3a4118c7ca170876c18: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/53/9f421b94a25f9d32a1d3a4118c7ca170876c18 -------------------------------------------------------------------------------- /t/repos/test/git/objects/55/9a710a3ca972cbea225aaf853979762939a6aa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/55/9a710a3ca972cbea225aaf853979762939a6aa -------------------------------------------------------------------------------- /t/repos/test/git/objects/55/d990c7d396f7c2bb2a0dcbc68f93507155d86b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/55/d990c7d396f7c2bb2a0dcbc68f93507155d86b -------------------------------------------------------------------------------- /t/repos/test/git/objects/57/bb69c3f7d14b38a5aa0401d61774c007dc017c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/57/bb69c3f7d14b38a5aa0401d61774c007dc017c -------------------------------------------------------------------------------- /t/repos/test/git/objects/58/ec8d013b75390923ad15ca93b76d2b1c87bab1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/58/ec8d013b75390923ad15ca93b76d2b1c87bab1 -------------------------------------------------------------------------------- /t/repos/test/git/objects/59/40f3b1a1c82294ea26f746ab9a8492d7f902de: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/59/40f3b1a1c82294ea26f746ab9a8492d7f902de -------------------------------------------------------------------------------- /t/repos/test/git/objects/59/baa52d1417c3ae267bb6c410552fb1903cf5cb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/59/baa52d1417c3ae267bb6c410552fb1903cf5cb -------------------------------------------------------------------------------- /t/repos/test/git/objects/5e/ec9f811f38c19fdb8f3f710ae50c24e2431ff1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/5e/ec9f811f38c19fdb8f3f710ae50c24e2431ff1 -------------------------------------------------------------------------------- /t/repos/test/git/objects/66/dd3965eaa09adef5a1005f780b21064b06b266: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/66/dd3965eaa09adef5a1005f780b21064b06b266 -------------------------------------------------------------------------------- /t/repos/test/git/objects/67/0a04a722e477716678071ff671ded756db041d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/67/0a04a722e477716678071ff671ded756db041d -------------------------------------------------------------------------------- /t/repos/test/git/objects/68/d344405f84bd0aec586c00258a582a2ba4c481: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/68/d344405f84bd0aec586c00258a582a2ba4c481 -------------------------------------------------------------------------------- /t/repos/test/git/objects/6f/35b25a164ab731317638f7024ac1b577705790: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/6f/35b25a164ab731317638f7024ac1b577705790 -------------------------------------------------------------------------------- /t/repos/test/git/objects/6f/d642f7bf4484fd832a45c68968421a1599776d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/6f/d642f7bf4484fd832a45c68968421a1599776d -------------------------------------------------------------------------------- /t/repos/test/git/objects/74/3dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/74/3dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 -------------------------------------------------------------------------------- /t/repos/test/git/objects/74/8a447166848bcbb1bddba57034b56bde471262: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/74/8a447166848bcbb1bddba57034b56bde471262 -------------------------------------------------------------------------------- /t/repos/test/git/objects/74/c3132766b287216b882df887d560f5f960e892: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/74/c3132766b287216b882df887d560f5f960e892 -------------------------------------------------------------------------------- /t/repos/test/git/objects/76/a3a5bf8ed823bda9669bb91d967accd225383c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/76/a3a5bf8ed823bda9669bb91d967accd225383c -------------------------------------------------------------------------------- /t/repos/test/git/objects/78/c6baefdd2d13b3080b53d794e90471df3c4bf2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/78/c6baefdd2d13b3080b53d794e90471df3c4bf2 -------------------------------------------------------------------------------- /t/repos/test/git/objects/7a/9e50e3ced5db58904f6f6de80f4d99d61adde1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/7a/9e50e3ced5db58904f6f6de80f4d99d61adde1 -------------------------------------------------------------------------------- /t/repos/test/git/objects/83/767a7dad0aca02a0955b6a5a749c708ae16f19: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/83/767a7dad0aca02a0955b6a5a749c708ae16f19 -------------------------------------------------------------------------------- /t/repos/test/git/objects/88/1b6c08caa9bd768405530f74d33b973d6c87bc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/88/1b6c08caa9bd768405530f74d33b973d6c87bc -------------------------------------------------------------------------------- /t/repos/test/git/objects/98/cef508ff4c023cfba5426fba70f0b331692f8f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/98/cef508ff4c023cfba5426fba70f0b331692f8f -------------------------------------------------------------------------------- /t/repos/test/git/objects/9c/de38f98ec92232fb239f26f1da7e6595a8bae2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/9c/de38f98ec92232fb239f26f1da7e6595a8bae2 -------------------------------------------------------------------------------- /t/repos/test/git/objects/9c/e8e543c27ba51721530f8c5c67f6820bb23d39: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/9c/e8e543c27ba51721530f8c5c67f6820bb23d39 -------------------------------------------------------------------------------- /t/repos/test/git/objects/9f/bf0209a63ecc15d5c3f7c1eb0ecea42da0c383: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/9f/bf0209a63ecc15d5c3f7c1eb0ecea42da0c383 -------------------------------------------------------------------------------- /t/repos/test/git/objects/a1/96ddea88bf564af5029f0561881f3fc55e7714: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/a1/96ddea88bf564af5029f0561881f3fc55e7714 -------------------------------------------------------------------------------- /t/repos/test/git/objects/a3/7f04fd7565cefff5e4b9de27212b847fd9831c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/a3/7f04fd7565cefff5e4b9de27212b847fd9831c -------------------------------------------------------------------------------- /t/repos/test/git/objects/a6/068e7a6db24a1651c3842054dc5bbfac2deed7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/a6/068e7a6db24a1651c3842054dc5bbfac2deed7 -------------------------------------------------------------------------------- /t/repos/test/git/objects/aa/a839f3cc5858ad73ce818876d9779e352020f9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/aa/a839f3cc5858ad73ce818876d9779e352020f9 -------------------------------------------------------------------------------- /t/repos/test/git/objects/b0/521bb5ff641de75a110b181c80617ef5f9c7c8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/b0/521bb5ff641de75a110b181c80617ef5f9c7c8 -------------------------------------------------------------------------------- /t/repos/test/git/objects/b2/717245cd2c95bd920db1d8c24ade2fdf590fa8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/b2/717245cd2c95bd920db1d8c24ade2fdf590fa8 -------------------------------------------------------------------------------- /t/repos/test/git/objects/b8/4068e6d6b1b96f7fa1dd797752bd340328da97: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/b8/4068e6d6b1b96f7fa1dd797752bd340328da97 -------------------------------------------------------------------------------- /t/repos/test/git/objects/be/a74b822c56104695c81b8b4178a26d1465b516: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/be/a74b822c56104695c81b8b4178a26d1465b516 -------------------------------------------------------------------------------- /t/repos/test/git/objects/c2/8feefe74e1db6e4959a226ed57993c5b1f163e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/c2/8feefe74e1db6e4959a226ed57993c5b1f163e -------------------------------------------------------------------------------- /t/repos/test/git/objects/c3/258fa11987adb8dbe995edbc101309d04f61fc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/c3/258fa11987adb8dbe995edbc101309d04f61fc -------------------------------------------------------------------------------- /t/repos/test/git/objects/c5/08f7d7f1d03cfba1475ff2f40e233edb652d0d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/c5/08f7d7f1d03cfba1475ff2f40e233edb652d0d -------------------------------------------------------------------------------- /t/repos/test/git/objects/c7/a8af4ab6dca9a70792109cced2b794542db977: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/c7/a8af4ab6dca9a70792109cced2b794542db977 -------------------------------------------------------------------------------- /t/repos/test/git/objects/c9/473ddec7109e046eefefbeb70ffff0838a55c9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/c9/473ddec7109e046eefefbeb70ffff0838a55c9 -------------------------------------------------------------------------------- /t/repos/test/git/objects/cf/1b70e900873deb48dd1077851997dfcb1cf568: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/cf/1b70e900873deb48dd1077851997dfcb1cf568 -------------------------------------------------------------------------------- /t/repos/test/git/objects/d5/3a03a41ea7dd6633c560c82fbc129f1dcd3fb8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/d5/3a03a41ea7dd6633c560c82fbc129f1dcd3fb8 -------------------------------------------------------------------------------- /t/repos/test/git/objects/d5/6e6caa7d1eb72d4d8d2137c3241af6a1c9b7fa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/d5/6e6caa7d1eb72d4d8d2137c3241af6a1c9b7fa -------------------------------------------------------------------------------- /t/repos/test/git/objects/d9/fb86e8f81357858bf15f206d213461be8a813d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/d9/fb86e8f81357858bf15f206d213461be8a813d -------------------------------------------------------------------------------- /t/repos/test/git/objects/db/d050be79ea66c6a1092b37ec297a76006e7d37: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/db/d050be79ea66c6a1092b37ec297a76006e7d37 -------------------------------------------------------------------------------- /t/repos/test/git/objects/e1/2024bcf30b3aafbc6748c54b217b88c5214cef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/e1/2024bcf30b3aafbc6748c54b217b88c5214cef -------------------------------------------------------------------------------- /t/repos/test/git/objects/e1/4df11fae8224f76bcc42d2ca0a67e5f427a99d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/e1/4df11fae8224f76bcc42d2ca0a67e5f427a99d -------------------------------------------------------------------------------- /t/repos/test/git/objects/e1/7266c9a4689bfa10133bc9f534184c11f5d5e9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/e1/7266c9a4689bfa10133bc9f534184c11f5d5e9 -------------------------------------------------------------------------------- /t/repos/test/git/objects/e4/b1426f1e20feb8a28fe3bdfcc3b156cf726f10: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/e4/b1426f1e20feb8a28fe3bdfcc3b156cf726f10 -------------------------------------------------------------------------------- /t/repos/test/git/objects/e9/aeb08a5222931f5a6c7322d732f08ff5d44fbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/e9/aeb08a5222931f5a6c7322d732f08ff5d44fbc -------------------------------------------------------------------------------- /t/repos/test/git/objects/f2/060863e647303a378dcf9207f268196aa606eb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/f2/060863e647303a378dcf9207f268196aa606eb -------------------------------------------------------------------------------- /t/repos/test/git/objects/f3/3dfa25aa16a97ca941fe1d9cabdc3689179f3f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/f3/3dfa25aa16a97ca941fe1d9cabdc3689179f3f -------------------------------------------------------------------------------- /t/repos/test/git/objects/f4/794b88df197d06c64a8a229968955ed561c68d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/f4/794b88df197d06c64a8a229968955ed561c68d -------------------------------------------------------------------------------- /t/repos/test/git/objects/f7/f679b677d3b4c06bb4b625c87e02ab28a7d356: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/test/git/objects/f7/f679b677d3b4c06bb4b625c87e02ab28a7d356 -------------------------------------------------------------------------------- /t/repos/one/git/logs/HEAD: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 db5f4db195a2c06410c8a740c5e1a5d55353b58e Christian Walde 1306739057 +0200 commit (initial): init 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/andya/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843511 +0200 fetch --append andya: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/jozef/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843513 +0200 fetch --append jozef: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/andya/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d unknown 1304843511 +0200 fetch --append andya: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/frodwith/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843518 +0200 fetch --append frodwith: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/jonallen/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843521 +0200 fetch --append jonallen: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/jozef/daily: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 a9257e7802e3576d8b0fb93fd129f09d299b5e1e unknown 1304843513 +0200 fetch --append jozef: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/jozef/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 be0940def0f57baab2dcb215623c62b6d836d896 unknown 1304843513 +0200 fetch --append jozef: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/mlanier/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843515 +0200 fetch --append mlanier: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/sukria/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843517 +0200 fetch --append sukria: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/sukria/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 3d2ea167e72b0126fd449f52c9984455689aabb5 unknown 1304843517 +0200 fetch --append sukria: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/pack/pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/pack/pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.idx -------------------------------------------------------------------------------- /t/repos/one/git/logs/refs/heads/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 db5f4db195a2c06410c8a740c5e1a5d55353b58e Christian Walde 1306739057 +0200 commit (initial): init 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = false 4 | bare = false 5 | logallrefupdates = true 6 | symlinks = false 7 | ignorecase = true 8 | hideDotFiles = dotGitOnly 9 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/briandfoy/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843510 +0200 fetch --append briandfoy: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/frodwith/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 ce4a229892f236fe6e375031a1c4247d92e6a80e unknown 1304843518 +0200 fetch --append frodwith: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/jonallen/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 9468842c8b6575571e646a5d0d604b4918da3ec8 unknown 1304843521 +0200 fetch --append jonallen: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/mlanier/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 559facd0576965624b62503d727165ca12482756 unknown 1304843515 +0200 fetch --append mlanier: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/objects/pack/pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wchristian/git-garden/HEAD/t/repos/cmi/git/objects/pack/pack-97401ea99e59a8147ff092bd8e8a63e2f129874c.pack -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/cybersiddhu/bdf: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 unknown 1304843523 +0200 fetch --append cybersiddhu: storing head 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/post-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script that is called after a successful 4 | # commit is made. 5 | # 6 | # To enable this hook, rename this file to "post-commit". 7 | 8 | : Nothing 9 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/post-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script that is called after a successful 4 | # commit is made. 5 | # 6 | # To enable this hook, rename this file to "post-commit". 7 | 8 | : Nothing 9 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/post-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script that is called after a successful 4 | # commit is made. 5 | # 6 | # To enable this hook, rename this file to "post-commit". 7 | 8 | : Nothing 9 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/post-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script that is called after a successful 4 | # commit is made. 5 | # 6 | # To enable this hook, rename this file to "post-commit". 7 | 8 | : Nothing 9 | -------------------------------------------------------------------------------- /t/repos/refs/git/logs/refs/heads/dfg: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307028657 +0200 branch: Created from c0f5337fb674e4f484c2cc9997f071a7d72a85fe 2 | -------------------------------------------------------------------------------- /t/repos/refs/git/logs/refs/heads/moo: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 a8e6371cac5e8c71910cdf9cea932b6862a4fa2f Christian Walde 1307027212 +0200 branch: Created from a8e6371cac5e8c71910cdf9cea932b6862a4fa2f 2 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/post-update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare a packed repository for use over 4 | # dumb transports. 5 | # 6 | # To enable this hook, rename this file to "post-update". 7 | 8 | exec git update-server-info 9 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/post-update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare a packed repository for use over 4 | # dumb transports. 5 | # 6 | # To enable this hook, rename this file to "post-update". 7 | 8 | exec git update-server-info 9 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/post-update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare a packed repository for use over 4 | # dumb transports. 5 | # 6 | # To enable this hook, rename this file to "post-update". 7 | 8 | exec git update-server-info 9 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/post-update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare a packed repository for use over 4 | # dumb transports. 5 | # 6 | # To enable this hook, rename this file to "post-update". 7 | 8 | exec git update-server-info 9 | -------------------------------------------------------------------------------- /t/repos/cmi/git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /t/repos/one/git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = false 4 | bare = false 5 | logallrefupdates = true 6 | symlinks = false 7 | ignorecase = true 8 | hideDotFiles = dotGitOnly 9 | [gui] 10 | wmstate = normal 11 | geometry = 787x377+66+66 152 169 12 | -------------------------------------------------------------------------------- /t/repos/one/git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /t/repos/refs/git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /t/repos/test/git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /t/repos/test/git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = false 4 | bare = false 5 | logallrefupdates = true 6 | symlinks = false 7 | ignorecase = true 8 | hideDotFiles = dotGitOnly 9 | [gui] 10 | wmstate = zoomed 11 | geometry = 787x377+110+110 152 169 12 | -------------------------------------------------------------------------------- /t/repos/cmi/git/packed-refs: -------------------------------------------------------------------------------- 1 | # pack-refs with: peeled 2 | 4d51eeeaada5e86241101220f71465a8978e7273 refs/tags/0.27 3 | 11597388d93458ca26ab3393f710968238f570d6 refs/tags/0.26 4 | e0c1ce1e1e9199144de5439edf023d0b58e1f8c8 refs/tags/0.25 5 | 4e19022c2aa16d259b827a3e38dd8507a478bf1c refs/tags/0.24 6 | ^bbb0a7b0548664f3a7399e926a934a6f7d71c914 7 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d refs/remotes/origin/master 8 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 refs/remotes/origin/bdf 9 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/pre-applypatch.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed 4 | # by applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. 8 | # 9 | # To enable this hook, rename this file to "pre-applypatch". 10 | 11 | . git-sh-setup 12 | test -x "$GIT_DIR/hooks/pre-commit" && 13 | exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} 14 | : 15 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/pre-applypatch.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed 4 | # by applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. 8 | # 9 | # To enable this hook, rename this file to "pre-applypatch". 10 | 11 | . git-sh-setup 12 | test -x "$GIT_DIR/hooks/pre-commit" && 13 | exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} 14 | : 15 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/pre-applypatch.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed 4 | # by applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. 8 | # 9 | # To enable this hook, rename this file to "pre-applypatch". 10 | 11 | . git-sh-setup 12 | test -x "$GIT_DIR/hooks/pre-commit" && 13 | exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} 14 | : 15 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/pre-applypatch.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed 4 | # by applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. 8 | # 9 | # To enable this hook, rename this file to "pre-applypatch". 10 | 11 | . git-sh-setup 12 | test -x "$GIT_DIR/hooks/pre-commit" && 13 | exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} 14 | : 15 | -------------------------------------------------------------------------------- /t/repos/refs/git/logs/refs/heads/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027039 +0200 commit (initial): init 2 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe a8e6371cac5e8c71910cdf9cea932b6862a4fa2f Christian Walde 1307027183 +0200 commit: test 3 | a8e6371cac5e8c71910cdf9cea932b6862a4fa2f 9de59db095a38f2fab6c718b38fec36f206ca4db Christian Walde 1307027246 +0200 commit: test 4 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/applypatch-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message taken by 4 | # applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. The hook is 8 | # allowed to edit the commit message file. 9 | # 10 | # To enable this hook, rename this file to "applypatch-msg". 11 | 12 | . git-sh-setup 13 | test -x "$GIT_DIR/hooks/commit-msg" && 14 | exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} 15 | : 16 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/applypatch-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message taken by 4 | # applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. The hook is 8 | # allowed to edit the commit message file. 9 | # 10 | # To enable this hook, rename this file to "applypatch-msg". 11 | 12 | . git-sh-setup 13 | test -x "$GIT_DIR/hooks/commit-msg" && 14 | exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} 15 | : 16 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/applypatch-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message taken by 4 | # applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. The hook is 8 | # allowed to edit the commit message file. 9 | # 10 | # To enable this hook, rename this file to "applypatch-msg". 11 | 12 | . git-sh-setup 13 | test -x "$GIT_DIR/hooks/commit-msg" && 14 | exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} 15 | : 16 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/applypatch-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message taken by 4 | # applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. The hook is 8 | # allowed to edit the commit message file. 9 | # 10 | # To enable this hook, rename this file to "applypatch-msg". 11 | 12 | . git-sh-setup 13 | test -x "$GIT_DIR/hooks/commit-msg" && 14 | exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} 15 | : 16 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/post-receive.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script for the "post-receive" event. 4 | # 5 | # The "post-receive" script is run after receive-pack has accepted a pack 6 | # and the repository has been updated. It is passed arguments in through 7 | # stdin in the form 8 | # 9 | # For example: 10 | # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master 11 | # 12 | # see contrib/hooks/ for a sample, or uncomment the next line and 13 | # rename the file to "post-receive". 14 | 15 | #. /usr/share/doc/git-core/contrib/hooks/post-receive-email 16 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/post-receive.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script for the "post-receive" event. 4 | # 5 | # The "post-receive" script is run after receive-pack has accepted a pack 6 | # and the repository has been updated. It is passed arguments in through 7 | # stdin in the form 8 | # 9 | # For example: 10 | # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master 11 | # 12 | # see contrib/hooks/ for a sample, or uncomment the next line and 13 | # rename the file to "post-receive". 14 | 15 | #. /usr/share/doc/git-core/contrib/hooks/post-receive-email 16 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/post-receive.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script for the "post-receive" event. 4 | # 5 | # The "post-receive" script is run after receive-pack has accepted a pack 6 | # and the repository has been updated. It is passed arguments in through 7 | # stdin in the form 8 | # 9 | # For example: 10 | # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master 11 | # 12 | # see contrib/hooks/ for a sample, or uncomment the next line and 13 | # rename the file to "post-receive". 14 | 15 | #. /usr/share/doc/git-core/contrib/hooks/post-receive-email 16 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/post-receive.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script for the "post-receive" event. 4 | # 5 | # The "post-receive" script is run after receive-pack has accepted a pack 6 | # and the repository has been updated. It is passed arguments in through 7 | # stdin in the form 8 | # 9 | # For example: 10 | # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master 11 | # 12 | # see contrib/hooks/ for a sample, or uncomment the next line and 13 | # rename the file to "post-receive". 14 | 15 | #. /usr/share/doc/git-core/contrib/hooks/post-receive-email 16 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/remotes/origin/master: -------------------------------------------------------------------------------- 1 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d be5249bc272dadd2a3a34d3e151558a21c9a5e29 Christian Walde 1304843652 +0200 update by push 2 | be5249bc272dadd2a3a34d3e151558a21c9a5e29 50acc5281cd1fc1fb0f7add0cf4540d366d036fb Christian Walde 1304845596 +0200 update by push 3 | 50acc5281cd1fc1fb0f7add0cf4540d366d036fb 83006341bc1b34926afa359150ab029ffc800e0e Christian Walde 1305058434 +0200 update by push 4 | 83006341bc1b34926afa359150ab029ffc800e0e 0384e3f1e3f8f5a33294133e7dc241db127605bf Christian Walde 1305480277 +0200 update by push 5 | -------------------------------------------------------------------------------- /lib/Git/Garden/Render/graphviz.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Render::graphviz; 5 | 6 | # ABSTRACT: plot a Git::Garden grid with GraphViz 7 | 8 | =head1 SYNOPSIS 9 | 10 | use Git::Garden::Render::graphviz; 11 | my $png = Git::Garden::Render::graphviz->plot_grid( $grid ); 12 | 13 | =cut 14 | 15 | use GraphViz; 16 | 17 | sub plot_grid { 18 | my ( $self, $grid ) = @_; 19 | 20 | my $g = GraphViz->new( edge => { dir => 'back' } ); 21 | 22 | $g->add_node( $_->{commit}{uid} ) for @{$grid}; 23 | 24 | for my $row ( @{$grid} ) { 25 | $g->add_edge( $row->{commit}{uid} => $_->{uid} ) for @{ $row->{commit}{parents} }; 26 | } 27 | 28 | return $g->as_png; 29 | } 30 | 31 | 1; 32 | -------------------------------------------------------------------------------- /t/repos/refs/git/logs/refs/heads/blargh: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027570 +0200 branch: Created from c0f5337fb674e4f484c2cc9997f071a7d72a85fe 2 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 9de59db095a38f2fab6c718b38fec36f206ca4db Christian Walde 1307027584 +0200 merge 9de59db095a38f2fab6c718b38fec36f206ca4db: Fast-forward 3 | 9de59db095a38f2fab6c718b38fec36f206ca4db c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027592 +0200 c0f5337fb674e4f484c2cc9997f071a7d72a85fe: updating HEAD 4 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 1a041fb689a22976a7e1c6e52c3c975486770abf Christian Walde 1307027598 +0200 merge 9de59db095a38f2fab6c718b38fec36f206ca4db: Merge made by recursive. 5 | -------------------------------------------------------------------------------- /t/repos/test/git/logs/refs/heads/daily: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 e9aeb08a5222931f5a6c7322d732f08ff5d44fbc Christian Walde 1307040597 +0200 branch: Created from e9aeb08a5222931f5a6c7322d732f08ff5d44fbc 2 | e9aeb08a5222931f5a6c7322d732f08ff5d44fbc aaa839f3cc5858ad73ce818876d9779e352020f9 Christian Walde 1307040651 +0200 commit: 1 3 | aaa839f3cc5858ad73ce818876d9779e352020f9 c7a8af4ab6dca9a70792109cced2b794542db977 Christian Walde 1307040839 +0200 commit: 1 4 | c7a8af4ab6dca9a70792109cced2b794542db977 e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 Christian Walde 1307040872 +0200 commit: 1 5 | e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 101acc4dc79bf39a240187170b4e11aebf6f302a Christian Walde 1307041094 +0200 commit: 1 6 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message. 4 | # Called by "git commit" with one argument, the name of the file 5 | # that has the commit message. The hook should exit with non-zero 6 | # status after issuing an appropriate message if it wants to stop the 7 | # commit. The hook is allowed to edit the commit message file. 8 | # 9 | # To enable this hook, rename this file to "commit-msg". 10 | 11 | # Uncomment the below to add a Signed-off-by line to the message. 12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg 13 | # hook is more suited to it. 14 | # 15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 17 | 18 | # This example catches duplicate Signed-off-by lines. 19 | 20 | test "" = "$(grep '^Signed-off-by: ' "$1" | 21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 22 | echo >&2 Duplicate Signed-off-by lines. 23 | exit 1 24 | } 25 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message. 4 | # Called by "git commit" with one argument, the name of the file 5 | # that has the commit message. The hook should exit with non-zero 6 | # status after issuing an appropriate message if it wants to stop the 7 | # commit. The hook is allowed to edit the commit message file. 8 | # 9 | # To enable this hook, rename this file to "commit-msg". 10 | 11 | # Uncomment the below to add a Signed-off-by line to the message. 12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg 13 | # hook is more suited to it. 14 | # 15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 17 | 18 | # This example catches duplicate Signed-off-by lines. 19 | 20 | test "" = "$(grep '^Signed-off-by: ' "$1" | 21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 22 | echo >&2 Duplicate Signed-off-by lines. 23 | exit 1 24 | } 25 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message. 4 | # Called by "git commit" with one argument, the name of the file 5 | # that has the commit message. The hook should exit with non-zero 6 | # status after issuing an appropriate message if it wants to stop the 7 | # commit. The hook is allowed to edit the commit message file. 8 | # 9 | # To enable this hook, rename this file to "commit-msg". 10 | 11 | # Uncomment the below to add a Signed-off-by line to the message. 12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg 13 | # hook is more suited to it. 14 | # 15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 17 | 18 | # This example catches duplicate Signed-off-by lines. 19 | 20 | test "" = "$(grep '^Signed-off-by: ' "$1" | 21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 22 | echo >&2 Duplicate Signed-off-by lines. 23 | exit 1 24 | } 25 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message. 4 | # Called by "git commit" with one argument, the name of the file 5 | # that has the commit message. The hook should exit with non-zero 6 | # status after issuing an appropriate message if it wants to stop the 7 | # commit. The hook is allowed to edit the commit message file. 8 | # 9 | # To enable this hook, rename this file to "commit-msg". 10 | 11 | # Uncomment the below to add a Signed-off-by line to the message. 12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg 13 | # hook is more suited to it. 14 | # 15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 17 | 18 | # This example catches duplicate Signed-off-by lines. 19 | 20 | test "" = "$(grep '^Signed-off-by: ' "$1" | 21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 22 | echo >&2 Duplicate Signed-off-by lines. 23 | exit 1 24 | } 25 | -------------------------------------------------------------------------------- /t/repos/refs/git/logs/HEAD: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027039 +0200 commit (initial): init 2 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe a8e6371cac5e8c71910cdf9cea932b6862a4fa2f Christian Walde 1307027183 +0200 commit: test 3 | a8e6371cac5e8c71910cdf9cea932b6862a4fa2f 9de59db095a38f2fab6c718b38fec36f206ca4db Christian Walde 1307027246 +0200 commit: test 4 | 9de59db095a38f2fab6c718b38fec36f206ca4db c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027575 +0200 checkout: moving from master to blargh 5 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 9de59db095a38f2fab6c718b38fec36f206ca4db Christian Walde 1307027584 +0200 merge 9de59db095a38f2fab6c718b38fec36f206ca4db: Fast-forward 6 | 9de59db095a38f2fab6c718b38fec36f206ca4db c0f5337fb674e4f484c2cc9997f071a7d72a85fe Christian Walde 1307027592 +0200 c0f5337fb674e4f484c2cc9997f071a7d72a85fe: updating HEAD 7 | c0f5337fb674e4f484c2cc9997f071a7d72a85fe 1a041fb689a22976a7e1c6e52c3c975486770abf Christian Walde 1307027598 +0200 merge 9de59db095a38f2fab6c718b38fec36f206ca4db: Merge made by recursive. 8 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/prepare-commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare the commit log message. 4 | # Called by "git commit" with the name of the file that has the 5 | # commit message, followed by the description of the commit 6 | # message's source. The hook's purpose is to edit the commit 7 | # message file. If the hook fails with a non-zero status, 8 | # the commit is aborted. 9 | # 10 | # To enable this hook, rename this file to "prepare-commit-msg". 11 | 12 | # This hook includes three examples. The first comments out the 13 | # "Conflicts:" part of a merge commit. 14 | # 15 | # The second includes the output of "git diff --name-status -r" 16 | # into the message, just before the "git status" output. It is 17 | # commented because it doesn't cope with --amend or with squashed 18 | # commits. 19 | # 20 | # The third example adds a Signed-off-by line to the message, that can 21 | # still be edited. This is rarely a good idea. 22 | 23 | case "$2,$3" in 24 | merge,) 25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; 26 | 27 | # ,|template,) 28 | # /usr/bin/perl -i.bak -pe ' 29 | # print "\n" . `git diff --cached --name-status -r` 30 | # if /^#/ && $first++ == 0' "$1" ;; 31 | 32 | *) ;; 33 | esac 34 | 35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 37 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/prepare-commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare the commit log message. 4 | # Called by "git commit" with the name of the file that has the 5 | # commit message, followed by the description of the commit 6 | # message's source. The hook's purpose is to edit the commit 7 | # message file. If the hook fails with a non-zero status, 8 | # the commit is aborted. 9 | # 10 | # To enable this hook, rename this file to "prepare-commit-msg". 11 | 12 | # This hook includes three examples. The first comments out the 13 | # "Conflicts:" part of a merge commit. 14 | # 15 | # The second includes the output of "git diff --name-status -r" 16 | # into the message, just before the "git status" output. It is 17 | # commented because it doesn't cope with --amend or with squashed 18 | # commits. 19 | # 20 | # The third example adds a Signed-off-by line to the message, that can 21 | # still be edited. This is rarely a good idea. 22 | 23 | case "$2,$3" in 24 | merge,) 25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; 26 | 27 | # ,|template,) 28 | # /usr/bin/perl -i.bak -pe ' 29 | # print "\n" . `git diff --cached --name-status -r` 30 | # if /^#/ && $first++ == 0' "$1" ;; 31 | 32 | *) ;; 33 | esac 34 | 35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 37 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/prepare-commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare the commit log message. 4 | # Called by "git commit" with the name of the file that has the 5 | # commit message, followed by the description of the commit 6 | # message's source. The hook's purpose is to edit the commit 7 | # message file. If the hook fails with a non-zero status, 8 | # the commit is aborted. 9 | # 10 | # To enable this hook, rename this file to "prepare-commit-msg". 11 | 12 | # This hook includes three examples. The first comments out the 13 | # "Conflicts:" part of a merge commit. 14 | # 15 | # The second includes the output of "git diff --name-status -r" 16 | # into the message, just before the "git status" output. It is 17 | # commented because it doesn't cope with --amend or with squashed 18 | # commits. 19 | # 20 | # The third example adds a Signed-off-by line to the message, that can 21 | # still be edited. This is rarely a good idea. 22 | 23 | case "$2,$3" in 24 | merge,) 25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; 26 | 27 | # ,|template,) 28 | # /usr/bin/perl -i.bak -pe ' 29 | # print "\n" . `git diff --cached --name-status -r` 30 | # if /^#/ && $first++ == 0' "$1" ;; 31 | 32 | *) ;; 33 | esac 34 | 35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 37 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/prepare-commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare the commit log message. 4 | # Called by "git commit" with the name of the file that has the 5 | # commit message, followed by the description of the commit 6 | # message's source. The hook's purpose is to edit the commit 7 | # message file. If the hook fails with a non-zero status, 8 | # the commit is aborted. 9 | # 10 | # To enable this hook, rename this file to "prepare-commit-msg". 11 | 12 | # This hook includes three examples. The first comments out the 13 | # "Conflicts:" part of a merge commit. 14 | # 15 | # The second includes the output of "git diff --name-status -r" 16 | # into the message, just before the "git status" output. It is 17 | # commented because it doesn't cope with --amend or with squashed 18 | # commits. 19 | # 20 | # The third example adds a Signed-off-by line to the message, that can 21 | # still be edited. This is rarely a good idea. 22 | 23 | case "$2,$3" in 24 | merge,) 25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; 26 | 27 | # ,|template,) 28 | # /usr/bin/perl -i.bak -pe ' 29 | # print "\n" . `git diff --cached --name-status -r` 30 | # if /^#/ && $first++ == 0' "$1" ;; 31 | 32 | *) ;; 33 | esac 34 | 35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 37 | -------------------------------------------------------------------------------- /lib/Git/Garden/Commit.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Commit; 5 | 6 | use Moo; 7 | 8 | has uid => ( is => 'ro', required => 1 ); 9 | has sort_index => ( is => 'ro', required => 1 ); 10 | has parent_uids => ( is => 'ro', required => 1 ); 11 | has labels => ( is => 'ro', required => 1 ); 12 | has parent_count => ( is => 'ro', lazy => 1, builder => '_build_parent_count' ); 13 | has comment => ( is => 'ro' ); 14 | 15 | sub _build_parent_count { 16 | my ( $self ) = @_; 17 | return scalar @{ $self->parent_uids }; 18 | } 19 | 20 | sub sorted_parents { 21 | my ( $self, $commits_by_uid ) = @_; 22 | 23 | my @parents = grep $_, map $commits_by_uid->{$_}, @{ $self->parent_uids }; 24 | 25 | return @parents if @parents < 2; 26 | 27 | @parents = sort { $a->{sort_index} <=> $b->{sort_index} } @parents; 28 | @parents = sort { $a->merge_depth( $commits_by_uid ) <=> $b->merge_depth( $commits_by_uid ) } @parents; 29 | 30 | return @parents; 31 | } 32 | 33 | sub merge_depth { 34 | my ( $commit, $commits_by_uid ) = @_; 35 | 36 | my $depth = 0; 37 | 38 | while ( $commit ) { 39 | last if !$commit->parent_count; 40 | return $depth if $commit->parent_count > 1; 41 | 42 | $depth++; 43 | $commit = $commits_by_uid->{ $commit->parent_uids->[0] }; 44 | } 45 | 46 | return scalar keys %{$commits_by_uid}; 47 | } 48 | 49 | sub TO_JSON { 50 | my ( $self ) = @_; 51 | return { %{$self} }; 52 | } 53 | 54 | 1; 55 | -------------------------------------------------------------------------------- /t/repos/cmi/git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = false 4 | bare = false 5 | logallrefupdates = true 6 | symlinks = false 7 | ignorecase = true 8 | hideDotFiles = dotGitOnly 9 | [remote "origin"] 10 | fetch = +refs/heads/*:refs/remotes/origin/* 11 | url = git@github.com:wchristian/CPAN--Mini--Inject.git 12 | [branch "master"] 13 | remote = origin 14 | merge = refs/heads/master 15 | [remote "briandfoy"] 16 | url = https://github.com/briandfoy/CPAN--Mini--Inject.git 17 | fetch = +refs/heads/*:refs/remotes/briandfoy/* 18 | [remote "andya"] 19 | url = https://github.com/AndyA/CPAN--Mini--Inject.git 20 | fetch = +refs/heads/*:refs/remotes/andya/* 21 | [remote "jozef"] 22 | url = https://github.com/jozef/CPAN--Mini--Inject.git 23 | fetch = +refs/heads/*:refs/remotes/jozef/* 24 | [remote "mlanier"] 25 | url = https://github.com/matthewdpklanier/CPAN--Mini--Inject.git 26 | fetch = +refs/heads/*:refs/remotes/mlanier/* 27 | [remote "sukria"] 28 | url = https://github.com/sukria/CPAN--Mini--Inject.git 29 | fetch = +refs/heads/*:refs/remotes/sukria/* 30 | [remote "frodwith"] 31 | url = https://github.com/frodwith/CPAN--Mini--Inject.git 32 | fetch = +refs/heads/*:refs/remotes/frodwith/* 33 | [remote "jonallen"] 34 | url = https://github.com/jonallen/CPAN--Mini--Inject.git 35 | fetch = +refs/heads/*:refs/remotes/jonallen/* 36 | [remote "cybersiddhu"] 37 | url = https://github.com/cybersiddhu/CPAN--Mini--Inject.git 38 | fetch = +refs/heads/*:refs/remotes/cybersiddhu/* 39 | [gui] 40 | wmstate = normal 41 | geometry = 1371x818+198+198 161 224 42 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/HEAD: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d Christian Walde 1304843261 +0200 clone: from git@github.com:wchristian/CPAN--Mini--Inject.git 2 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d be5249bc272dadd2a3a34d3e151558a21c9a5e29 Christian Walde 1304843635 +0200 be5249bc272dadd2a3a34d3e151558a21c9a5e29: updating HEAD 3 | be5249bc272dadd2a3a34d3e151558a21c9a5e29 3fa7bdd36dc0ad5ac1f2fc65f7969d98308253b6 Christian Walde 1304844808 +0200 commit: bumped version numbers up because mcpani was already tagged with 0.28 4 | 3fa7bdd36dc0ad5ac1f2fc65f7969d98308253b6 03df5dfd88d31756aed576ce777a02f71328533c Christian Walde 1304844928 +0200 commit: added and updated contact data in all scripts/modules 5 | 03df5dfd88d31756aed576ce777a02f71328533c 50acc5281cd1fc1fb0f7add0cf4540d366d036fb Christian Walde 1304845461 +0200 commit (amend): added and updated contact data in all scripts/modules 6 | 50acc5281cd1fc1fb0f7add0cf4540d366d036fb 78c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 Christian Walde 1305058353 +0200 commit: Changed tests so they'll be able to deal with read-only dist files 7 | 78c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 83006341bc1b34926afa359150ab029ffc800e0e Christian Walde 1305058402 +0200 commit: released version 0.28_02 8 | 83006341bc1b34926afa359150ab029ffc800e0e 0384e3f1e3f8f5a33294133e7dc241db127605bf Christian Walde 1305480210 +0200 commit: released version 0.29 9 | -------------------------------------------------------------------------------- /t/repos/cmi/git/logs/refs/heads/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d Christian Walde 1304843261 +0200 clone: from git@github.com:wchristian/CPAN--Mini--Inject.git 2 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d be5249bc272dadd2a3a34d3e151558a21c9a5e29 Christian Walde 1304843635 +0200 be5249bc272dadd2a3a34d3e151558a21c9a5e29: updating HEAD 3 | be5249bc272dadd2a3a34d3e151558a21c9a5e29 3fa7bdd36dc0ad5ac1f2fc65f7969d98308253b6 Christian Walde 1304844808 +0200 commit: bumped version numbers up because mcpani was already tagged with 0.28 4 | 3fa7bdd36dc0ad5ac1f2fc65f7969d98308253b6 03df5dfd88d31756aed576ce777a02f71328533c Christian Walde 1304844928 +0200 commit: added and updated contact data in all scripts/modules 5 | 03df5dfd88d31756aed576ce777a02f71328533c 50acc5281cd1fc1fb0f7add0cf4540d366d036fb Christian Walde 1304845461 +0200 commit (amend): added and updated contact data in all scripts/modules 6 | 50acc5281cd1fc1fb0f7add0cf4540d366d036fb 78c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 Christian Walde 1305058353 +0200 commit: Changed tests so they'll be able to deal with read-only dist files 7 | 78c3eeb1cd936d0947d2a9ea26cc01f2eb49fa41 83006341bc1b34926afa359150ab029ffc800e0e Christian Walde 1305058402 +0200 commit: released version 0.28_02 8 | 83006341bc1b34926afa359150ab029ffc800e0e 0384e3f1e3f8f5a33294133e7dc241db127605bf Christian Walde 1305480210 +0200 commit: released version 0.29 9 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/pre-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | # To enable this hook, rename this file to "pre-commit". 9 | 10 | if git rev-parse --verify HEAD >/dev/null 2>&1 11 | then 12 | against=HEAD 13 | else 14 | # Initial commit: diff against an empty tree object 15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 16 | fi 17 | 18 | # If you want to allow non-ascii filenames set this variable to true. 19 | allownonascii=$(git config hooks.allownonascii) 20 | 21 | # Cross platform projects tend to avoid non-ascii filenames; prevent 22 | # them from being added to the repository. We exploit the fact that the 23 | # printable range starts at the space character and ends with tilde. 24 | if [ "$allownonascii" != "true" ] && 25 | # Note that the use of brackets around a tr range is ok here, (it's 26 | # even required, for portability to Solaris 10's /usr/bin/tr), since 27 | # the square bracket bytes happen to fall in the designated range. 28 | test "$(git diff --cached --name-only --diff-filter=A -z $against | 29 | LC_ALL=C tr -d '[ -~]\0')" 30 | then 31 | echo "Error: Attempt to add a non-ascii file name." 32 | echo 33 | echo "This can cause problems if you want to work" 34 | echo "with people on other platforms." 35 | echo 36 | echo "To be portable it is advisable to rename the file ..." 37 | echo 38 | echo "If you know what you are doing you can disable this" 39 | echo "check using:" 40 | echo 41 | echo " git config hooks.allownonascii true" 42 | echo 43 | exit 1 44 | fi 45 | 46 | exec git diff-index --check --cached $against -- 47 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/pre-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | # To enable this hook, rename this file to "pre-commit". 9 | 10 | if git rev-parse --verify HEAD >/dev/null 2>&1 11 | then 12 | against=HEAD 13 | else 14 | # Initial commit: diff against an empty tree object 15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 16 | fi 17 | 18 | # If you want to allow non-ascii filenames set this variable to true. 19 | allownonascii=$(git config hooks.allownonascii) 20 | 21 | # Cross platform projects tend to avoid non-ascii filenames; prevent 22 | # them from being added to the repository. We exploit the fact that the 23 | # printable range starts at the space character and ends with tilde. 24 | if [ "$allownonascii" != "true" ] && 25 | # Note that the use of brackets around a tr range is ok here, (it's 26 | # even required, for portability to Solaris 10's /usr/bin/tr), since 27 | # the square bracket bytes happen to fall in the designated range. 28 | test "$(git diff --cached --name-only --diff-filter=A -z $against | 29 | LC_ALL=C tr -d '[ -~]\0')" 30 | then 31 | echo "Error: Attempt to add a non-ascii file name." 32 | echo 33 | echo "This can cause problems if you want to work" 34 | echo "with people on other platforms." 35 | echo 36 | echo "To be portable it is advisable to rename the file ..." 37 | echo 38 | echo "If you know what you are doing you can disable this" 39 | echo "check using:" 40 | echo 41 | echo " git config hooks.allownonascii true" 42 | echo 43 | exit 1 44 | fi 45 | 46 | exec git diff-index --check --cached $against -- 47 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/pre-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | # To enable this hook, rename this file to "pre-commit". 9 | 10 | if git rev-parse --verify HEAD >/dev/null 2>&1 11 | then 12 | against=HEAD 13 | else 14 | # Initial commit: diff against an empty tree object 15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 16 | fi 17 | 18 | # If you want to allow non-ascii filenames set this variable to true. 19 | allownonascii=$(git config hooks.allownonascii) 20 | 21 | # Cross platform projects tend to avoid non-ascii filenames; prevent 22 | # them from being added to the repository. We exploit the fact that the 23 | # printable range starts at the space character and ends with tilde. 24 | if [ "$allownonascii" != "true" ] && 25 | # Note that the use of brackets around a tr range is ok here, (it's 26 | # even required, for portability to Solaris 10's /usr/bin/tr), since 27 | # the square bracket bytes happen to fall in the designated range. 28 | test "$(git diff --cached --name-only --diff-filter=A -z $against | 29 | LC_ALL=C tr -d '[ -~]\0')" 30 | then 31 | echo "Error: Attempt to add a non-ascii file name." 32 | echo 33 | echo "This can cause problems if you want to work" 34 | echo "with people on other platforms." 35 | echo 36 | echo "To be portable it is advisable to rename the file ..." 37 | echo 38 | echo "If you know what you are doing you can disable this" 39 | echo "check using:" 40 | echo 41 | echo " git config hooks.allownonascii true" 42 | echo 43 | exit 1 44 | fi 45 | 46 | exec git diff-index --check --cached $against -- 47 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/pre-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | # To enable this hook, rename this file to "pre-commit". 9 | 10 | if git rev-parse --verify HEAD >/dev/null 2>&1 11 | then 12 | against=HEAD 13 | else 14 | # Initial commit: diff against an empty tree object 15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 16 | fi 17 | 18 | # If you want to allow non-ascii filenames set this variable to true. 19 | allownonascii=$(git config hooks.allownonascii) 20 | 21 | # Cross platform projects tend to avoid non-ascii filenames; prevent 22 | # them from being added to the repository. We exploit the fact that the 23 | # printable range starts at the space character and ends with tilde. 24 | if [ "$allownonascii" != "true" ] && 25 | # Note that the use of brackets around a tr range is ok here, (it's 26 | # even required, for portability to Solaris 10's /usr/bin/tr), since 27 | # the square bracket bytes happen to fall in the designated range. 28 | test "$(git diff --cached --name-only --diff-filter=A -z $against | 29 | LC_ALL=C tr -d '[ -~]\0')" 30 | then 31 | echo "Error: Attempt to add a non-ascii file name." 32 | echo 33 | echo "This can cause problems if you want to work" 34 | echo "with people on other platforms." 35 | echo 36 | echo "To be portable it is advisable to rename the file ..." 37 | echo 38 | echo "If you know what you are doing you can disable this" 39 | echo "check using:" 40 | echo 41 | echo " git config hooks.allownonascii true" 42 | echo 43 | exit 1 44 | fi 45 | 46 | exec git diff-index --check --cached $against -- 47 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | NAME 2 | Git::Garden - display your git branches in an orderly manner 3 | 4 | SYNOPSIS 5 | perl bin/git-garden --help 6 | 7 | perl bin/git-garden --git_dir t/repos/test -t gnuplot 8 | firefox simple.png 9 | 10 | perl bin/git-garden --git_dir t/repos/test 11 | firefox simple.html 12 | 13 | DESCRIPTION 14 | Git::Garden is a project to graph git repositories in a manner that will 15 | allow display of them in various forms, be they direct images, ASCII or web 16 | interfaces. 17 | 18 | This project is still in a heavy prototyping phase. The code is honestly 19 | quite crap right now, as i'm just throwing shit at the wall to see what 20 | sticks. The plan is to have a Git::Garden module that'll be handed a list of 21 | commit objects that are interconnected by way of ref and parent relations 22 | and then transforms that into a representation of a graph log as a 23 | two-dimensional grid array that can then be passed on to render objects. 24 | Just how that'll all go together is something i'm busy finding out right 25 | now. 26 | 27 | History 28 | This project was started because Gitalist lacks a git log graph. It was 29 | forked off git-forest, which was investigatively dissected and then rebuilt 30 | with its ideas left intact, but the output radically transformed. The new 31 | log graphing algorithm was heavily inspired by QGit, but diverges in a few 32 | details. 33 | 34 | CONTRIBUTING 35 | Patches are welcome, please feel free to fork on github and send pull 36 | requests, send patches from git format-patch to the bug tracker, or host 37 | your own copy of Git::Garden somewhere and ask us to pull from it. 38 | 39 | AUTHOR 40 | Christian Walde 41 | 42 | LICENSE 43 | This is free software, licensed under: 44 | 45 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE, Version 2, December 2004 46 | -------------------------------------------------------------------------------- /lib/Git/Garden/Importer/fossil.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Importer::fossil; 5 | 6 | # ABSTRACT: import fossil repo data as a list of commits with refs and other metadata 7 | 8 | =head1 SYNOPSIS 9 | 10 | use Git::Garden::Importer::fossil; 11 | my $commit_array_ref = Git::Garden::Importer::fossil->prepare_commits( $fossil_file ); 12 | 13 | =cut 14 | 15 | use DBIx::Simple; 16 | 17 | use lib '../../..'; 18 | use Git::Garden::Commit; 19 | 20 | sub prepare_commits { 21 | my ( $self, $target ) = @_; 22 | 23 | my ( $refs, $commits ) = get_git_meta_data( $target ); 24 | 25 | my @garden_commits = map convert_to_garden_commit( $commits->[$_], $_, $refs ), 0 .. $#{$commits}; 26 | 27 | return \@garden_commits; 28 | } 29 | 30 | sub convert_to_garden_commit { 31 | my ( $commit, $sort_index, $refs ) = @_; 32 | 33 | return Git::Garden::Commit->new( 34 | uid => $commit->{objid}, 35 | sort_index => $sort_index, 36 | parent_uids => $commit->{parents} || [], 37 | labels => $refs->{ $commit->{objid} } || [], 38 | comment => $commit->{comment}, 39 | ); 40 | } 41 | 42 | sub get_git_meta_data { 43 | my ( $target ) = @_; 44 | 45 | my $db = DBIx::Simple->new( "dbi:SQLite:dbname=$target", "", "" ); 46 | 47 | my @commits = $db->query( "select * from event where type = 'ci' order by mtime desc" )->hashes; 48 | 49 | my %commits = map { $_->{objid} => $_ } @commits; 50 | 51 | my @parent_links = $db->query( "select * from plink" )->hashes; 52 | push @{ $commits{ $_->{cid} }{parents} }, $_->{pid} for @parent_links; 53 | 54 | my @tags = $db->query( "select *, l.rid as head_id from tag t left join tagxref tx on t.tagid = tx.tagid left join leaf l ON l.rid = tx.rid order by rid" )->hashes; 55 | 56 | my %refs; 57 | push @{ $refs{$_->{head_id}}}, $_->{value} for grep { $_->{tagname} eq 'branch' and $_->{head_id} } @tags; 58 | 59 | return ( \%refs, \@commits ); 60 | } 61 | 62 | 1; 63 | -------------------------------------------------------------------------------- /t/repos/cmi/git/FETCH_HEAD: -------------------------------------------------------------------------------- 1 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of github.com:wchristian/CPAN--Mini--Inject 2 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d branch 'master' of github.com:wchristian/CPAN--Mini--Inject 3 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/briandfoy/CPAN--Mini--Inject 4 | be5249bc272dadd2a3a34d3e151558a21c9a5e29 not-for-merge branch 'master' of https://github.com/briandfoy/CPAN--Mini--Inject 5 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/AndyA/CPAN--Mini--Inject 6 | 6a1c7b0d3423db25757974f5926a8ddfd82f4b8d not-for-merge branch 'master' of https://github.com/AndyA/CPAN--Mini--Inject 7 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/jozef/CPAN--Mini--Inject 8 | a9257e7802e3576d8b0fb93fd129f09d299b5e1e not-for-merge branch 'daily' of https://github.com/jozef/CPAN--Mini--Inject 9 | be0940def0f57baab2dcb215623c62b6d836d896 not-for-merge branch 'master' of https://github.com/jozef/CPAN--Mini--Inject 10 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/matthewdpklanier/CPAN--Mini--Inject 11 | 559facd0576965624b62503d727165ca12482756 not-for-merge branch 'master' of https://github.com/matthewdpklanier/CPAN--Mini--Inject 12 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/sukria/CPAN--Mini--Inject 13 | 3d2ea167e72b0126fd449f52c9984455689aabb5 not-for-merge branch 'master' of https://github.com/sukria/CPAN--Mini--Inject 14 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/frodwith/CPAN--Mini--Inject 15 | ce4a229892f236fe6e375031a1c4247d92e6a80e not-for-merge branch 'master' of https://github.com/frodwith/CPAN--Mini--Inject 16 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/jonallen/CPAN--Mini--Inject 17 | 9468842c8b6575571e646a5d0d604b4918da3ec8 not-for-merge branch 'master' of https://github.com/jonallen/CPAN--Mini--Inject 18 | e14b7267ca5dd9c5916a5a7c38db4ae0387f1c60 not-for-merge branch 'bdf' of https://github.com/cybersiddhu/CPAN--Mini--Inject 19 | 9d5e53da5bae12646b9b88df9a22302daff20592 not-for-merge branch 'master' of https://github.com/cybersiddhu/CPAN--Mini--Inject 20 | -------------------------------------------------------------------------------- /bin/git-garden: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | =head1 SYNOPSIS 4 | 5 | perl bin/git-garden --help 6 | 7 | perl bin/git-garden --git_dir t/repos/test -t gnuplot 8 | firefox simple.png 9 | 10 | perl bin/git-garden --git_dir t/repos/test 11 | firefox simple.html 12 | 13 | =cut 14 | 15 | use strict; 16 | use warnings; 17 | use 5.010; 18 | 19 | use lib ( 'lib', '../lib' ); 20 | use Getopt::Long::Descriptive; 21 | 22 | use Git::Garden 'create_git_graph_grid'; 23 | use Git::Garden::Importer::gitpp; 24 | use Git::Garden::Importer::gitclass; 25 | use Git::Garden::Importer::fossil; 26 | use Git::Garden::Render::html; 27 | use Git::Garden::Render::gnuplot; 28 | use Git::Garden::Render::graphviz; 29 | 30 | use File::Slurp 'write_file'; 31 | 32 | $|++; 33 | 34 | main(); 35 | 36 | sub main { 37 | my ( $opt, $usage ) = describe_options( 38 | 'git-garden %o', # 39 | [], 40 | [ 'git_dir|d=s', "path to the git repository you want to graph, can be either to the checkout, the .git dir, or even any renamed git metadata dir. Default: .", { default => '.' } ], 41 | [ 'import_type|i=s', "Method to use to import git data. ( gitpp, gitclass ) Default: gitpp", { default => 'gitpp' } ], 42 | [ 'dump_type|t=s', "Format in which to dump the generated data. ( html, gnuplot, graphviz ) Default: html", { default => 'html' } ], 43 | [], 44 | [ 'help|h', "print usage message and exit" ], 45 | ); 46 | print( $usage->text ), exit if $opt->help; 47 | 48 | my $importer_class = "Git::Garden::Importer::" . $opt->import_type; 49 | my $commits = $importer_class->prepare_commits( $opt->git_dir ); 50 | 51 | my $grid = create_git_graph_grid( $commits ); 52 | 53 | my $render_class = "Git::Garden::Render::" . $opt->dump_type; 54 | my $out = $render_class->plot_grid( $grid ); 55 | 56 | return if !$out; 57 | 58 | my $extension = ""; 59 | $extension = ".html" if $opt->dump_type eq 'html'; 60 | $extension = ".png" if $opt->dump_type eq 'graphviz'; 61 | 62 | my $binmode = ":raw"; 63 | $binmode = ":utf8" if $opt->dump_type eq 'html'; 64 | 65 | write_file "simple$extension", { append => 1, binmode => $binmode }, $out; 66 | 67 | return; 68 | } 69 | -------------------------------------------------------------------------------- /t/repos/test/git/gitk.cache: -------------------------------------------------------------------------------- 1 | 1 21 2 | 17e5f5df236a7450f0859943b7c7e9316184ebb1 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 {f4794b88df197d06c64a8a229968955ed561c68d 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772} 3 | 17e5f5df236a7450f0859943b7c7e9316184ebb1 d9fb86e8f81357858bf15f206d213461be8a813d {bea74b822c56104695c81b8b4178a26d1465b516 d9fb86e8f81357858bf15f206d213461be8a813d} 4 | 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 cf1b70e900873deb48dd1077851997dfcb1cf568 {98cef508ff4c023cfba5426fba70f0b331692f8f cf1b70e900873deb48dd1077851997dfcb1cf568} 5 | 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 d9fb86e8f81357858bf15f206d213461be8a813d d9fb86e8f81357858bf15f206d213461be8a813d 6 | d9fb86e8f81357858bf15f206d213461be8a813d 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 7 | cf1b70e900873deb48dd1077851997dfcb1cf568 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 8 | cf1b70e900873deb48dd1077851997dfcb1cf568 57bb69c3f7d14b38a5aa0401d61774c007dc017c {1e5c8768316e446fbf50ae66eeabd5960c167559 57bb69c3f7d14b38a5aa0401d61774c007dc017c} 9 | 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 57bb69c3f7d14b38a5aa0401d61774c007dc017c 57bb69c3f7d14b38a5aa0401d61774c007dc017c 10 | 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 57bb69c3f7d14b38a5aa0401d61774c007dc017c {3a5a1de8127750a53003f781a0f2fa345210c0db 57bb69c3f7d14b38a5aa0401d61774c007dc017c} 11 | 57bb69c3f7d14b38a5aa0401d61774c007dc017c 76a3a5bf8ed823bda9669bb91d967accd225383c 76a3a5bf8ed823bda9669bb91d967accd225383c 12 | 76a3a5bf8ed823bda9669bb91d967accd225383c f2060863e647303a378dcf9207f268196aa606eb {55d990c7d396f7c2bb2a0dcbc68f93507155d86b f2060863e647303a378dcf9207f268196aa606eb} 13 | 76a3a5bf8ed823bda9669bb91d967accd225383c f2060863e647303a378dcf9207f268196aa606eb {6f35b25a164ab731317638f7024ac1b577705790 f2060863e647303a378dcf9207f268196aa606eb} 14 | 101acc4dc79bf39a240187170b4e11aebf6f302a e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 15 | f2060863e647303a378dcf9207f268196aa606eb 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce {c9473ddec7109e046eefefbeb70ffff0838a55c9 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce} 16 | 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce 2b094b03a0f43acca1cb9543c0249296ec764464 {5eec9f811f38c19fdb8f3f710ae50c24e2431ff1 2b094b03a0f43acca1cb9543c0249296ec764464} 17 | 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 18 | e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10 aaa839f3cc5858ad73ce818876d9779e352020f9 {c7a8af4ab6dca9a70792109cced2b794542db977 aaa839f3cc5858ad73ce818876d9779e352020f9} 19 | 2b094b03a0f43acca1cb9543c0249296ec764464 e9aeb08a5222931f5a6c7322d732f08ff5d44fbc {5940f3b1a1c82294ea26f746ab9a8492d7f902de e9aeb08a5222931f5a6c7322d732f08ff5d44fbc} 20 | 2b094b03a0f43acca1cb9543c0249296ec764464 aaa839f3cc5858ad73ce818876d9779e352020f9 aaa839f3cc5858ad73ce818876d9779e352020f9 21 | aaa839f3cc5858ad73ce818876d9779e352020f9 e9aeb08a5222931f5a6c7322d732f08ff5d44fbc e9aeb08a5222931f5a6c7322d732f08ff5d44fbc 22 | e9aeb08a5222931f5a6c7322d732f08ff5d44fbc c28feefe74e1db6e4959a226ed57993c5b1f163e c28feefe74e1db6e4959a226ed57993c5b1f163e 23 | 1 24 | -------------------------------------------------------------------------------- /lib/Git/Garden/Importer/gitclass.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Importer::gitclass; 5 | 6 | # ABSTRACT: import git repo data as a list of commits with refs and other metadata 7 | 8 | =head1 SYNOPSIS 9 | 10 | use Git::Garden::Importer::gitclass; 11 | my $commit_array_ref = Git::Garden::Importer::gitclass->prepare_commits( $git_directory ); 12 | 13 | =cut 14 | 15 | use Git::Class::Cmd; 16 | use File::Spec; 17 | 18 | use lib '../../..'; 19 | use Git::Garden::Commit; 20 | 21 | sub git { Git::Class::Cmd->new } 22 | 23 | sub prepare_commits { 24 | my ( $self, $dir ) = @_; 25 | 26 | my ( $refs, $commits ) = get_git_meta_data( $dir ); 27 | 28 | my @garden_commits = map convert_to_garden_commit( $commits->[$_], $_, $refs ), 0 .. $#{$commits}; 29 | 30 | return \@garden_commits; 31 | } 32 | 33 | sub convert_to_garden_commit { 34 | my ( $commit, $sort_index, $refs ) = @_; 35 | 36 | return Git::Garden::Commit->new( 37 | uid => $commit->{uid}, 38 | sort_index => $sort_index, 39 | comment => $commit->{comment}, 40 | parent_uids => $commit->{parents}, 41 | labels => $refs->{ $commit->{uid} } || [], 42 | ); 43 | } 44 | 45 | sub get_git_meta_data { 46 | my ( $dir ) = @_; 47 | 48 | my $real_dir = get_real_git_dir( $dir ); 49 | 50 | $ENV{GIT_DIR} = $real_dir; 51 | 52 | my $refs = get_refs(); 53 | 54 | my @commits = map parse_commit( $_ ), git()->log( "--date-order", "--pretty=format:{%H}{%h}{%P}%s", "--all", "HEAD" ); 55 | 56 | delete $ENV{GIT_DIR}; 57 | 58 | return ( $refs, \@commits ); 59 | } 60 | 61 | sub get_real_git_dir { 62 | my ( $dir ) = @_; 63 | 64 | return $dir if -d $dir . "/refs/heads"; 65 | return $dir . "/.git" if -d $dir . "/.git/refs/heads"; 66 | return $dir . "/git" if -d $dir . "/git/refs/heads"; 67 | die "could not identify git meta-data directory, expecting a path to something that contains the dir refs/heads"; 68 | } 69 | 70 | sub get_refs { 71 | my @commits = git()->git( "show-ref", "-d" ); 72 | 73 | my %refs; 74 | 75 | for my $ln ( @commits ) { 76 | next if !$ln; 77 | 78 | my ( $sha, $name ) = ( $ln =~ /^(\S+)\s+(.*)/s ); 79 | $name =~ s/\^\{\}//; 80 | $refs{$sha} = [] if !exists $refs{$sha}; 81 | push @{ $refs{$sha} }, $name; 82 | } 83 | 84 | my $head = git()->git( "rev-parse", "HEAD" ); 85 | chomp $head; 86 | unshift @{ $refs{$head} }, "HEAD"; 87 | 88 | return \%refs; 89 | } 90 | 91 | sub parse_commit { 92 | my ( $line ) = @_; 93 | 94 | my ( $sha, $mini_sha, $parents, $comment ) = ( $line =~ /^\{(.*?)\}\{(.*?)\}\{(.*?)\}(.*)/s ); 95 | 96 | my %commit = ( 97 | uid => $sha, 98 | mini_sha => $mini_sha, 99 | parents => [ split " ", $parents ], 100 | comment => $comment 101 | ); 102 | 103 | return \%commit; 104 | } 105 | 106 | 1; 107 | -------------------------------------------------------------------------------- /t/repos/test/git/logs/refs/heads/master: -------------------------------------------------------------------------------- 1 | 0000000000000000000000000000000000000000 c28feefe74e1db6e4959a226ed57993c5b1f163e Christian Walde 1307040559 +0200 commit (initial): 1 2 | c28feefe74e1db6e4959a226ed57993c5b1f163e e9aeb08a5222931f5a6c7322d732f08ff5d44fbc Christian Walde 1307040568 +0200 commit: 1 3 | e9aeb08a5222931f5a6c7322d732f08ff5d44fbc 5940f3b1a1c82294ea26f746ab9a8492d7f902de Christian Walde 1307040630 +0200 commit: 1 4 | 5940f3b1a1c82294ea26f746ab9a8492d7f902de 2b094b03a0f43acca1cb9543c0249296ec764464 Christian Walde 1307040745 +0200 commit (merge): Merge commit 'aaa839f3cc5858ad73ce818876d9779e352020f9' 5 | 2b094b03a0f43acca1cb9543c0249296ec764464 5eec9f811f38c19fdb8f3f710ae50c24e2431ff1 Christian Walde 1307040815 +0200 commit: 1 6 | 5eec9f811f38c19fdb8f3f710ae50c24e2431ff1 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce Christian Walde 1307040907 +0200 merge e4b1426f1e20feb8a28fe3bdfcc3b156cf726f10: Merge made by recursive. 7 | 4534b7fc37ddecff9f0232e88cc5bf1b8d518bce c9473ddec7109e046eefefbeb70ffff0838a55c9 Christian Walde 1307041035 +0200 commit: 1 8 | c9473ddec7109e046eefefbeb70ffff0838a55c9 f2060863e647303a378dcf9207f268196aa606eb Christian Walde 1307041071 +0200 commit: 1 9 | f2060863e647303a378dcf9207f268196aa606eb 55d990c7d396f7c2bb2a0dcbc68f93507155d86b Christian Walde 1307041201 +0200 commit: 1 10 | 55d990c7d396f7c2bb2a0dcbc68f93507155d86b 76a3a5bf8ed823bda9669bb91d967accd225383c Christian Walde 1307041226 +0200 merge 6f35b25a164ab731317638f7024ac1b577705790: Merge made by recursive. 11 | 76a3a5bf8ed823bda9669bb91d967accd225383c 57bb69c3f7d14b38a5aa0401d61774c007dc017c Christian Walde 1307041242 +0200 commit: 1 12 | 57bb69c3f7d14b38a5aa0401d61774c007dc017c 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 Christian Walde 1307041404 +0200 merge 3a5a1de8127750a53003f781a0f2fa345210c0db: Merge made by recursive. 13 | 075b4f2f4542e9d3c3b2bcf7579c423a42b033f8 cf1b70e900873deb48dd1077851997dfcb1cf568 Christian Walde 1307041466 +0200 commit (merge): Merge commit '1e5c8768316e446fbf50ae66eeabd5960c167559' 14 | cf1b70e900873deb48dd1077851997dfcb1cf568 98cef508ff4c023cfba5426fba70f0b331692f8f Christian Walde 1307041519 +0200 commit: 1 15 | 98cef508ff4c023cfba5426fba70f0b331692f8f 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 Christian Walde 1307041628 +0200 commit (merge): Merge commit 'd9fb86e8f81357858bf15f206d213461be8a813d' 16 | 743dccc6029c7d2a1b8d4f0c3c3e8acb2b9f8772 f4794b88df197d06c64a8a229968955ed561c68d Christian Walde 1307041673 +0200 commit: 1 17 | f4794b88df197d06c64a8a229968955ed561c68d 17e5f5df236a7450f0859943b7c7e9316184ebb1 Christian Walde 1307041696 +0200 merge bea74b822c56104695c81b8b4178a26d1465b516: Merge made by recursive. 18 | -------------------------------------------------------------------------------- /lib/Git/Garden/Render/gnuplot.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Render::gnuplot; 5 | 6 | # ABSTRACT: plot a Git::Garden grid with GnuPlot 7 | 8 | =head1 SYNOPSIS 9 | 10 | use Git::Garden::Render::gnuplot; 11 | Git::Garden::Render::gnuplot->plot_grid( $grid ); 12 | 13 | firefox simple.png 14 | 15 | =cut 16 | 17 | use Moose; 18 | use Chart::Gnuplot; 19 | use encoding 'utf8'; 20 | 21 | has plot => ( is => 'ro', lazy_build => 1 ); 22 | has max_x => ( is => 'rw', default => 0 ); 23 | has max_y => ( is => 'rw', default => 0 ); 24 | has file => ( is => 'rw', required => 1 ); 25 | has commands => ( is => 'rw', default => sub { "" } ); 26 | 27 | sub _build_plot { 28 | my ( $self ) = @_; 29 | return Chart::Gnuplot->new( 30 | output => $self->file . ".png", 31 | terminal => "png", 32 | tmargin => 0, 33 | bmargin => 0, 34 | lmargin => 0, 35 | rmargin => 0, 36 | ); 37 | 38 | } 39 | 40 | sub add { 41 | my ( $self, $text, $x, $y ) = @_; 42 | 43 | $self->{commands} .= qq|set label "$text" at $x, -$y center font "Lucida Console"\n|; 44 | 45 | $self->{max_x} = $x if $x > $self->{max_x}; 46 | $self->{max_y} = $y if $y > $self->{max_y}; 47 | 48 | return; 49 | } 50 | 51 | sub render { 52 | my ( $self ) = @_; 53 | 54 | $self->plot->command( $self->commands ); 55 | 56 | my @cmds = ( 57 | "set xrange [-1:" . ( $self->max_x + 1 ) . "]", # 58 | "set yrange [-" . ( $self->max_y + 1 ) . ":1]", 59 | "unset border", 60 | "unset xtics", 61 | "unset ytics", 62 | "set terminal png size " . ( 10 * ( $self->max_x + 1 ) ) . "," . ( 15 * ( $self->max_y + 1 ) ) . "", 63 | ); 64 | $self->plot->command( $_ ) for @cmds; 65 | $self->plot->plot2d( Chart::Gnuplot::DataSet->new( xdata => [-2], ydata => [-2], style => "dot" ) ); 66 | 67 | return; 68 | } 69 | 70 | sub plot_grid { 71 | my ( $self, $grid ) = @_; 72 | 73 | my $chart = __PACKAGE__->new( file => "simple.png" ); 74 | my $max_col = 0; 75 | 76 | for my $row ( @{$grid} ) { 77 | next if !$row; 78 | 79 | my $merge_branch_column_index; 80 | 81 | for my $col ( @{ $row->{columns} } ) { 82 | next if !$col; 83 | 84 | $chart->add( "⎕", $col->{index}, $row->{index} ) if $col->{visuals}{commit}; 85 | $chart->add( "│", $col->{index}, $row->{index} ) if $col->{visuals}{expects_commit}; 86 | 87 | $chart->add( "┐", $col->{index}, $row->{index} ) if $col->{visuals}{merge_point}; 88 | $chart->add( "┘", $col->{index}, $row->{index} ) if $col->{visuals}{branch_point}; 89 | 90 | $merge_branch_column_index = $col->{index} 91 | if ( !$merge_branch_column_index or $col->{index} > $merge_branch_column_index ) and $col->{visuals}{merge_point} 92 | or $col->{visuals}{branch_point}; 93 | 94 | $max_col = $col->{index} if $col->{index} > $max_col; 95 | } 96 | 97 | next if !defined $merge_branch_column_index; 98 | 99 | my $commit_column_index = $row->{commit_column_index}; 100 | 101 | for my $connect_index ( $commit_column_index + 1 .. $merge_branch_column_index - 1 ) { 102 | $chart->add( "─", $connect_index, $row->{index} ); 103 | } 104 | } 105 | 106 | for my $row ( @{$grid} ) { 107 | next if !$row; 108 | $chart->add( $row->{commit}{uid}, $max_col + 5, $row->{index} ); 109 | $chart->add( " ", $max_col + 8, $row->{index} ); 110 | } 111 | 112 | $chart->render; 113 | 114 | return; 115 | } 116 | 117 | 1; 118 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to blocks unannotated tags from entering. 4 | # Called by "git receive-pack" with arguments: refname sha1-old sha1-new 5 | # 6 | # To enable this hook, rename this file to "update". 7 | # 8 | # Config 9 | # ------ 10 | # hooks.allowunannotated 11 | # This boolean sets whether unannotated tags will be allowed into the 12 | # repository. By default they won't be. 13 | # hooks.allowdeletetag 14 | # This boolean sets whether deleting tags will be allowed in the 15 | # repository. By default they won't be. 16 | # hooks.allowmodifytag 17 | # This boolean sets whether a tag may be modified after creation. By default 18 | # it won't be. 19 | # hooks.allowdeletebranch 20 | # This boolean sets whether deleting branches will be allowed in the 21 | # repository. By default they won't be. 22 | # hooks.denycreatebranch 23 | # This boolean sets whether remotely creating branches will be denied 24 | # in the repository. By default this is allowed. 25 | # 26 | 27 | # --- Command line 28 | refname="$1" 29 | oldrev="$2" 30 | newrev="$3" 31 | 32 | # --- Safety check 33 | if [ -z "$GIT_DIR" ]; then 34 | echo "Don't run this script from the command line." >&2 35 | echo " (if you want, you could supply GIT_DIR then run" >&2 36 | echo " $0 )" >&2 37 | exit 1 38 | fi 39 | 40 | if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then 41 | echo "Usage: $0 " >&2 42 | exit 1 43 | fi 44 | 45 | # --- Config 46 | allowunannotated=$(git config --bool hooks.allowunannotated) 47 | allowdeletebranch=$(git config --bool hooks.allowdeletebranch) 48 | denycreatebranch=$(git config --bool hooks.denycreatebranch) 49 | allowdeletetag=$(git config --bool hooks.allowdeletetag) 50 | allowmodifytag=$(git config --bool hooks.allowmodifytag) 51 | 52 | # check for no description 53 | projectdesc=$(sed -e '1q' "$GIT_DIR/description") 54 | case "$projectdesc" in 55 | "Unnamed repository"* | "") 56 | echo "*** Project description file hasn't been set" >&2 57 | exit 1 58 | ;; 59 | esac 60 | 61 | # --- Check types 62 | # if $newrev is 0000...0000, it's a commit to delete a ref. 63 | zero="0000000000000000000000000000000000000000" 64 | if [ "$newrev" = "$zero" ]; then 65 | newrev_type=delete 66 | else 67 | newrev_type=$(git cat-file -t $newrev) 68 | fi 69 | 70 | case "$refname","$newrev_type" in 71 | refs/tags/*,commit) 72 | # un-annotated tag 73 | short_refname=${refname##refs/tags/} 74 | if [ "$allowunannotated" != "true" ]; then 75 | echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 76 | echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 77 | exit 1 78 | fi 79 | ;; 80 | refs/tags/*,delete) 81 | # delete tag 82 | if [ "$allowdeletetag" != "true" ]; then 83 | echo "*** Deleting a tag is not allowed in this repository" >&2 84 | exit 1 85 | fi 86 | ;; 87 | refs/tags/*,tag) 88 | # annotated tag 89 | if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 90 | then 91 | echo "*** Tag '$refname' already exists." >&2 92 | echo "*** Modifying a tag is not allowed in this repository." >&2 93 | exit 1 94 | fi 95 | ;; 96 | refs/heads/*,commit) 97 | # branch 98 | if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then 99 | echo "*** Creating a branch is not allowed in this repository" >&2 100 | exit 1 101 | fi 102 | ;; 103 | refs/heads/*,delete) 104 | # delete branch 105 | if [ "$allowdeletebranch" != "true" ]; then 106 | echo "*** Deleting a branch is not allowed in this repository" >&2 107 | exit 1 108 | fi 109 | ;; 110 | refs/remotes/*,commit) 111 | # tracking branch 112 | ;; 113 | refs/remotes/*,delete) 114 | # delete tracking branch 115 | if [ "$allowdeletebranch" != "true" ]; then 116 | echo "*** Deleting a tracking branch is not allowed in this repository" >&2 117 | exit 1 118 | fi 119 | ;; 120 | *) 121 | # Anything else (is there anything else?) 122 | echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 123 | exit 1 124 | ;; 125 | esac 126 | 127 | # --- Finished 128 | exit 0 129 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to blocks unannotated tags from entering. 4 | # Called by "git receive-pack" with arguments: refname sha1-old sha1-new 5 | # 6 | # To enable this hook, rename this file to "update". 7 | # 8 | # Config 9 | # ------ 10 | # hooks.allowunannotated 11 | # This boolean sets whether unannotated tags will be allowed into the 12 | # repository. By default they won't be. 13 | # hooks.allowdeletetag 14 | # This boolean sets whether deleting tags will be allowed in the 15 | # repository. By default they won't be. 16 | # hooks.allowmodifytag 17 | # This boolean sets whether a tag may be modified after creation. By default 18 | # it won't be. 19 | # hooks.allowdeletebranch 20 | # This boolean sets whether deleting branches will be allowed in the 21 | # repository. By default they won't be. 22 | # hooks.denycreatebranch 23 | # This boolean sets whether remotely creating branches will be denied 24 | # in the repository. By default this is allowed. 25 | # 26 | 27 | # --- Command line 28 | refname="$1" 29 | oldrev="$2" 30 | newrev="$3" 31 | 32 | # --- Safety check 33 | if [ -z "$GIT_DIR" ]; then 34 | echo "Don't run this script from the command line." >&2 35 | echo " (if you want, you could supply GIT_DIR then run" >&2 36 | echo " $0 )" >&2 37 | exit 1 38 | fi 39 | 40 | if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then 41 | echo "Usage: $0 " >&2 42 | exit 1 43 | fi 44 | 45 | # --- Config 46 | allowunannotated=$(git config --bool hooks.allowunannotated) 47 | allowdeletebranch=$(git config --bool hooks.allowdeletebranch) 48 | denycreatebranch=$(git config --bool hooks.denycreatebranch) 49 | allowdeletetag=$(git config --bool hooks.allowdeletetag) 50 | allowmodifytag=$(git config --bool hooks.allowmodifytag) 51 | 52 | # check for no description 53 | projectdesc=$(sed -e '1q' "$GIT_DIR/description") 54 | case "$projectdesc" in 55 | "Unnamed repository"* | "") 56 | echo "*** Project description file hasn't been set" >&2 57 | exit 1 58 | ;; 59 | esac 60 | 61 | # --- Check types 62 | # if $newrev is 0000...0000, it's a commit to delete a ref. 63 | zero="0000000000000000000000000000000000000000" 64 | if [ "$newrev" = "$zero" ]; then 65 | newrev_type=delete 66 | else 67 | newrev_type=$(git cat-file -t $newrev) 68 | fi 69 | 70 | case "$refname","$newrev_type" in 71 | refs/tags/*,commit) 72 | # un-annotated tag 73 | short_refname=${refname##refs/tags/} 74 | if [ "$allowunannotated" != "true" ]; then 75 | echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 76 | echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 77 | exit 1 78 | fi 79 | ;; 80 | refs/tags/*,delete) 81 | # delete tag 82 | if [ "$allowdeletetag" != "true" ]; then 83 | echo "*** Deleting a tag is not allowed in this repository" >&2 84 | exit 1 85 | fi 86 | ;; 87 | refs/tags/*,tag) 88 | # annotated tag 89 | if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 90 | then 91 | echo "*** Tag '$refname' already exists." >&2 92 | echo "*** Modifying a tag is not allowed in this repository." >&2 93 | exit 1 94 | fi 95 | ;; 96 | refs/heads/*,commit) 97 | # branch 98 | if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then 99 | echo "*** Creating a branch is not allowed in this repository" >&2 100 | exit 1 101 | fi 102 | ;; 103 | refs/heads/*,delete) 104 | # delete branch 105 | if [ "$allowdeletebranch" != "true" ]; then 106 | echo "*** Deleting a branch is not allowed in this repository" >&2 107 | exit 1 108 | fi 109 | ;; 110 | refs/remotes/*,commit) 111 | # tracking branch 112 | ;; 113 | refs/remotes/*,delete) 114 | # delete tracking branch 115 | if [ "$allowdeletebranch" != "true" ]; then 116 | echo "*** Deleting a tracking branch is not allowed in this repository" >&2 117 | exit 1 118 | fi 119 | ;; 120 | *) 121 | # Anything else (is there anything else?) 122 | echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 123 | exit 1 124 | ;; 125 | esac 126 | 127 | # --- Finished 128 | exit 0 129 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to blocks unannotated tags from entering. 4 | # Called by "git receive-pack" with arguments: refname sha1-old sha1-new 5 | # 6 | # To enable this hook, rename this file to "update". 7 | # 8 | # Config 9 | # ------ 10 | # hooks.allowunannotated 11 | # This boolean sets whether unannotated tags will be allowed into the 12 | # repository. By default they won't be. 13 | # hooks.allowdeletetag 14 | # This boolean sets whether deleting tags will be allowed in the 15 | # repository. By default they won't be. 16 | # hooks.allowmodifytag 17 | # This boolean sets whether a tag may be modified after creation. By default 18 | # it won't be. 19 | # hooks.allowdeletebranch 20 | # This boolean sets whether deleting branches will be allowed in the 21 | # repository. By default they won't be. 22 | # hooks.denycreatebranch 23 | # This boolean sets whether remotely creating branches will be denied 24 | # in the repository. By default this is allowed. 25 | # 26 | 27 | # --- Command line 28 | refname="$1" 29 | oldrev="$2" 30 | newrev="$3" 31 | 32 | # --- Safety check 33 | if [ -z "$GIT_DIR" ]; then 34 | echo "Don't run this script from the command line." >&2 35 | echo " (if you want, you could supply GIT_DIR then run" >&2 36 | echo " $0 )" >&2 37 | exit 1 38 | fi 39 | 40 | if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then 41 | echo "Usage: $0 " >&2 42 | exit 1 43 | fi 44 | 45 | # --- Config 46 | allowunannotated=$(git config --bool hooks.allowunannotated) 47 | allowdeletebranch=$(git config --bool hooks.allowdeletebranch) 48 | denycreatebranch=$(git config --bool hooks.denycreatebranch) 49 | allowdeletetag=$(git config --bool hooks.allowdeletetag) 50 | allowmodifytag=$(git config --bool hooks.allowmodifytag) 51 | 52 | # check for no description 53 | projectdesc=$(sed -e '1q' "$GIT_DIR/description") 54 | case "$projectdesc" in 55 | "Unnamed repository"* | "") 56 | echo "*** Project description file hasn't been set" >&2 57 | exit 1 58 | ;; 59 | esac 60 | 61 | # --- Check types 62 | # if $newrev is 0000...0000, it's a commit to delete a ref. 63 | zero="0000000000000000000000000000000000000000" 64 | if [ "$newrev" = "$zero" ]; then 65 | newrev_type=delete 66 | else 67 | newrev_type=$(git cat-file -t $newrev) 68 | fi 69 | 70 | case "$refname","$newrev_type" in 71 | refs/tags/*,commit) 72 | # un-annotated tag 73 | short_refname=${refname##refs/tags/} 74 | if [ "$allowunannotated" != "true" ]; then 75 | echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 76 | echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 77 | exit 1 78 | fi 79 | ;; 80 | refs/tags/*,delete) 81 | # delete tag 82 | if [ "$allowdeletetag" != "true" ]; then 83 | echo "*** Deleting a tag is not allowed in this repository" >&2 84 | exit 1 85 | fi 86 | ;; 87 | refs/tags/*,tag) 88 | # annotated tag 89 | if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 90 | then 91 | echo "*** Tag '$refname' already exists." >&2 92 | echo "*** Modifying a tag is not allowed in this repository." >&2 93 | exit 1 94 | fi 95 | ;; 96 | refs/heads/*,commit) 97 | # branch 98 | if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then 99 | echo "*** Creating a branch is not allowed in this repository" >&2 100 | exit 1 101 | fi 102 | ;; 103 | refs/heads/*,delete) 104 | # delete branch 105 | if [ "$allowdeletebranch" != "true" ]; then 106 | echo "*** Deleting a branch is not allowed in this repository" >&2 107 | exit 1 108 | fi 109 | ;; 110 | refs/remotes/*,commit) 111 | # tracking branch 112 | ;; 113 | refs/remotes/*,delete) 114 | # delete tracking branch 115 | if [ "$allowdeletebranch" != "true" ]; then 116 | echo "*** Deleting a tracking branch is not allowed in this repository" >&2 117 | exit 1 118 | fi 119 | ;; 120 | *) 121 | # Anything else (is there anything else?) 122 | echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 123 | exit 1 124 | ;; 125 | esac 126 | 127 | # --- Finished 128 | exit 0 129 | -------------------------------------------------------------------------------- /t/repos/test/git/hooks/update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to blocks unannotated tags from entering. 4 | # Called by "git receive-pack" with arguments: refname sha1-old sha1-new 5 | # 6 | # To enable this hook, rename this file to "update". 7 | # 8 | # Config 9 | # ------ 10 | # hooks.allowunannotated 11 | # This boolean sets whether unannotated tags will be allowed into the 12 | # repository. By default they won't be. 13 | # hooks.allowdeletetag 14 | # This boolean sets whether deleting tags will be allowed in the 15 | # repository. By default they won't be. 16 | # hooks.allowmodifytag 17 | # This boolean sets whether a tag may be modified after creation. By default 18 | # it won't be. 19 | # hooks.allowdeletebranch 20 | # This boolean sets whether deleting branches will be allowed in the 21 | # repository. By default they won't be. 22 | # hooks.denycreatebranch 23 | # This boolean sets whether remotely creating branches will be denied 24 | # in the repository. By default this is allowed. 25 | # 26 | 27 | # --- Command line 28 | refname="$1" 29 | oldrev="$2" 30 | newrev="$3" 31 | 32 | # --- Safety check 33 | if [ -z "$GIT_DIR" ]; then 34 | echo "Don't run this script from the command line." >&2 35 | echo " (if you want, you could supply GIT_DIR then run" >&2 36 | echo " $0 )" >&2 37 | exit 1 38 | fi 39 | 40 | if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then 41 | echo "Usage: $0 " >&2 42 | exit 1 43 | fi 44 | 45 | # --- Config 46 | allowunannotated=$(git config --bool hooks.allowunannotated) 47 | allowdeletebranch=$(git config --bool hooks.allowdeletebranch) 48 | denycreatebranch=$(git config --bool hooks.denycreatebranch) 49 | allowdeletetag=$(git config --bool hooks.allowdeletetag) 50 | allowmodifytag=$(git config --bool hooks.allowmodifytag) 51 | 52 | # check for no description 53 | projectdesc=$(sed -e '1q' "$GIT_DIR/description") 54 | case "$projectdesc" in 55 | "Unnamed repository"* | "") 56 | echo "*** Project description file hasn't been set" >&2 57 | exit 1 58 | ;; 59 | esac 60 | 61 | # --- Check types 62 | # if $newrev is 0000...0000, it's a commit to delete a ref. 63 | zero="0000000000000000000000000000000000000000" 64 | if [ "$newrev" = "$zero" ]; then 65 | newrev_type=delete 66 | else 67 | newrev_type=$(git cat-file -t $newrev) 68 | fi 69 | 70 | case "$refname","$newrev_type" in 71 | refs/tags/*,commit) 72 | # un-annotated tag 73 | short_refname=${refname##refs/tags/} 74 | if [ "$allowunannotated" != "true" ]; then 75 | echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 76 | echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 77 | exit 1 78 | fi 79 | ;; 80 | refs/tags/*,delete) 81 | # delete tag 82 | if [ "$allowdeletetag" != "true" ]; then 83 | echo "*** Deleting a tag is not allowed in this repository" >&2 84 | exit 1 85 | fi 86 | ;; 87 | refs/tags/*,tag) 88 | # annotated tag 89 | if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 90 | then 91 | echo "*** Tag '$refname' already exists." >&2 92 | echo "*** Modifying a tag is not allowed in this repository." >&2 93 | exit 1 94 | fi 95 | ;; 96 | refs/heads/*,commit) 97 | # branch 98 | if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then 99 | echo "*** Creating a branch is not allowed in this repository" >&2 100 | exit 1 101 | fi 102 | ;; 103 | refs/heads/*,delete) 104 | # delete branch 105 | if [ "$allowdeletebranch" != "true" ]; then 106 | echo "*** Deleting a branch is not allowed in this repository" >&2 107 | exit 1 108 | fi 109 | ;; 110 | refs/remotes/*,commit) 111 | # tracking branch 112 | ;; 113 | refs/remotes/*,delete) 114 | # delete tracking branch 115 | if [ "$allowdeletebranch" != "true" ]; then 116 | echo "*** Deleting a tracking branch is not allowed in this repository" >&2 117 | exit 1 118 | fi 119 | ;; 120 | *) 121 | # Anything else (is there anything else?) 122 | echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 123 | exit 1 124 | ;; 125 | esac 126 | 127 | # --- Finished 128 | exit 0 129 | -------------------------------------------------------------------------------- /lib/Git/Garden/Importer/gitpp.pm: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | 4 | package Git::Garden::Importer::gitpp; 5 | 6 | # ABSTRACT: import git repo data as a list of commits with refs and other metadata 7 | 8 | =head1 SYNOPSIS 9 | 10 | use Git::Garden::Importer::gitpp; 11 | my $commit_array_ref = Git::Garden::Importer::gitpp->prepare_commits( $git_directory ); 12 | 13 | =cut 14 | 15 | use lib 'd:/git-pureperl/lib'; 16 | use Git::PurePerl; 17 | use File::Spec; 18 | 19 | use lib '../../..'; 20 | use Git::Garden::Commit; 21 | 22 | sub prepare_commits { 23 | my ( $self, $dir ) = @_; 24 | 25 | my ( $refs, $commits ) = get_git_meta_data( $dir ); 26 | 27 | my @garden_commits = map convert_to_garden_commit( $commits->[$_], $_, $refs ), 0 .. $#{$commits}; 28 | 29 | return \@garden_commits; 30 | } 31 | 32 | sub convert_to_garden_commit { 33 | my ( $commit, $sort_index, $refs ) = @_; 34 | 35 | return Git::Garden::Commit->new( 36 | uid => $commit->sha1, 37 | sort_index => $sort_index, 38 | comment => $commit->comment, 39 | parent_uids => $commit->parent_sha1s, 40 | labels => $refs->{ $commit->sha1 } || [], 41 | ); 42 | } 43 | 44 | sub get_git_meta_data { 45 | my ( $dir ) = @_; 46 | 47 | my $real_dir = get_real_git_dir( $dir ); 48 | 49 | my @dirs = File::Spec->splitdir( $real_dir ); 50 | pop @dirs; 51 | my $root_dir = File::Spec->catdir( @dirs ); 52 | my $git = Git::PurePerl->new( directory => $root_dir, gitdir => $real_dir ); 53 | 54 | my $commit_stream = $git->all_objects; 55 | my @objects; 56 | while ( my $object_block = $commit_stream->next ) { 57 | push @objects, @{$object_block}; 58 | } 59 | my @commits = grep { $_->kind eq 'commit' } @objects; 60 | 61 | my $refs = extract_ref_commits( $git ); 62 | @commits = trim_phantom_commits( $git, $refs, \@commits ) ; 63 | 64 | @commits = sort_by_sha1( \@commits ); 65 | 66 | return ( $refs, \@commits ); 67 | } 68 | 69 | sub trim_phantom_commits { 70 | my ( $git, $refs, $commits ) = @_; 71 | 72 | my @commits = @{$commits}; 73 | 74 | while( 1 ) { 75 | my $last = @commits; 76 | 77 | my %parents = map { $_ => 1 } map { @{ $_->parent_sha1s } } @commits; 78 | @commits = grep { $parents{ $_->sha1 } or $refs->{ $_->sha1 } } @commits; 79 | 80 | last if @commits == $last; 81 | } 82 | 83 | return @commits; 84 | } 85 | 86 | sub sort_by_sha1 { 87 | my ( $commits ) = @_; 88 | 89 | my @commits = sort { $b->committed_time->datetime cmp $a->committed_time->datetime } @{$commits}; 90 | my %commits_by_sha = map { $_->sha1 => $_ } @commits; 91 | 92 | my @sorted_commits; 93 | my $last_commit_count = 0; 94 | 95 | while ( values %commits_by_sha ) { 96 | for my $commit ( @commits ) { 97 | my $sha1 = $commit->sha1; 98 | next if !$commits_by_sha{$sha1}; 99 | 100 | my @child_commits = grep is_child_of( $sha1, $_ ), values %commits_by_sha; 101 | next if @child_commits; 102 | 103 | push @sorted_commits, $commit; 104 | delete $commits_by_sha{$sha1}; 105 | last; 106 | } 107 | die "commit-sorting got stuck" if @sorted_commits eq $last_commit_count; 108 | $last_commit_count = @sorted_commits; 109 | } 110 | 111 | return @sorted_commits; 112 | } 113 | 114 | sub is_child_of { 115 | my ( $sha1, $commit ) = @_; 116 | return 1 if grep { $sha1 eq $_ } @{ $commit->parent_sha1s }; 117 | return; 118 | } 119 | 120 | sub extract_ref_commits { 121 | my ( $git ) = @_; 122 | 123 | my %ref_names = map { $_ => 1 } $git->ref_names; 124 | my %refs; 125 | push @{ $refs{ $git->ref_sha1( $_ ) } }, $_ for keys %ref_names; 126 | 127 | return \%refs; 128 | } 129 | 130 | sub get_real_git_dir { 131 | my ( $dir ) = @_; 132 | 133 | return $dir if -d $dir . "/refs/heads"; 134 | return $dir . "/.git" if -d $dir . "/.git/refs/heads"; 135 | return $dir . "/git" if -d $dir . "/git/refs/heads"; 136 | die "could not identify git meta-data directory '$dir', expecting a path to something that contains the dir refs/heads"; 137 | } 138 | 139 | 1; 140 | -------------------------------------------------------------------------------- /t/repos/cmi/git/hooks/pre-rebase.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2006, 2008 Junio C Hamano 4 | # 5 | # The "pre-rebase" hook is run just before "git rebase" starts doing 6 | # its job, and can prevent the command from running by exiting with 7 | # non-zero status. 8 | # 9 | # The hook is called with the following parameters: 10 | # 11 | # $1 -- the upstream the series was forked from. 12 | # $2 -- the branch being rebased (or empty when rebasing the current branch). 13 | # 14 | # This sample shows how to prevent topic branches that are already 15 | # merged to 'next' branch from getting rebased, because allowing it 16 | # would result in rebasing already published history. 17 | 18 | publish=next 19 | basebranch="$1" 20 | if test "$#" = 2 21 | then 22 | topic="refs/heads/$2" 23 | else 24 | topic=`git symbolic-ref HEAD` || 25 | exit 0 ;# we do not interrupt rebasing detached HEAD 26 | fi 27 | 28 | case "$topic" in 29 | refs/heads/??/*) 30 | ;; 31 | *) 32 | exit 0 ;# we do not interrupt others. 33 | ;; 34 | esac 35 | 36 | # Now we are dealing with a topic branch being rebased 37 | # on top of master. Is it OK to rebase it? 38 | 39 | # Does the topic really exist? 40 | git show-ref -q "$topic" || { 41 | echo >&2 "No such branch $topic" 42 | exit 1 43 | } 44 | 45 | # Is topic fully merged to master? 46 | not_in_master=`git rev-list --pretty=oneline ^master "$topic"` 47 | if test -z "$not_in_master" 48 | then 49 | echo >&2 "$topic is fully merged to master; better remove it." 50 | exit 1 ;# we could allow it, but there is no point. 51 | fi 52 | 53 | # Is topic ever merged to next? If so you should not be rebasing it. 54 | only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` 55 | only_next_2=`git rev-list ^master ${publish} | sort` 56 | if test "$only_next_1" = "$only_next_2" 57 | then 58 | not_in_topic=`git rev-list "^$topic" master` 59 | if test -z "$not_in_topic" 60 | then 61 | echo >&2 "$topic is already up-to-date with master" 62 | exit 1 ;# we could allow it, but there is no point. 63 | else 64 | exit 0 65 | fi 66 | else 67 | not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` 68 | /usr/bin/perl -e ' 69 | my $topic = $ARGV[0]; 70 | my $msg = "* $topic has commits already merged to public branch:\n"; 71 | my (%not_in_next) = map { 72 | /^([0-9a-f]+) /; 73 | ($1 => 1); 74 | } split(/\n/, $ARGV[1]); 75 | for my $elem (map { 76 | /^([0-9a-f]+) (.*)$/; 77 | [$1 => $2]; 78 | } split(/\n/, $ARGV[2])) { 79 | if (!exists $not_in_next{$elem->[0]}) { 80 | if ($msg) { 81 | print STDERR $msg; 82 | undef $msg; 83 | } 84 | print STDERR " $elem->[1]\n"; 85 | } 86 | } 87 | ' "$topic" "$not_in_next" "$not_in_master" 88 | exit 1 89 | fi 90 | 91 | exit 0 92 | 93 | ################################################################ 94 | 95 | This sample hook safeguards topic branches that have been 96 | published from being rewound. 97 | 98 | The workflow assumed here is: 99 | 100 | * Once a topic branch forks from "master", "master" is never 101 | merged into it again (either directly or indirectly). 102 | 103 | * Once a topic branch is fully cooked and merged into "master", 104 | it is deleted. If you need to build on top of it to correct 105 | earlier mistakes, a new topic branch is created by forking at 106 | the tip of the "master". This is not strictly necessary, but 107 | it makes it easier to keep your history simple. 108 | 109 | * Whenever you need to test or publish your changes to topic 110 | branches, merge them into "next" branch. 111 | 112 | The script, being an example, hardcodes the publish branch name 113 | to be "next", but it is trivial to make it configurable via 114 | $GIT_DIR/config mechanism. 115 | 116 | With this workflow, you would want to know: 117 | 118 | (1) ... if a topic branch has ever been merged to "next". Young 119 | topic branches can have stupid mistakes you would rather 120 | clean up before publishing, and things that have not been 121 | merged into other branches can be easily rebased without 122 | affecting other people. But once it is published, you would 123 | not want to rewind it. 124 | 125 | (2) ... if a topic branch has been fully merged to "master". 126 | Then you can delete it. More importantly, you should not 127 | build on top of it -- other people may already want to 128 | change things related to the topic as patches against your 129 | "master", so if you need further changes, it is better to 130 | fork the topic (perhaps with the same name) afresh from the 131 | tip of "master". 132 | 133 | Let's look at this example: 134 | 135 | o---o---o---o---o---o---o---o---o---o "next" 136 | / / / / 137 | / a---a---b A / / 138 | / / / / 139 | / / c---c---c---c B / 140 | / / / \ / 141 | / / / b---b C \ / 142 | / / / / \ / 143 | ---o---o---o---o---o---o---o---o---o---o---o "master" 144 | 145 | 146 | A, B and C are topic branches. 147 | 148 | * A has one fix since it was merged up to "next". 149 | 150 | * B has finished. It has been fully merged up to "master" and "next", 151 | and is ready to be deleted. 152 | 153 | * C has not merged to "next" at all. 154 | 155 | We would want to allow C to be rebased, refuse A, and encourage 156 | B to be deleted. 157 | 158 | To compute (1): 159 | 160 | git rev-list ^master ^topic next 161 | git rev-list ^master next 162 | 163 | if these match, topic has not merged in next at all. 164 | 165 | To compute (2): 166 | 167 | git rev-list master..topic 168 | 169 | if this is empty, it is fully merged to "master". 170 | -------------------------------------------------------------------------------- /t/repos/one/git/hooks/pre-rebase.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2006, 2008 Junio C Hamano 4 | # 5 | # The "pre-rebase" hook is run just before "git rebase" starts doing 6 | # its job, and can prevent the command from running by exiting with 7 | # non-zero status. 8 | # 9 | # The hook is called with the following parameters: 10 | # 11 | # $1 -- the upstream the series was forked from. 12 | # $2 -- the branch being rebased (or empty when rebasing the current branch). 13 | # 14 | # This sample shows how to prevent topic branches that are already 15 | # merged to 'next' branch from getting rebased, because allowing it 16 | # would result in rebasing already published history. 17 | 18 | publish=next 19 | basebranch="$1" 20 | if test "$#" = 2 21 | then 22 | topic="refs/heads/$2" 23 | else 24 | topic=`git symbolic-ref HEAD` || 25 | exit 0 ;# we do not interrupt rebasing detached HEAD 26 | fi 27 | 28 | case "$topic" in 29 | refs/heads/??/*) 30 | ;; 31 | *) 32 | exit 0 ;# we do not interrupt others. 33 | ;; 34 | esac 35 | 36 | # Now we are dealing with a topic branch being rebased 37 | # on top of master. Is it OK to rebase it? 38 | 39 | # Does the topic really exist? 40 | git show-ref -q "$topic" || { 41 | echo >&2 "No such branch $topic" 42 | exit 1 43 | } 44 | 45 | # Is topic fully merged to master? 46 | not_in_master=`git rev-list --pretty=oneline ^master "$topic"` 47 | if test -z "$not_in_master" 48 | then 49 | echo >&2 "$topic is fully merged to master; better remove it." 50 | exit 1 ;# we could allow it, but there is no point. 51 | fi 52 | 53 | # Is topic ever merged to next? If so you should not be rebasing it. 54 | only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` 55 | only_next_2=`git rev-list ^master ${publish} | sort` 56 | if test "$only_next_1" = "$only_next_2" 57 | then 58 | not_in_topic=`git rev-list "^$topic" master` 59 | if test -z "$not_in_topic" 60 | then 61 | echo >&2 "$topic is already up-to-date with master" 62 | exit 1 ;# we could allow it, but there is no point. 63 | else 64 | exit 0 65 | fi 66 | else 67 | not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` 68 | /usr/bin/perl -e ' 69 | my $topic = $ARGV[0]; 70 | my $msg = "* $topic has commits already merged to public branch:\n"; 71 | my (%not_in_next) = map { 72 | /^([0-9a-f]+) /; 73 | ($1 => 1); 74 | } split(/\n/, $ARGV[1]); 75 | for my $elem (map { 76 | /^([0-9a-f]+) (.*)$/; 77 | [$1 => $2]; 78 | } split(/\n/, $ARGV[2])) { 79 | if (!exists $not_in_next{$elem->[0]}) { 80 | if ($msg) { 81 | print STDERR $msg; 82 | undef $msg; 83 | } 84 | print STDERR " $elem->[1]\n"; 85 | } 86 | } 87 | ' "$topic" "$not_in_next" "$not_in_master" 88 | exit 1 89 | fi 90 | 91 | exit 0 92 | 93 | ################################################################ 94 | 95 | This sample hook safeguards topic branches that have been 96 | published from being rewound. 97 | 98 | The workflow assumed here is: 99 | 100 | * Once a topic branch forks from "master", "master" is never 101 | merged into it again (either directly or indirectly). 102 | 103 | * Once a topic branch is fully cooked and merged into "master", 104 | it is deleted. If you need to build on top of it to correct 105 | earlier mistakes, a new topic branch is created by forking at 106 | the tip of the "master". This is not strictly necessary, but 107 | it makes it easier to keep your history simple. 108 | 109 | * Whenever you need to test or publish your changes to topic 110 | branches, merge them into "next" branch. 111 | 112 | The script, being an example, hardcodes the publish branch name 113 | to be "next", but it is trivial to make it configurable via 114 | $GIT_DIR/config mechanism. 115 | 116 | With this workflow, you would want to know: 117 | 118 | (1) ... if a topic branch has ever been merged to "next". Young 119 | topic branches can have stupid mistakes you would rather 120 | clean up before publishing, and things that have not been 121 | merged into other branches can be easily rebased without 122 | affecting other people. But once it is published, you would 123 | not want to rewind it. 124 | 125 | (2) ... if a topic branch has been fully merged to "master". 126 | Then you can delete it. More importantly, you should not 127 | build on top of it -- other people may already want to 128 | change things related to the topic as patches against your 129 | "master", so if you need further changes, it is better to 130 | fork the topic (perhaps with the same name) afresh from the 131 | tip of "master". 132 | 133 | Let's look at this example: 134 | 135 | o---o---o---o---o---o---o---o---o---o "next" 136 | / / / / 137 | / a---a---b A / / 138 | / / / / 139 | / / c---c---c---c B / 140 | / / / \ / 141 | / / / b---b C \ / 142 | / / / / \ / 143 | ---o---o---o---o---o---o---o---o---o---o---o "master" 144 | 145 | 146 | A, B and C are topic branches. 147 | 148 | * A has one fix since it was merged up to "next". 149 | 150 | * B has finished. It has been fully merged up to "master" and "next", 151 | and is ready to be deleted. 152 | 153 | * C has not merged to "next" at all. 154 | 155 | We would want to allow C to be rebased, refuse A, and encourage 156 | B to be deleted. 157 | 158 | To compute (1): 159 | 160 | git rev-list ^master ^topic next 161 | git rev-list ^master next 162 | 163 | if these match, topic has not merged in next at all. 164 | 165 | To compute (2): 166 | 167 | git rev-list master..topic 168 | 169 | if this is empty, it is fully merged to "master". 170 | -------------------------------------------------------------------------------- /t/repos/refs/git/hooks/pre-rebase.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2006, 2008 Junio C Hamano 4 | # 5 | # The "pre-rebase" hook is run just before "git rebase" starts doing 6 | # its job, and can prevent the command from running by exiting with 7 | # non-zero status. 8 | # 9 | # The hook is called with the following parameters: 10 | # 11 | # $1 -- the upstream the series was forked from. 12 | # $2 -- the branch being rebased (or empty when rebasing the current branch). 13 | # 14 | # This sample shows how to prevent topic branches that are already 15 | # merged to 'next' branch from getting rebased, because allowing it 16 | # would result in rebasing already published history. 17 | 18 | publish=next 19 | basebranch="$1" 20 | if test "$#" = 2 21 | then 22 | topic="refs/heads/$2" 23 | else 24 | topic=`git symbolic-ref HEAD` || 25 | exit 0 ;# we do not interrupt rebasing detached HEAD 26 | fi 27 | 28 | case "$topic" in 29 | refs/heads/??/*) 30 | ;; 31 | *) 32 | exit 0 ;# we do not interrupt others. 33 | ;; 34 | esac 35 | 36 | # Now we are dealing with a topic branch being rebased 37 | # on top of master. Is it OK to rebase it? 38 | 39 | # Does the topic really exist? 40 | git show-ref -q "$topic" || { 41 | echo >&2 "No such branch $topic" 42 | exit 1 43 | } 44 | 45 | # Is topic fully merged to master? 46 | not_in_master=`git rev-list --pretty=oneline ^master "$topic"` 47 | if test -z "$not_in_master" 48 | then 49 | echo >&2 "$topic is fully merged to master; better remove it." 50 | exit 1 ;# we could allow it, but there is no point. 51 | fi 52 | 53 | # Is topic ever merged to next? If so you should not be rebasing it. 54 | only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` 55 | only_next_2=`git rev-list ^master ${publish} | sort` 56 | if test "$only_next_1" = "$only_next_2" 57 | then 58 | not_in_topic=`git rev-list "^$topic" master` 59 | if test -z "$not_in_topic" 60 | then 61 | echo >&2 "$topic is already up-to-date with master" 62 | exit 1 ;# we could allow it, but there is no point. 63 | else 64 | exit 0 65 | fi 66 | else 67 | not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` 68 | /usr/bin/perl -e ' 69 | my $topic = $ARGV[0]; 70 | my $msg = "* $topic has commits already merged to public branch:\n"; 71 | my (%not_in_next) = map { 72 | /^([0-9a-f]+) /; 73 | ($1 => 1); 74 | } split(/\n/, $ARGV[1]); 75 | for my $elem (map { 76 | /^([0-9a-f]+) (.*)$/; 77 | [$1 => $2]; 78 | } split(/\n/, $ARGV[2])) { 79 | if (!exists $not_in_next{$elem->[0]}) { 80 | if ($msg) { 81 | print STDERR $msg; 82 | undef $msg; 83 | } 84 | print STDERR " $elem->[1]\n"; 85 | } 86 | } 87 | ' "$topic" "$not_in_next" "$not_in_master" 88 | exit 1 89 | fi 90 | 91 | exit 0 92 | 93 | ################################################################ 94 | 95 | This sample hook safeguards topic branches that have been 96 | published from being rewound. 97 | 98 | The workflow assumed here is: 99 | 100 | * Once a topic branch forks from "master", "master" is never 101 | merged into it again (either directly or indirectly). 102 | 103 | * Once a topic branch is fully cooked and merged into "master", 104 | it is deleted. If you need to build on top of it to correct 105 | earlier mistakes, a new topic branch is created by forking at 106 | the tip of the "master". This is not strictly necessary, but 107 | it makes it easier to keep your history simple. 108 | 109 | * Whenever you need to test or publish your changes to topic 110 | branches, merge them into "next" branch. 111 | 112 | The script, being an example, hardcodes the publish branch name 113 | to be "next", but it is trivial to make it configurable via 114 | $GIT_DIR/config mechanism. 115 | 116 | With this workflow, you would want to know: 117 | 118 | (1) ... if a topic branch has ever been merged to "next". Young 119 | topic branches can have stupid mistakes you would rather 120 | clean up before publishing, and things that have not been 121 | merged into other branches can be easily rebased without 122 | affecting other people. But once it is published, you would 123 | not want to rewind it. 124 | 125 | (2) ... if a topic branch has been fully merged to "master". 126 | Then you can delete it. More importantly, you should not 127 | build on top of it -- other people may already want to 128 | change things related to the topic as patches against your 129 | "master", so if you need further changes, it is better to 130 | fork the topic (perhaps with the same name) afresh from the 131 | tip of "master". 132 | 133 | Let's look at this example: 134 | 135 | o---o---o---o---o---o---o---o---o---o "next" 136 | / / / / 137 | / a---a---b A / / 138 | / / / / 139 | / / c---c---c---c B / 140 | / / / \ / 141 | / / / b---b C \ / 142 | / / / / \ / 143 | ---o---o---o---o---o---o---o---o---o---o---o "master" 144 | 145 | 146 | A, B and C are topic branches. 147 | 148 | * A has one fix since it was merged up to "next". 149 | 150 | * B has finished. It has been fully merged up to "master" and "next", 151 | and is ready to be deleted. 152 | 153 | * C has not merged to "next" at all. 154 | 155 | We would want to allow C to be rebased, refuse A, and encourage 156 | B to be deleted. 157 | 158 | To compute (1): 159 | 160 | git rev-list ^master ^topic next 161 | git rev-list ^master next 162 | 163 | if these match, topic has not merged in next at all. 164 | 165 | To compute (2): 166 | 167 | git rev-list master..topic 168 | 169 | if this is empty, it is fully merged to "master". 170 | --------------------------------------------------------------------------------