git-commit-vandalism/t/helper/test-match-trees.c
Junio C Hamano de61cebde7 Merge branch 'jk/common-main-2.8' into jk/common-main
* jk/common-main-2.8:
  mingw: declare main()'s argv as const
  common-main: call git_setup_gettext()
  common-main: call restore_sigpipe_to_default()
  common-main: call sanitize_stdfds()
  common-main: call git_extract_argv0_path()
  add an extra level of indirection to main()
2016-07-06 10:02:57 -07:00

27 lines
627 B
C

#include "cache.h"
#include "tree.h"
int cmd_main(int ac, const char **av)
{
struct object_id hash1, hash2, shifted;
struct tree *one, *two;
setup_git_directory();
if (get_oid(av[1], &hash1))
die("cannot parse %s as an object name", av[1]);
if (get_oid(av[2], &hash2))
die("cannot parse %s as an object name", av[2]);
one = parse_tree_indirect(hash1.hash);
if (!one)
die("not a tree-ish %s", av[1]);
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);
}