Updating get and remove to new export system
diff --git a/action/get.go b/action/get.go
index 03c6c67..aab0e4a 100644
--- a/action/get.go
+++ b/action/get.go
@@ -18,7 +18,7 @@
 // Get fetches one or more dependencies and installs.
 //
 // This includes resolving dependency resolution and re-generating the lock file.
-func Get(names []string, installer *repo.Installer, insecure, skipRecursive, strip, stripVendor, nonInteract, testDeps bool) {
+func Get(names []string, installer *repo.Installer, insecure, skipRecursive, stripVendor, nonInteract, testDeps bool) {
 	if installer.UseCache {
 		cache.SystemLock()
 	}
@@ -72,11 +72,9 @@
 		msg.Err("Failed to set references: %s", err)
 	}
 
-	// VendoredCleanup
-	// When stripping VCS happens this will happen as well. No need for double
-	// effort.
-	if installer.UpdateVendored && !strip {
-		repo.VendoredCleanup(confcopy)
+	err = installer.Export(confcopy)
+	if err != nil {
+		msg.Die("Unable to export dependencies to vendor directory: %s", err)
 	}
 
 	// Write YAML
@@ -93,14 +91,6 @@
 		msg.Warn("Skipping lockfile generation because full dependency tree is not being calculated")
 	}
 
-	if strip {
-		msg.Info("Removing version control data from vendor directory...")
-		err := gpath.StripVcs()
-		if err != nil {
-			msg.Err("Unable to strip version control data: %s", err)
-		}
-	}
-
 	if stripVendor {
 		msg.Info("Removing nested vendor and Godeps/_workspace directories...")
 		err := gpath.StripVendor()
diff --git a/action/remove.go b/action/remove.go
index fc305f5..bdf96a1 100644
--- a/action/remove.go
+++ b/action/remove.go
@@ -25,16 +25,15 @@
 	// Copy used to generate locks.
 	confcopy := conf.Clone()
 
-	confcopy.Imports = inst.List(confcopy)
+	//confcopy.Imports = inst.List(confcopy)
 
 	if err := repo.SetReference(confcopy, inst.ResolveTest); err != nil {
 		msg.Err("Failed to set references: %s", err)
 	}
 
-	// TODO: Right now, there is no flag to enable this, so this will never be
-	// run. I am not sure whether we should allow this in a rm op or not.
-	if inst.UpdateVendored {
-		repo.VendoredCleanup(confcopy)
+	err = inst.Export(confcopy)
+	if err != nil {
+		msg.Die("Unable to export dependencies to vendor directory: %s", err)
 	}
 
 	// Write glide.yaml
diff --git a/glide.go b/glide.go
index 2e7cb1d..e138505 100644
--- a/glide.go
+++ b/glide.go
@@ -225,28 +225,33 @@
 					Usage: "This will resolve all dependencies for all packages, not just those directly used.",
 				},
 				cli.BoolFlag{
-					Name:  "update-vendored, u",
-					Usage: "Update vendored packages (without local VCS repo). Warning, changes will be lost.",
+					Name:   "update-vendored, u",
+					Usage:  "Update vendored packages (without local VCS repo). Warning, changes will be lost.",
+					Hidden: true,
 				},
 				cli.BoolFlag{
-					Name:  "cache",
-					Usage: "When downloading dependencies attempt to cache them.",
+					Name:   "cache",
+					Usage:  "When downloading dependencies attempt to cache them.",
+					Hidden: true,
 				},
 				cli.BoolFlag{
-					Name:  "cache-gopath",
-					Usage: "When downloading dependencies attempt to put them in the GOPATH, too.",
+					Name:   "cache-gopath",
+					Usage:  "When downloading dependencies attempt to put them in the GOPATH, too.",
+					Hidden: true,
 				},
 				cli.BoolFlag{
-					Name:  "use-gopath",
-					Usage: "Copy dependencies from the GOPATH if they exist there.",
+					Name:   "use-gopath",
+					Usage:  "Copy dependencies from the GOPATH if they exist there.",
+					Hidden: true,
 				},
 				cli.BoolFlag{
 					Name:  "resolve-current",
 					Usage: "Resolve dependencies for only the current system rather than all build modes.",
 				},
 				cli.BoolFlag{
-					Name:  "strip-vcs, s",
-					Usage: "Removes version control metadata (e.g, .git directory) from the vendor folder.",
+					Name:   "strip-vcs, s",
+					Usage:  "Removes version control metadata (e.g, .git directory) from the vendor folder.",
+					Hidden: true,
 				},
 				cli.BoolFlag{
 					Name:  "strip-vendor, v",
@@ -262,8 +267,26 @@
 				},
 			},
 			Action: func(c *cli.Context) error {
-				if c.Bool("strip-vendor") && !c.Bool("strip-vcs") {
-					msg.Die("--strip-vendor cannot be used without --strip-vcs")
+				if c.Bool("delete") {
+					msg.Warn("The --delete flag is deprecated. This now works by default.")
+				}
+				if c.Bool("update-vendored") {
+					msg.Warn("The --update-vendored flag is deprecated. This now works by default.")
+				}
+				if c.String("file") != "" {
+					msg.Warn("The --flag flag is deprecated.")
+				}
+				if c.Bool("cache") {
+					msg.Warn("The --cache flag is deprecated. This now works by default.")
+				}
+				if c.Bool("cache-gopath") {
+					msg.Warn("The --cache-gopath flag is deprecated.")
+				}
+				if c.Bool("use-gopath") {
+					msg.Warn("The --use-gopath flag is deprecated. Please see overrides.")
+				}
+				if c.Bool("strip-vcs") {
+					msg.Warn("The --strip-vcs flag is deprecated. This now works by default.")
 				}
 
 				if len(c.Args()) < 1 {
@@ -278,15 +301,11 @@
 
 				inst := repo.NewInstaller()
 				inst.Force = c.Bool("force")
-				inst.UseCache = c.Bool("cache")
-				inst.UseGopath = c.Bool("use-gopath")
-				inst.UseCacheGopath = c.Bool("cache-gopath")
-				inst.UpdateVendored = c.Bool("update-vendored")
 				inst.ResolveAllFiles = c.Bool("all-dependencies")
 				inst.ResolveTest = !c.Bool("skip-test")
 				packages := []string(c.Args())
 				insecure := c.Bool("insecure")
-				action.Get(packages, inst, insecure, c.Bool("no-recursive"), c.Bool("strip-vcs"), c.Bool("strip-vendor"), c.Bool("non-interactive"), c.Bool("test"))
+				action.Get(packages, inst, insecure, c.Bool("no-recursive"), c.Bool("strip-vendor"), c.Bool("non-interactive"), c.Bool("test"))
 				return nil
 			},
 		},
diff --git a/glide.lock b/glide.lock
index 04390b5..06b0f01 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,5 +1,5 @@
-hash: 84b989218da3e6a1480e6fa95864e838b1e676a970a14d65fffd33cf052a84fd
-updated: 2016-08-11T13:38:46.721068785-04:00
+hash: 67c5571c33bfcb663d32d2b40b9ce1f2a05a3fa2e9f442077277c2782195729c
+updated: 2016-08-11T14:07:30.163990133-04:00
 imports:
 - name: github.com/codegangsta/cli
   version: 1efa31f08b9333f1bd4882d61f9d668a70cd902e
diff --git a/repo/vcs.go b/repo/vcs.go
index 6ef9574..76349c9 100644
--- a/repo/vcs.go
+++ b/repo/vcs.go
@@ -108,19 +108,20 @@
 				return fmt.Errorf("%s contains uncommitted changes. Skipping update", dep.Name)
 			}
 
-			if dep.Reference == "" {
-				dep.Reference = defaultBranch(repo)
+			ver := dep.Reference
+			if ver == "" {
+				ver = defaultBranch(repo)
 			}
 			// Check if the current version is a tag or commit id. If it is
 			// and that version is already checked out we can skip updating
 			// which is faster than going out to the Internet to perform
 			// an update.
-			if dep.Reference != "" {
+			if ver != "" {
 				version, err := repo.Version()
 				if err != nil {
 					return err
 				}
-				ib, err := isBranch(dep.Reference, repo)
+				ib, err := isBranch(ver, repo)
 				if err != nil {
 					return err
 				}
@@ -128,7 +129,7 @@
 				// If the current version equals the ref and it's not a
 				// branch it's a tag or commit id so we can skip
 				// performing an update.
-				if version == dep.Reference && !ib {
+				if version == ver && !ib {
 					msg.Debug("%s is already set to version %s. Skipping update.", dep.Name, dep.Reference)
 					return nil
 				}