--- /dev/null
- unsigned char hash1[20], hash2[20], shifted[20];
+#include "cache.h"
+#include "tree.h"
+
+int main(int ac, char **av)
+{
- if (get_sha1(av[1], hash1))
++ struct object_id hash1, hash2, shifted;
+ struct tree *one, *two;
+
+ setup_git_directory();
+
- if (get_sha1(av[2], hash2))
++ if (get_oid(av[1], &hash1))
+ die("cannot parse %s as an object name", av[1]);
- one = parse_tree_indirect(hash1);
++ if (get_oid(av[2], &hash2))
+ die("cannot parse %s as an object name", av[2]);
- two = parse_tree_indirect(hash2);
++ one = parse_tree_indirect(hash1.hash);
+ if (!one)
+ die("not a tree-ish %s", av[1]);
- shift_tree(one->object.oid.hash, two->object.oid.hash, shifted, -1);
- printf("shifted: %s\n", sha1_to_hex(shifted));
++ two = parse_tree_indirect(hash2.hash);
+ if (!two)
+ die("not a tree-ish %s", av[2]);
+
++ shift_tree(&one->object.oid, &two->object.oid, &shifted, -1);
++ printf("shifted: %s\n", oid_to_hex(&shifted));
+
+ exit(0);
+}