From 9404aa1ac356646adf93d1761263031efa570dc5 Mon Sep 17 00:00:00 2001 From: Per Cederqvist Date: Mon, 6 Sep 2010 07:12:16 +0200 Subject: [PATCH] Do basic error checking in "tg depend add" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Check for the following errors: - Working on a non-TopGit branch. - Adding a branch as a dependency of itself. - Adding a dependency that introduces a loop. - Adding a dependency that already exists. Signed-off-by: Per Cederqvist Signed-off-by: Uwe Kleine-König --- tg-depend.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tg-depend.sh b/tg-depend.sh index 6d98b5f..474ccda 100644 --- a/tg-depend.sh +++ b/tg-depend.sh @@ -42,9 +42,24 @@ done branchrev="$(git rev-parse --verify "$name" 2>/dev/null)" || die "invalid branch name: $name" +# Check that we are on a TopGit branch. +current_name="$(git symbolic-ref HEAD | sed 's#^refs/\(heads\|top-bases\)/##')" +current_base_rev="$(git rev-parse --short --verify "refs/top-bases/$current_name" 2>/dev/null)" || + die "not a TopGit-controlled branch" + ## Record new dependency depend_add() { + [ "$name" = "$current_name" ] && + die "$name cannot depend on itself." + + { $tg summary --deps; echo "$current_name" "$name"; } | + tsort >/dev/null || + die "tg: that dependency would introduce a dependency loop" + + grep -F -x -e "$name" "$root_dir/.topdeps" >/dev/null && + die "tg: $current_name already depends on $name" + echo "$name" >>"$root_dir/.topdeps" git add -f "$root_dir/.topdeps" git commit -m"New TopGit dependency: $name" -- 2.11.4.GIT