2 # TopGit - A different patch queue manager
3 # (c) Petr Baudis <pasky@suse.cz> 2008
10 echo "Usage: ${tgname:-tg} [...] depend add <name>" >&2
16 subcmd
="$1"; shift ||
:
23 die
"unknown subcommand ($subcmd)";;
32 [ -z "$name" ] || die
"name already specified ($name)"
40 [ -n "$name" ] || die
"no branch name specified"
41 branchrev
="$(git rev-parse --verify "$name" 2>/dev/null)" ||
42 die
"invalid branch name: $name"
44 # Check that we are on a TopGit branch.
45 current_name
="$(strip_ref "$
(git symbolic-ref HEAD
2>/dev
/null
)")"
46 current_base_rev
="$(git rev-parse --short --verify "refs
/top-bases
/$current_name" 2>/dev/null)" ||
47 die
"not a TopGit-controlled branch"
49 ## Record new dependency
52 [ "$name" = "$current_name" ] &&
53 die
"$name cannot depend on itself."
55 { $tg summary
--deps; echo "$current_name" "$name"; } |
57 die
"$tgname: that dependency would introduce a dependency loop"
59 grep -F -x -e "$name" "$root_dir/.topdeps" >/dev
/null
&&
60 die
"$tgname: $current_name already depends on $name"
62 echo "$name" >>"$root_dir/.topdeps"
63 git add
-f "$root_dir/.topdeps"
64 git commit
-m"New TopGit dependency: $name"