Merge branch 'dennisvd/noescape' into 'master'

Do not try to escape the key string as this will not work with colons.

This minimal change will make sure that reclass won't crash if colons are used as part of a key.

See merge request !1
diff --git a/reclass/storage/mixed/__init__.py b/reclass/storage/mixed/__init__.py
index 95713b4..d9983fd 100644
--- a/reclass/storage/mixed/__init__.py
+++ b/reclass/storage/mixed/__init__.py
@@ -33,7 +33,7 @@
         if 'env_overrides' in classes_uri:
             for override in classes_uri['env_overrides']:
                 for env, options in override.iteritems():
-                        uri = classes_uri
+                        uri = copy.deepcopy(classes_uri)
                         uri.update(options)
                         uri = self._uri(uri)
                         self._classes_storage[env] = get_storage(uri.storage_type, None, uri.options)
diff --git a/reclass/storage/yaml_git/__init__.py b/reclass/storage/yaml_git/__init__.py
index 9274148..3dadeef 100644
--- a/reclass/storage/yaml_git/__init__.py
+++ b/reclass/storage/yaml_git/__init__.py
@@ -232,6 +232,12 @@
         uri = self._env_to_uri(environment)
         if uri.root is not None:
             name = '{0}.{1}'.format(uri.root, name)
+        if uri.repo not in self._repos:
+            raise reclass.errors.NotFoundError("Repo " + uri.repo + " unknown or missing")
+        if uri.branch not in self._repos[uri.repo].files:
+            raise reclass.errors.NotFoundError("Branch " + uri.branch + " missing from " + uri.repo)
+        if name not in self._repos[uri.repo].files[uri.branch]:
+            raise reclass.errors.NotFoundError("File " + name + " missing from " + uri.repo + " branch " + uri.branch)
         file = self._repos[uri.repo].files[uri.branch][name]
         blob = self._repos[uri.repo].get(file.id)
         entity = YamlData.from_string(blob.data, 'git_fs://{0}#{1}/{2}'.format(uri.repo, uri.branch, file.path)).get_entity(name)