| 1 | #define USE_THE_REPOSITORY_VARIABLE |
| 2 | |
| 3 | #include "test-tool.h" |
| 4 | #include "hex.h" |
| 5 | #include "match-trees.h" |
| 6 | #include "object-name.h" |
| 7 | #include "repository.h" |
| 8 | #include "setup.h" |
| 9 | #include "tree.h" |
| 10 | |
| 11 | int cmd__match_trees(int ac UNUSED, const char **av) |
| 12 | { |
| 13 | struct object_id hash1, hash2, shifted; |
| 14 | struct tree *one, *two; |
| 15 | |
| 16 | setup_git_directory(the_repository); |
| 17 | |
| 18 | if (repo_get_oid(the_repository, av[1], &hash1)) |
| 19 | die("cannot parse %s as an object name", av[1]); |
| 20 | if (repo_get_oid(the_repository, av[2], &hash2)) |
| 21 | die("cannot parse %s as an object name", av[2]); |
| 22 | one = repo_parse_tree_indirect(the_repository, &hash1); |
| 23 | if (!one) |
| 24 | die("not a tree-ish %s", av[1]); |
| 25 | two = repo_parse_tree_indirect(the_repository, &hash2); |
| 26 | if (!two) |
| 27 | die("not a tree-ish %s", av[2]); |
| 28 | |
| 29 | shift_tree(the_repository, &one->object.oid, &two->object.oid, &shifted, -1); |
| 30 | printf("shifted: %s\n", oid_to_hex(&shifted)); |
| 31 | |
| 32 | return 0; |
| 33 | } |