diff --git a/Documentation/dev-dependencies.md b/Documentation/dev-dependencies.md
index ea63e420100cc9ba4dddcac236ec8017fe469836..6e294950b8934f99fa8277e7c54f96a19b996c3a 100644
--- a/Documentation/dev-dependencies.md
+++ b/Documentation/dev-dependencies.md
@@ -15,11 +15,10 @@ To add a new dependency to dex or update an existing one:
 
 Tests will fail if transitive dependencies aren't included. 
 
-Once `glide.yaml` describes the desired state use glide and glide-vc to update `glide.lock` and `vendor`.
+Once `glide.yaml` describes the desired state use `make` to update `glide.lock` and `vendor`. This calls both `glide` and `glide-vc` with the set of flags that dex requires.
 
 ```
-glide up -v
-glide-vc
+make revendor
 ```
 
 When composing commits make sure that updates to `vendor` are in a separate commit from the main changes. GitHub's UI makes commits with a large number of changes unreviewable.
diff --git a/Makefile b/Makefile
index 7c8533afa2fc6d0acbc0bd2621ea46992644f589..8006982a9e0945f01231bf9aee8f6fa67d342e7f 100644
--- a/Makefile
+++ b/Makefile
@@ -35,6 +35,11 @@ bin/example-app: check-go-version
 release-binary:
 	@go build -o _output/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
 
+.PHONY: revendor
+revendor:
+	@glide up -v
+	@glide-vc --use-lock-file --no-tests --only-code
+
 test:
 	@go test -v -i $(shell go list ./... | grep -v '/vendor/')
 	@go test -v $(shell go list ./... | grep -v '/vendor/')
diff --git a/glide_test.go b/glide_test.go
index fa4781721d4c1dd6a9682c43050bd333e95b4b0b..3b503ddf2793348d0bfc09c09ad51dfec9414d3f 100644
--- a/glide_test.go
+++ b/glide_test.go
@@ -5,6 +5,7 @@ import (
 	"os"
 	"path"
 	"path/filepath"
+	"strings"
 	"testing"
 
 	"gopkg.in/yaml.v2"
@@ -96,13 +97,23 @@ func TestGlideYAMLPinsAllDependencies(t *testing.T) {
 	}
 }
 
-func TestRemoveVersionControl(t *testing.T) {
+func TestGlideVCUseLockFile(t *testing.T) {
+	_, err := os.Stat("vendor/github.com/golang/protobuf/protoc-gen-go")
+	if err != nil {
+		t.Fatalf("vendor did not use glide-vc --use-lock-file. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags")
+	}
+}
+
+func TestGlideFlagsAndGlideVC(t *testing.T) {
 	err := filepath.Walk("vendor", func(path string, info os.FileInfo, err error) error {
 		if err != nil {
 			t.Fatalf("walk: stat path %s failed: %v", path, err)
 		}
 		if info.IsDir() && filepath.Base(path) == ".git" {
-			t.Fatalf(".git directory detected in vendor: %s. Revendor packages and remove version control data with 'glide update -s -v -u'", path)
+			t.Fatalf(".git directory detected in vendor: %s. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags", path)
+		}
+		if !info.IsDir() && strings.HasSuffix(path, "_test.go") {
+			t.Fatalf("'_test.go' file detected in vendor: %s. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags", path)
 		}
 		return nil
 	})