Browse Source

add git-vendor remove command

dev/handle.deletes
Brett Langdon 10 years ago
parent
commit
1bc9a8a798
2 changed files with 47 additions and 4 deletions
  1. +35
    -2
      bin/git-vendor
  2. +12
    -2
      man/git-vendor.md

+ 35
- 2
bin/git-vendor View File

@ -11,6 +11,7 @@ Usage:
git vendor --help
git vendor add [--prefix <dir>] <name> <repository> [<ref>]
git vendor list [<name>]
git vendor remove <name>
git vendor update <name> [<ref>]
EOF
}
@ -26,7 +27,7 @@ esac
command="$1"
shift
case "$command" in
"add"|"list"|"update") ;;
"add"|"list"|"remove"|"update") ;;
*) >&2 echo "error: unknown command \"$command\"" && _usage && exit 1 ;;
esac
@ -51,7 +52,13 @@ vendor_names_from_log()
name=
;;
esac
done
done | sort -u
}
vendor_git_log_first()
{
name="$1"
git log -1 --grep="^git-vendor-name: $name\$" --pretty=format:'START %H%n%s%n%n%b%nEND%n' HEAD
}
cmd_add()
@ -156,4 +163,30 @@ git-vendor-ref: $ref
done
}
cmd_remove()
{
require_clean_work_tree
name="$1"
if [ $# -lt 1 ]; then
die "Incorrect options provided: git vendor remove <name>"
fi
vendor_git_log_first "$name" |
while read a b junk; do
case "$a" in
START) ;;
git-vendor-dir:) dir="$b" ;;
END)
# Make sure the dependency exists
if [ ! -d "$dir" ]; then
die "Dependency \"$1\" is missing from \"$dir\""
fi
git rm -rf "$dir"
git commit --message "Removing \"$name\" from \"$dir\""
break
;;
esac
done
}
# Run the command
"cmd_$command" "$@"

+ 12
- 2
man/git-vendor.md View File

@ -7,6 +7,8 @@ git-vendor(1) -- manage vendored dependency subtrees
`git-vendor list [<name>]`
`git-vendor remove <name>`
`git-vendor update <name> [<ref>]`
## DESCRIPTION
@ -23,13 +25,17 @@ git-vendor(1) -- manage vendored dependency subtrees
Add a new vendored dependency
list [<name>]
list [&lt;name&gt;]
List all existing vendored dependencies and their current version. Limit show dependency to `<name>` if provided.
remove &lt;name&gt;
Remove the named vendored dependency.
update &lt;dir&gt; &lt;ref&gt;
Update the vendored dependency to a different version
Update the vendored dependency to a different version.
## OPTIONS
@ -68,6 +74,10 @@ git-vendor(1) -- manage vendored dependency subtrees
$ git vendor update forge
Removing a dependency:
$ git vendor remove forge
List all existing dependencies:
$ git vendor list


Loading…
Cancel
Save